Udostępnij przez


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. Zbada koszty i wykona odświeżanie przyrostowe, jeśli jest bardziej ekonomiczne. 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.
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.

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. 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": [<streaming flow1>, <streaming flow 2>...]
}' \
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.

Tryb programowania

Potoki są uruchamiane z poziomu edytora potoków lakeflow z włączonym trybem programowania. Potoki zaplanowane domyślnie działają z wyłączonym trybem rozwoju. Jeśli chcesz przetestować, jak potok będzie działał w środowisku produkcyjnym, możesz wybrać, czy chcesz użyć trybu deweloperskiego, wybierając opcję Uruchom z różnymi ustawieniami z listy rozwijanej w edytorze.

Uwaga / Notatka

Potoki utworzone przy użyciu starszego edytora notesów domyślnie działają w trybie rozwoju. Możesz sprawdzić lub zmienić ustawienie, wybierając Ustawienia na stronie monitorowania potoku. Strona monitorowania jest dostępna za pomocą przycisku Zadania i potoki po lewej stronie obszaru roboczego. Możesz również przejść bezpośrednio do strony monitorowania z poziomu edytora potoku, klikając wyniki działania w przeglądarce zasobów potoku.

Po uruchomieniu potoku w trybie deweloperskim system Lakeflow Spark Deklaratywne Potoki wykonuje następujące czynności:

  • Ponownie wykorzystuje klaster, aby uniknąć kosztów ponownych uruchomień. Domyślnie klastry działają przez dwie godziny, gdy włączony jest tryb deweloperski. 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.

Po wyłączeniu trybu programowania system wykonuje następujące czynności:

  • 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.

Uwaga / Notatka

Włączanie i wyłączanie trybu programowania steruje tylko zachowaniem wykonywania klastra i potoku. Lokalizacje magazynowe i docelowe schematy w katalogu dla publikowanych tabel muszą być skonfigurowane jako część ustawień potoku i nie są wpływane przez zmiany trybów.