Uruchom aktualizację potoku

W tym artykule opisano aktualizacje potoku i podano szczegóły dotyczące sposobu wyzwalania aktualizacji.

Co to jest aktualizacja potoku danych?

Po utworzeniu potoku i jesteś gotowy do jego uruchomienia, uruchamiasz aktualizację. Aktualizacja pipeline'u wykonuje następujące czynności:

  • Uruchamia klaster z poprawną konfiguracją.
  • Odnajduje wszystkie zdefiniowane tabele i widoki oraz sprawdza błędy analizy, takie jak nieprawidłowe nazwy kolumn, brakujące zależności i błędy składni.
  • Tworzy lub aktualizuje tabele i widoki z najnowszymi dostępnymi danymi.

Korzystając z przebiegu suchego, możesz sprawdzić problemy w kodzie źródłowym potoku bez oczekiwania na utworzenie lub zaktualizowanie tabel. Ta funkcja jest przydatna podczas opracowywania lub testowania potoków, ponieważ umożliwia szybkie znajdowanie i naprawianie błędów w potoku, takich jak niepoprawne nazwy tabel lub kolumn.

Jak są wyzwalane aktualizacje przepływu?

Użyj jednej z następujących opcji, aby rozpocząć aktualizacje potoku:

Wyzwalacz aktualizacji Szczegóły
Podręcznik Aktualizacje potoków można wyzwalać ręcznie z poziomu edytora potoków Lakeflow lub listy potoków. Zobacz Ręczne wyzwalanie aktualizacji potoku.
Scheduled Można zaplanować aktualizacje potoków za pomocą zadań. Zobacz Zadanie potoku dla zadań.
Programmatic Aktualizacje można wyzwalać programowo przy użyciu narzędzi innych firm, interfejsów API i wiersza poleceń. Zobacz Uruchamianie potoków w przepływie pracy i interfejs REST API potoków.

Ręcznie zainicjuj aktualizację potoku

Użyj jednej z następujących opcji, aby ręcznie wyzwolić aktualizację pipeline:

  • Uruchom pełny potok lub podzbiór potoku (pojedynczy plik źródłowy lub pojedynczą tabelę) z poziomu Edytora potoków Lakeflow. Aby uzyskać więcej informacji, zobacz Run pipeline code.
  • Uruchom pełny pipeline z listy Zadań i Pipeline'ów. Kliknij ikonę Odtwarzania. W tym samym wierszu co potok na liście.
  • Na stronie monitorowania rurociągu kliknij przycisk Ikona startowa LDP.

Uwaga / Notatka

Domyślne zachowanie aktualizacji potoku wyzwalanych ręcznie polega na odświeżeniu wszystkich zestawów danych zdefiniowanych w potoku.

Semantyka odświeżania potoku

Poniższa tabela opisuje domyślne odświeżanie, pełne odświeżanie oraz zachowanie punktów kontrolnych resetu dla zmaterializowanych widoków i tabel strumieniowych.

Typ aktualizacji Zmaterializowany widok Tabela strumieniowa
Odświeżanie (ustawienie domyślne) Aktualizuje wyniki odzwierciedlające bieżące wyniki dla zapytania definiującego. Analizuje koszty i wykonuje odświeżanie przyrostowe, jeśli jest bardziej ekonomiczne. Zobacz Przyrostowe odświeżanie zmaterializowanych widoków Przetwarza nowe rekordy w oparciu o logikę zdefiniowaną w tabelach strumieniowych i przepływach.
Pełne odświeżanie Aktualizuje wyniki odzwierciedlające bieżące wyniki dla zapytania definiującego. Czyści dane z tabel przesyłania strumieniowego, czyści informacje o stanie (punkty kontrolne) z przepływów i ponownie przetwarza wszystkie rekordy ze źródła danych. Zobacz Pełne odświeżanie tabel streamingowych
Zresetuj punkty kontrolne przepływu strumieniowego Nie dotyczy widoków materializowanych. Usuwa informacje o stanie (punkty kontrolne) z przepływów, ale nie usuwa danych z tabel strumieniowych i przetwarza ponownie wszystkie rekordy ze źródła danych.

Domyślnie wszystkie zmaterializowane widoki i tabele przesyłania strumieniowego odświeżają się w potoku z każdą aktualizacją. Opcjonalnie można pominąć tabele z aktualizacji przy użyciu następujących funkcji:

Obie te cechy obsługują domyślną semantykę odświeżania lub pełne odświeżanie. Opcjonalnie możesz użyć okna dialogowego Wybieranie tabel do odświeżania, aby wykluczyć dodatkowe tabele podczas uruchamiania odświeżania dla tabel, które zakończyły się niepowodzeniem.

Dla tabel strumieniowych możesz zdecydować się na usunięcie punktów kontrolnych strumieniowania dla wybranych przepływów, a nie danych z powiązanych tabel strumieniowych. Aby wyczyścić punkty kontrolne dla wybranych przepływów, użyj Databricks REST API, aby rozpocząć odświeżenie. Zobacz Rozpocznij aktualizację potoku, aby wyczyścić punkty kontrolne wybranych przepływów strumieniowych.

Czy należy używać pełnego odświeżania?

Usługa Databricks zaleca uruchamianie pełnych odświeżeń tylko wtedy, gdy jest to konieczne. Pełne odświeżanie zawsze ponownie przetwarza wszystkie rekordy z określonych źródeł danych za pomocą logiki definiującej zestaw danych. Czas i zasoby do ukończenia pełnego odświeżania są skorelowane z rozmiarem danych źródłowych.

Zmaterializowane widoki zwracają te same wyniki, niezależnie od tego, czy jest używane domyślne, czy pełne odświeżanie. Użycie pełnego odświeżania z tabelami przesyłania strumieniowego resetuje wszystkie informacje o przetwarzaniu stanów i punktach kontrolnych i może skutkować utratą rekordów, jeśli dane wejściowe nie są już dostępne. Zobacz Pełne odświeżanie tabel streamingowych

Usługa Databricks zaleca pełne odświeżanie tylko wtedy, gdy wejściowe źródła danych zawierają dane potrzebne do odtworzenia żądanego stanu tabeli lub widoku. Rozważmy następujące scenariusze, w których dane wejściowe nie są już dostępne i rezultat przeprowadzenia pełnego odświeżania:

Źródło danych Brak danych wejściowych dotyczących przyczyny Wynik pełnego odświeżenia
Kafka Próg krótkiego przechowywania Rekordy, które nie są już obecne w źródle Kafka, są usuwane z tabeli docelowej.
Pliki w przechowywaniu obiektowym Zasady cyklu życia Pliki danych, które nie są już obecne w katalogu źródłowym, są usuwane z tabeli docelowej.
Rekordy w tabeli Usunięto pod kątem zgodności Przetwarzane są tylko rekordy obecne w tabeli źródłowej.

Aby zapobiec uruchamianiu pełnych odświeżeń w tabeli lub widoku, ustaw właściwość tabeli pipelines.reset.allowed na false. Zobacz Właściwości tabeli potoku. Możesz także użyć przepływu dołączania, aby dołączyć dane do istniejącej tabeli strumieniowej bez konieczności pełnego odświeżania.

Zacznij aktualizację potoku dla wybranych tabel

Opcjonalnie mogą Państwo ponownie przetwarzać dane tylko dla wybranych tabel w swoim potoku. Na przykład, podczas rozwoju zmieniasz tylko jedną tabelę i chcesz skrócić czas testowania, lub aktualizacja potoku nie powiodła się i chcesz odświeżyć tylko nieudane tabele.

Edytor Lakeflow Pipelines ma opcje ponownego przetwarzania pliku źródłowego, wybranych tabel lub pojedynczej tabeli. Aby uzyskać szczegółowe informacje, zobacz Run pipeline code (Uruchamianie kodu potoku).

Rozpocznij aktualizację potoku dla nieudanych tabel

Jeśli aktualizacja potoku zakończy się niepowodzeniem z powodu błędów w co najmniej jednej tabeli na grafie potoku, możesz uruchomić aktualizację tylko tabel, które napotkały błędy, oraz wszystkich zależności podrzędnych.

Uwaga / Notatka

Wykluczone tabele nie są odświeżane, nawet jeśli zależą od tabeli, która się nie powiodła.

Aby zaktualizować tabele z błędami, na stronie monitorowania przepływu danych kliknij pozycję Odśwież tabele z błędami.

Aby zaktualizować tylko wybrane tabele, które uległy awarii z strony monitorowania procesu:

  1. Kliknij przycisk Opuść obok przycisku Odśwież nieudane tabele, a następnie kliknij Wybierz tabele do odświeżenia. Pojawi się okno dialogowe Select tables for refresh (Wybierz tabele do odświeżenia).

  2. Aby wybrać tabele do odświeżenia, kliknij każdą tabelę. Wybrane tabele są wyróżnione i oznaczone etykietami. Aby usunąć tabelę z aktualizacji, kliknij ponownie tabelę.

  3. Kliknij Odśwież zaznaczenie.

    Uwaga / Notatka

    Przycisk Odśwież wybór wyświetla liczbę wybranych tabel w nawiasach.

Aby ponownie przetworzyć dane już pozyskane dla wybranych tabel, kliknij Niebieski strzałka w dół obok przycisku Odśwież zaznaczenie, a następnie kliknij wybierz Pełne odświeżanie.

Rozpocznij aktualizację potoku, aby usunąć punkty kontrolne wybranych strumieni danych

Możesz opcjonalnie przetworzyć ponownie dane dla wybranych przepływów strumieniowych w swoim przetwarzaniu danych bez usuwania już pobranych danych.

Uwaga / Notatka

Przepływy, które nie zostały wybrane, są uruchamiane za pomocą aktualizacji REFRESH. Można również określić full_refresh_selection lub refresh_selection aby selektywnie odświeżyć inne tabele.

Aby rozpocząć aktualizację w celu odświeżenia wybranych punktów kontrolnych przesyłania strumieniowego, użyj żądania aktualizacji w interfejsie API REST potoków deklaratywnych usługi Lakeflow Spark.

Parametr reset_checkpoint_selection akceptuje listę nazw przepływów. Musisz użyć nazwy przepływu, która jest wyświetlana na wykresie potoku:

  • Jeśli zdefiniowano przepływ o jawnej nazwie (na przykład używając parametru flow_name w pliku create_auto_cdc_flow), użyj tej nazwy.
  • Jeśli nie ustawiono jawnej nazwy przepływu, domyślna nazwa przepływu to w pełni kwalifikowana nazwa tabeli w catalog.schema.table formacie. Użycie tylko nazwy tabeli (na przykład gold zamiast my_catalog.my_schema.gold) powoduje niepowodzenie aktualizacji potoku z parametrem IllegalArgumentException.

Nazwy przepływów można znaleźć w interfejsie użytkownika potoku lub w dziennikach zdarzeń potoku.

Przykład poniżej używa polecenia curl, aby wywołać żądanie updates do rozpoczęcia aktualizacji potoku.

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_catalog.my_schema.my_streaming_table"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Poniższy przykład resetuje punkt kontrolny przepływu o nazwie niestandardowej:

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_custom_flow_name"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Sprawdź potok pod kątem błędów bez oczekiwania na aktualizowanie tabel

Ważne

Funkcja potoku Dry run jest dostępna w publicznej wersji zapoznawczej.

Aby sprawdzić, czy kod źródłowy potoku jest prawidłowy bez uruchamiania pełnej aktualizacji, użyj próbnego przebiegu. Przebieg suchy rozwiązuje definicje zestawów danych i przepływów zdefiniowanych w potoku, ale nie materializuje ani nie publikuje żadnych zestawów danych. Błędy, takie jak niepoprawne nazwy tabel lub kolumn, występujące podczas próby generalnej, są zgłaszane w interfejsie.

Aby rozpocząć próbne uruchomienie, kliknij Blue Down Caret na stronie szczegółów potoku obok opcji Start i kliknij Suche uruchomienie.

Po zakończeniu przebiegu suchego wszystkie błędy są wyświetlane na pasku zdarzeń na dolnym panelu. Kliknięcie paska zdarzeń spowoduje wyświetlenie wszelkich problemów znalezionych w dolnym panelu. Ponadto w dzienniku zdarzeń są wyświetlane zdarzenia związane tylko z przebiegem suchym, a w daG nie są wyświetlane żadne metryki. Jeśli zostaną znalezione błędy, szczegóły są dostępne w dzienniku zdarzeń.

Wyniki są widoczne tylko dla ostatniego przebiegu suchego. Jeśli ostatnią wykonaną aktualizacją była próba/test aktualizacji, możesz zobaczyć jej wyniki, wybierając ją w historii aktualizacji. Jeśli kolejna aktualizacja zostanie uruchomiona po zakończeniu przebiegu testowego, wyniki nie będą już dostępne w interfejsie użytkownika.

Zachowanie przebiegu aktualizacji

Zachowanie aktualizacji potoku jest określane przez sposób, w jaki go wyzwalasz.

  • Aktualizacje wyzwalane z interfejsu użytkownika monitorowania potoku przy użyciu Uruchom teraz korzystają z szybkiego uruchamiania skoncentrowanego na debugowaniu.
  • Aktualizacje wyzwalane z zadań, interfejsu API potoków lub potoków ciągłych wykorzystują automatyczne ponawianie prób i ponowne uruchamianie.

W przypadku wyzwolonych potoków można zastąpić domyślne zachowanie określonego przebiegu, wybierając pozycję Uruchom teraz z różnymi ustawieniami z listy rozwijanej w Edytorze potoków Lakeflow lub na stronie monitorowania potoków.

Szybkie uruchamianie i skoncentrowane na debugowaniu zachowanie

Służy do uruchamiania interfejsu użytkownika teraz i aktualizacji ad hoc. Te uruchomienia są zoptymalizowane pod kątem szybkiej iteracji:

  • Ponownie wykorzystuje klaster, aby uniknąć kosztów ponownych uruchomień. Domyślnie klastry działają przez dwie godziny. Możesz zmienić to ustawienie pipelines.clusterShutdown.delay w sekcji Konfigurowanie klasycznych obliczeń dla potoków.
  • Wyłącza ponowne próby w potoku, dzięki czemu można natychmiast wykrywać i naprawiać błędy.

Działanie automatycznego ponawiania i ponownego uruchamiania

Używane w przypadku zadań, aktualizacji wyzwalanych przez interfejs API i potoków ciągłych. Te uruchomienia ustalają priorytety niezawodności i wydajności kosztów:

  • Uruchamia ponownie klaster w celu uzyskania określonych błędów możliwych do odzyskania, w tym przecieków pamięci i nieaktualnych poświadczeń.
  • Ponawia wykonanie w przypadku wystąpienia określonych błędów, takich jak niepowodzenie uruchomienia klastra.
  • Klaster zamyka się natychmiast po zakończeniu uruchomienia.

Uwaga / Notatka

Działanie uruchamiania steruje tylko wykonywaniem klastra i potoku. Elementy magazynowania i docelowe schematy w wykazie dla tabel do publikacji muszą być skonfigurowane jako część ustawień pipeline i nie podlegają zmianom w trakcie uruchamiania.