Konfigurowanie klasycznego środowiska obliczeniowego dla potoków

Skonfiguruj klasyczne zasoby obliczeniowe dla potoków Lakeflow, aby kontrolować zasady dotyczące zasobów obliczeniowych, typy instancji i ustawienia klastra. Aby zapoznać się ze schematem JSON, zobacz definicję clusters w dokumentacji interfejsu API potoku.

Databricks zaleca rozwiązania bezserwerowe dla nowych potoków danych. Wybierz klasyczny zasób obliczeniowy, gdy potrzebujesz określonych typów instancji, niestandardowych zasad obliczeniowych, skryptów inicjalizacyjnych, zewnętrznego sterownika JDBC zainstalowanego w klastrze lub obszaru roboczego poza regionem z obsługą trybu bezserwerowego. Zobacz Jak skonfigurować potok bezserwerowy.

Aby utworzyć potok uruchamiany w klasycznym środowisku obliczeniowym, użytkownicy muszą najpierw mieć uprawnienia do wdrażania klasycznych obliczeń, nieograniczonego uprawnienia do tworzenia lub dostępu do zasad obliczeniowych. Przepływy bezserwerowe nie wymagają uprawnień do tworzenia mocy obliczeniowej. Domyślnie wszyscy użytkownicy obszaru roboczego mogą używać potoków bezserwerowych.

Aby zobaczyć porównanie obliczeń klasycznych i bezserwerowych, w tym informacje o tym, które funkcje są obsługiwane przez każde z nich, zobacz Obliczenia bezserwerowe a klasyczne dla potoków.

Uwaga / Notatka

Ponieważ środowisko wykonawcze potoku zarządza cyklem życia zasobów obliczeniowych potoku i uruchamia niestandardową wersję Databricks Runtime, w konfiguracji potoku nie można ręcznie ustawić niektórych ustawień zasobów obliczeniowych, takich jak wersja Spark lub nazwy klastrów. Zobacz Atrybuty klastra, które nie są konfigurowane przez użytkownika.

Wybierz obliczenia dla swojego potoku

Aby skonfigurować tradycyjne obliczenia dla potoku za pomocą Edytora potoków Lakeflow:

  1. Kliknij przycisk Ustawienia.
  2. W sekcji Obliczenia ustawień potoku kliknij ikonę Ołówek, aby edytować.
  3. Jeśli jest zaznaczone, odznacz Bezserwerowe.
  4. Wprowadź inne zmiany w ustawieniach obliczeniowych, a następnie kliknij przycisk Zapisz.

Spowoduje to skonfigurowanie potoku do używania klasycznych obliczeń i umożliwia edytowanie ustawień obliczeniowych, opisanych poniżej.

Aby uzyskać więcej informacji na temat Edytora potoków lakeflow, zobacz Develop and debug ETL pipelines with the Lakeflow Pipelines Editor (Opracowywanie i debugowanie potoków ETL za pomocą edytora potoków lakeflow).

Wybieranie zasad obliczeniowych

Administratorzy obszaru roboczego mogą konfigurować zasady obliczeniowe, aby zapewnić użytkownikom dostęp do klasycznych zasobów obliczeniowych dla potoków. Zasady obliczeniowe są opcjonalne. Jeśli nie masz wymaganych uprawnień obliczeniowych, zapoznaj się z administratorem obszaru roboczego. Zobacz Określanie limitów mocy obliczeniowej potoków Lakeflow.

W przypadku korzystania z interfejsu API Pipelines, aby upewnić się, że wartości domyślne zasad obliczeń są poprawnie stosowane, ustaw "apply_policy_default_values": true w definicji clusters.

{
  "clusters": [
    {
      "label": "default",
      "policy_id": "<policy-id>",
      "apply_policy_default_values": true
    }
  ]
}

Konfigurowanie tagów obliczeniowych

Tagi niestandardowe można dodawać do klasycznych zasobów obliczeniowych potoku. Tagi umożliwiają monitorowanie kosztów zasobów obliczeniowych używanych przez różne grupy w organizacji. Usługa Databricks stosuje te tagi do zasobów w chmurze i dzienników użycia zarejestrowanych w tabelach systemu użycia. Tagi można dodawać, korzystając z ustawienia interfejsu użytkownika tagów klastra lub edytując konfigurację JSON swojego pipeline'u.

Wybierz typy instancji do uruchomienia potoku

Domyślnie potok wybiera typy instancji dla węzłów sterownika i węzłów roboczych. Opcjonalnie można skonfigurować typy wystąpień. Na przykład wybierz typy wystąpień, aby poprawić wydajność potoku lub rozwiązać problemy z pamięcią podczas uruchamiania potoku.

Aby skonfigurować typy instancji podczas tworzenia lub edytowania potoku w Edytorze Potoków Lakeflow:

  1. Kliknij przycisk Ustawienia.
  2. W sekcji Komputer ustawień potoku kliknij ikonę ołówka.
  3. W sekcji Ustawienia zaawansowane wybierz typ procesu roboczego i typy wystąpień typu sterownika dla potoku.

Konfigurowanie oddzielnych ustawień dla klastrów aktualizacji i konserwacji

Każdy potok deklaratywny ma dwa skojarzone zasoby obliczeniowe: klaster aktualizacji, który przetwarza aktualizacje potoków i klaster konserwacji, który uruchamia codzienne zadania konserwacji (w tym optymalizację predykcyjną). Domyślnie konfiguracje obliczeń mają zastosowanie do obu tych klastrów. Użycie tych samych ustawień dla obu klastrów zwiększa niezawodność przebiegów konserwacji, zapewniając, że wymagane konfiguracje, takie jak poświadczenia dostępu do danych dla lokalizacji magazynu, są stosowane do klastra konserwacji.

Aby zastosować ustawienia tylko do jednego z dwóch klastrów, dodaj label pole do obiektu JSON ustawienia. Istnieją trzy możliwe wartości dla label pola:

  • maintenance: stosuje ustawienie tylko do klastra konserwacji.
  • updates: stosuje ustawienie tylko do klastra aktualizacji.
  • default: stosuje ustawienie zarówno do klastrów aktualizacji, jak i obsługi. Jest to wartość domyślna, jeśli label pole zostanie pominięte.

Jeśli istnieje ustawienie powodujące konflikt, ustawienie z etykietą updates lub maintenance zastępuje ustawienie zdefiniowane za pomocą etykiety default.

Uwaga / Notatka

Klaster konserwacji dziennej jest używany tylko w niektórych przypadkach:

  • Potoki danych przechowywane w metadanych Hive.
  • Potoki w obszarach roboczych, które nie zaakceptowały warunków użytkowania dla obliczeń bezserwerowych. Jeśli potrzebujesz pomocy przy akceptowaniu warunków, skontaktuj się z przedstawicielem usługi Databricks.

Przykład: Definiowanie ustawienia dla klastra aktualizacji

W poniższym przykładzie zdefiniowano parametr konfiguracji platformy Spark, który jest dodawany tylko do konfiguracji klastra updates:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
        "key": "value"
      }
    }
  ]
}

Uwaga / Notatka

Aby kontrolować koszty w klasycznym środowisku obliczeniowym, włącz rozszerzone autoskalowanie ("mode": "ENHANCED") i ustaw realistyczne wartości graniczne min_workers i max_workers, które odpowiadają Twojemu obciążeniu roboczemu, zamiast stałej liczby węzłów roboczych dobranej do szczytowego obciążenia. Zobacz Optymalizowanie wykorzystania klastra pipeline’u Lakeflow za pomocą automatycznego skalowania.

Przykład: Konfigurowanie typów wystąpień dla klastra aktualizacji

Aby uniknąć przypisywania niepotrzebnych zasobów do klastra maintenance, w tym przykładzie użyto etykiety updates, aby ustawić typy wystąpień tylko dla klastra updates.

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "...": "..."
    }
  ]
}

Opóźnij zamknięcie obliczeń

Aby kontrolować zachowanie zamykania klastra, użyj ustawienia pipelines.clusterShutdown.delay w konfiguracji potoku. Poniższy przykład ustawia wartość pipelines.clusterShutdown.delay na 60 sekund:

{
  "configuration": {
    "pipelines.clusterShutdown.delay": "60s"
  }
}

Wartość domyślna dla pipelines.clusterShutdown.delay zależy od zachowania przebiegu aktualizacji: 0 seconds w przypadku aktualizacji, które korzystają z automatycznego ponawiania i ponownego uruchamiania, oraz 2 hours dla aktualizacji ad hoc, które korzystają z szybkiego uruchamiania i zachowania ukierunkowanego na debugowanie.

Uwaga / Notatka

Ponieważ zasoby obliczeniowe potoku są automatycznie zamykane, gdy nie są używane, nie można użyć zasad obliczeniowych, które ustawiają wartość autotermination_minutes. Spowoduje to wystąpienie błędu.

Tworzenie pojedynczego węzła obliczeniowego

Obliczenia na pojedynczym węźle mają węzeł sterujący, który pełni rolę zarówno głównego węzła, jak i węzła roboczego. Jest to przeznaczone dla obciążeń, które używają małych ilości danych lub nie są rozproszone.

Aby utworzyć środowisko obliczeniowe z jednym węzłem, ustaw wartość num_workers 0. Przykład:

{
  "clusters": [
    {
      "num_workers": 0
    }
  ]
}