Udostępnij przez


Włącz domyślny tryb publikowania w potoku

W tym artykule opisano sposób migrowania potoków korzystających ze schematu wirtualnego LIVE (starszego trybu publikowania) do domyślnego trybu publikowania.

Domyślny tryb publikowania umożliwia pojedynczemu potokowi zapisywanie w wielu katalogach i schematach oraz oferuje uproszczoną składnię do pracy z tabelami i widokami w ramach potoku. Starszy tryb publikowania jest uznawany za przestarzały, a usługa Databricks zaleca migrację wszystkich potoków do domyślnego trybu publikowania.

Migracja wpływa na metadane potoku, ale nie odczytuje, przenosi ani nie zapisuje żadnych zbiorów danych.

Jak określić, czy pipeline korzysta ze starszego trybu publikowania

Starsze potoki trybu publikowania są wskazywane w polu Podsumowanie interfejsu użytkownika ustawień potoków deklaratywnych platformy Spark w usłudze Lakeflow.

Zagadnienia dotyczące migracji do domyślnego trybu publikowania

Podczas migracji warto pamiętać o następujących uwagach:

  • Po zmigrowaniu potoku do trybu publikowania nie można go z powrotem zmigrować do używania schematu wirtualnego LIVE.
  • Może być konieczne przygotowanie pipeline'u do migracji przez dostosowanie do wszelkich zmian składniowych między starszymi a domyślnymi trybami publikowania. Większość potoków nie wymaga zmian. Aby uzyskać szczegółowe informacje, zobacz Przygotowywanie potoków do migracji.
  • Migracja ma wpływ tylko na metadane. Nie odczytuje, nie przenosi ani nie zapisuje żadnych zestawów danych.
  • W domyślnym trybie publikowania nie można przenosić zmaterializowanych widoków i tabel przesyłania strumieniowego między schematami po ich utworzeniu.
  • Domyślny tryb publikowania wymaga interfejsu wiersza polecenia usługi Databricks w wersji 0.230.0 lub nowszej. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza poleceń Databricks.

Migrowanie do domyślnego trybu publikowania

Wykonaj poniższe kroki, aby przeprowadzić migrację do domyślnego trybu publikowania.

  1. Kliknij pozycję Zadania i potoki na pasku bocznym po lewej stronie w obszarze roboczym.

  2. Kliknij nazwę potoku, który chcesz zmigrować na liście.

  3. Wstrzymaj aktualizacje i pozwól, aby wszystkie aktualnie uruchomione potoki przestały działać.

    Co najmniej jedna aktualizacja musi być uruchomiona w ciągu ostatnich 60 dni przed ukończeniem migracji. Jeśli potok danych został wyzwolony lub został już wstrzymany, uruchom ręcznie pojedynczą aktualizację. Jeśli potok jest ciągły, upewnij się, że znajduje się w stanie (lub już się w nim znajduje) RUNNING, a następnie wstrzymaj nad nim.

  4. Opcjonalnie przygotuj dowolny kod, który może być potrzebny do zmigrowania.

    Domyślny tryb publikowania jest zazwyczaj zgodny z poprzednim trybem publikowania, ale pamiętaj, aby prawidłowo przygotować potok do migracji, aby kod potoku działał poprawnie po aktualizacji. Większość potoków nie wymaga zmian.

  5. Dodaj konfigurację w Ustawieniach potoku: pipelines.enableDPMForExistingPipeline, ustaw na true.

  6. Uruchom ręczną aktualizację i pozwól na ukończenie aktualizacji.

  7. Opcjonalnie w obszarze Ustawienia potoku usuń konfigurację potoku dla elementu pipelines.enableDPMForExistingPipeline. To ustawienie jest używane do migracji i nie jest wymagane po zakończeniu migracji.

  8. W razie potrzeby zaktualizuj harmonogram i włącz aktualizacje potoku.

Domyślny tryb publikowania jest teraz włączony w rurze. Jeśli widzisz problemy, skorzystaj z następnej sekcji, aby rozwiązać problemy. Jeśli problemy będą się powtarzać, skontaktuj się z menedżerem konta usługi Databricks.

Przygotowywanie potoków do migracji

Domyślny tryb publikowania jest zazwyczaj do tyłu zgodny ze starszym trybem publikowania, ale w celu uruchomienia niektórych potoków może być konieczne zmodyfikowanie. Poniższe uwagi mogą pomóc w przygotowaniu potoków do migracji.

Słowo kluczowe LIVE

Słowo LIVE kluczowe w starszym trybie publikowania kwalifikuje katalog i schemat obiektu z wartościami domyślnymi potoku. Domyślny tryb publikowania nie używa już słowa kluczowego LIVE do kwalifikowania tabel lub widoków. Słowo LIVE kluczowe jest ignorowane i zastępowane domyślnym wykazem i schematem potoku. Zazwyczaj będzie używać tego samego domyślnego katalogu i schematu co słowo kluczowe LIVE w trybie publikacji klasycznej, chyba że później dodasz polecenia USE CATALOG lub USE SCHEMA do potoku.

W trybie publikacji w wersji starszej, częściowo kwalifikowane odwołania do tabel i widoków bez słowa kluczowego LIVE (na przykład table1) używają domyślnych ustawień platformy Spark. W domyślnym trybie publikowania referencje częściowo kwalifikowane używają domyślnych ustawień potoku. Jeśli wartości domyślne i potoki platformy Spark są inne, przed migracją należy w pełni zakwalifikować nazwę dowolnej częściowo kwalifikowanej tabeli lub widoku.

Uwaga / Notatka

Po migracji możesz usunąć LIVE słowo kluczowe z kodu. Opcjonalnie możesz zastąpić LIVE słowo kluczowe w pełni kwalifikowaną tabelą lub nazwami widoków.

Odwołania do kolumn ze słowem kluczowym LIVE

Nie można użyć słowa kluczowego LIVE do zdefiniowania kolumn w domyślnym trybie publikowania. Na przykład ten kod:

CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT LIVE.source.id FROM LIVE.source;

przed migracją należy je zastąpić następującymi elementami:

CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT source.id FROM LIVE.source;

Ta wersja działa w obu trybach publikowania.

Zmiany w flow_progress zdarzeniu

Migrowanie potoku zmienia nazwę zestawu danych dla flow_progress zdarzenia w dzienniku zdarzeń. Jeśli masz zapytania dotyczące dziennika zdarzeń dla tego potoku, może być konieczne zaktualizowanie zapytania.

W starszym trybie publikowania nazwa zestawu danych to nazwa table. W domyślnym trybie publikowania nazwa zestawu danych jest w pełni kwalifikowaną catalog.schema.table nazwą.

Aby uzyskać szczegółowe informacje na temat korzystania z dziennika zdarzeń, zobacz Dziennik zdarzeń potoku.

Ostrzeżenia a błędy

Niektóre ostrzeżenia w starszym trybie publikowania zostały zastąpione błędami w domyślnym trybie publikowania.

Odwołania do siebie Odwołanie do siebie (lub odwołanie cykliczne) nie jest dozwolone w domyślnym trybie publikowania (a w starszym trybie publikowania prowadziło do niezdefiniowanych wyników). Przykład:

CREATE OR REPLACE MATERIALIZED VIEW table1 AS SELECT * FROM target_catalog.target_schema.table1;

wygeneruje ostrzeżenie w starszym trybie publikowania (i ma niezdefiniowane wyniki). W domyślnym trybie publikowania generuje błąd.

Nazwy wieloczęściowe Nie można używać kropek w nazwach w domyślnym trybie publikowania (nazwy wieloczęściowe). Na przykład następujący kod języka Python jest prawidłowy w trybie starszym, ale nie w trybie domyślnym:

@dlt.view(name=”a.b.c”)
def transform():
  return …

Przed migracją zmień nazwę tabeli na nazwę, która nie zawiera znaku kropki.

Uwaga / Notatka

W tym przykładzie użyto również starszej składni: @dlt.view. Databricks zaleca używanie @dp.temporary_view() dla potoków. Aby uzyskać więcej informacji, zobacz Lakeflow Spark Deklaratative Pipelines Python language reference (Dokumentacja języka Python dla potoków deklaratywnych platformy Spark w usłudze Lakeflow)

Rozwiązywanie problemów

W poniższej tabeli opisano błędy, które mogą wystąpić podczas migracji ze starszego trybu publikowania.

Error Description
CANNOT_MIGRATE_HMS_PIPELINE Migracja nie jest obsługiwana dla pipeline'ów Hive metastore. Alternatywnie, można sklonować potok z magazynu metadanych Hive do katalogu Unity przed migracją. Zobacz Utwórz potok Unity Catalog, klonując potok metastore Hive.
MISSING_EXPECTED_PROPERTY Ten błąd wskazuje, że nie uruchomiono najnowszej aktualizacji przed dodaniem pipelines.enableDPMForExistingPipeline konfiguracji. Usuń konfigurację, a jeśli jej brakuje, dodaj konfigurację pipelines.setMigrationHints , ustaw wartość true. Uruchom aktualizację, a następnie przejdź do kroku 3.
PIPELINE_INCOMPATIBLE_WITH_DPM Ten błąd wskazuje, że kod potoku nie jest w pełni zgodny z domyślnym trybem publikowania. Zobacz Przygotowywanie potoków do migracji.