Udostępnij przez


Wyzwalanie zadań po zaktualizowaniu tabel źródłowych

Wyzwalacze aktualizacji tabeli umożliwiają uruchomienie zadania, gdy tabele źródłowe zostaną zaktualizowane. Ta funkcja służy do uruchamiania zadania, gdy nowe dane są gotowe bez konieczności ciągłego uruchamiania klastra lub wiedzy na temat procesów, które aktualizują tabelę.

Jak działają wyzwalacze aktualizacji tabeli?

Wyzwalacz aktualizacji tabeli sprawdza aktualizacje tabeli, a po zaktualizowaniu tabeli zadanie jest uruchamiane. Wyzwalacz może być uruchamiany po zaktualizowaniu jednej tabeli lub zaktualizowaniu wszystkich tabel monitorowanych przez wyzwalacz. Wyzwalacze aktualizacji tabeli nie generują dodatkowych kosztów innych niż koszty dostawcy usług w chmurze skojarzone z wyświetlaniem listy tabel i odczytywaniem aktualizacji z lokalizacji magazynu.

Wyzwalacz aktualizacji tabeli można skonfigurować do monitorowania co najmniej jednej tabeli pod kątem zmian danych, takich jak aktualizacje, scalanie i usuwanie. Te tabele mogą być tabelami zarządzanymi przez Unity Catalog Delta i Iceberg, tabelami zewnętrznymi Unity Catalog wspieranymi przez Delta Lake, zmaterializowanymi widokami, tabelami przesyłania strumieniowego i widokami lub widokami metrycznymi Unity Catalog, które zależą od obsługiwanych tabel. Inne widoki i tabele udostępniane za pośrednictwem funkcji Delta Sharing nie są obsługiwane. Podczas wybierania wielu tabel można określić, czy zadanie jest wyzwalane po zaktualizowaniu dowolnej lub wszystkich tabel.

Dodawanie wyzwalacza aktualizacji tabeli

Aby dodać wyzwalacz aktualizacji tabeli do istniejącego zadania:

  1. W lewym obszarze nawigacyjnym obszaru roboczego kliknij pozycję Zadania i potoki.

  2. Na liście zadań kliknij nazwę zadania, do którego chcesz dodać wyzwalacz.

  3. Na panelu po prawej stronie w obszarze Harmonogramy i wyzwalacze kliknij pozycję Dodaj wyzwalacz.

  4. W obszarze Typ wyzwalacza wybierz pozycję Aktualizacja tabeli.

  5. W obszarze Tabele dodaj tabele, które chcesz monitorować pod kątem aktualizacji.

    Jeśli wybierzesz więcej niż jedną tabelę, skonfiguruj opcję w obszarze Wyzwalaj, kiedy chcesz określić, czy uruchomienie zadania ma zostać wyzwolone po zaktualizowaniu wszystkich tabel lub zaktualizowaniu dowolnej tabeli.

  6. (Opcjonalnie) Skonfiguruj opcje zaawansowane, klikając pozycję Zaawansowane.

    • Minimalny czas między uruchomieniami w sekundach: minimalny czas oczekiwania przed uruchomieniem nowego przebiegu po zakończeniu poprzedniego. Tabele zaktualizowane w tym okresie będą wyzwalać uruchomienie tylko po wygaśnięciu czasu oczekiwania. Usługa Azure Databricks czeka określony czas przed uruchomieniem przebiegu, nawet jeśli monitorowane tabele zostaną zaktualizowane.
    • Poczekaj po ostatniej zmianie w sekundach: czas oczekiwania na wyzwolenie procesu po aktualizacji tabeli. Dodatkowe aktualizacje tabeli w tym czasie resetują licznik czasu. To ustawienie może być używane, gdy aktualizacje tabel są w partiach, a cała partia musi zostać przetworzona po zaktualizowaniu wszystkich tabel.

    Uwaga / Notatka

    Jeśli są używane obie opcje, wyzwalacz czeka minimalny czas między wyzwalaczami, a następnie czeka ustawiony czas po ostatniej zmianie. Na przykład, jeśli masz minimalny czas 120 sekund, a oczekiwanie po ostatnich zmianach wynosi 60 sekund, wtedy uruchomienie nie zostanie wyzwolone, dopóki nie upłynie co najmniej 120 sekund, nawet jeśli aktualizacja tabeli zostanie przeprowadzona w ciągu pierwszych 60 sekund. Ponadto, jeśli jedna aktualizacja pojawi się po 5 sekundach, a następnie kolejna po 115 sekundach, oczekiwanie po ostatniej zmianie oznacza, że wykonanie nie zostanie uruchomione do czasu po 175 sekundach.

  7. Aby zweryfikować konfigurację, kliknij pozycję Testuj wyzwalacz.

  8. Kliknij przycisk Zapisz.

Uwaga / Notatka

Możesz również skonfigurować wyzwalacze aktualizacji tabeli z poziomu interfejsu API zadań. Dodaj obiekt do operacji trigger, jobs/create, jobs/update lub jobs/reset.

Wyzwalacze aktualizacji tabeli wywołane zdarzeniami plików

Aby uzyskać najlepszą wydajność i skalowalność, włącz zdarzenia plików w lokalizacji zewnętrznej, w której są przechowywane tabele. Ten jednorazowy krok konfiguracji zwiększa wydajność wyzwalaczy aktualizacji tabeli i odblokowywa inne funkcje, w tym bardziej wydajne wyzwalacze automatycznego ładowania i wyzwalaczy przybycia plików.

Po włączeniu zdarzeń dotyczących plików, usługa Databricks automatycznie śledzi metadane dotyczące pozyskiwania przy użyciu powiadomień o zmianach od dostawcy usług chmurowych, co prowadzi do szybszych i bardziej efektywnych aktualizacji tabel.

Jeśli tabele znajdują się w głównym poziomie przechowywania metadanych, najpierw przekonwertuj je na lokalizację zewnętrzną, a następnie włącz zdarzenia plików w tej lokalizacji.

Parametry zadania skojarzone z wyzwalaczami aktualizacji tabeli

Gdy używasz wyzwalaczy aktualizacji tabeli dla zadania, trzy nowe odwołania do wartości dynamicznych są dostępne do użycia jako wartości parametrów w zadaniu.

  • {{job.trigger.table_update.updated_tables}} — Lista tabel JSON zaktualizowana od ostatniego uruchomienia zadania.
  • {{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}} — znacznik czasu ostatniego zatwierdzenia, który wyzwolił uruchomienie zadania.
  • {{job.trigger.table_update.`<catalog.schema.table>`.version}} — najnowsza wersja zatwierdzenia, która wyzwoliła uruchomienie zadania.

W przypadku commit_timestamp i version istnieje wiele wersji odwołania do dynamicznej wartości. Każda monitorowana tabela będzie zawierać <catalog.schema.table> z pełną kwalifikowaną nazwą tabeli, dla której chcesz dane. Jeśli w wyzwalaczu jest monitorowana tylko jedna tabela, zobaczysz wartość bez <catalog.schema.table>. Możesz na przykład użyć {{job.trigger.table_update.commit_timestamp.iso_datetime}}.

Aby uzyskać więcej informacji na temat parametrów zadania, zobacz Parametryzacja zadań.

Otrzymywanie powiadomień o nieudanych wyzwalaczach aktualizacji tabeli

Aby otrzymywać powiadomienia, jeżeli nie udało się ocenić wyzwalacza aktualizacji tabeli, skonfiguruj powiadomienia e-mail lub systemowe w przypadku niepowodzenia zadania. Zobacz Dodawanie powiadomień dotyczących zadania.

Ograniczenia

Wyzwalacze aktualizacji tabeli mają następujące ograniczenia:

  • Możesz wybrać maksymalnie 10 zarządzanych lub tabel Delta na wyzwalacz.
  • W przypadku tabel znajdujących się w lokalizacjach bez zdarzeń plików można skonfigurować maksymalnie 1000 zadań za pomocą wyzwalacza aktualizacji tabeli.

Wyzwalacze w widokach Unity Catalog mają następujące dodatkowe ograniczenia:

  • Wyzwalacze aktualizacji tabeli obsługują tylko monitorowanie widoków katalogu Unity lub widoków metryk, które zależą od tabel również obsługiwanych przez te wyzwalacze. W szczególności następujące widoki nie są obsługiwane:

    • Widoki, które używają read_files (mogą odczytywać z obsługiwanej tabeli, która odczytuje pliki, ale nie mogą bezpośrednio korzystać z read_files).
    • Widoki, które zależą od tabel, które nie są zawarte w Unity Catalog.
    • Widoki zależne od tabel federacyjnych.
  • Tworzenie wyzwalaczy dla widoków zawierających nieobsługiwane zależności nadal powiedzie się, ale po zaktualizowaniu nieobsługiwanej zależności nie zostanie wyzwolony żaden przebieg zadania.

  • Wyzwalacze aktualizacji tabeli monitorują zmiany w tabelach zależnych widoku i uważają widok za zaktualizowany, jeśli którakolwiek z tabel zależnych została zaktualizowana. Uruchomienie zadania może zostać wywołane przez zmiany danych, które są filtrowane przez definicję widoku.

  • Tabele źródłowe dla widoku wliczane są do limitu 10 tabel na wyzwalacz.

    • Jeśli na przykład widok zależy od 11 tabel, nie będzie można go użyć w wyzwalaczu aktualizacji tabeli. Podobnie wyzwalacz z dwoma widokami, z których każdy zależy od 6 tabel, będzie traktowany jako 12 tabel.
  • Istnieje osobny limit 10 widoków zależnych dla każdego monitorowanego widoku.

    • Na przykład, jeśli widok zależy od 11 innych widoków, nie będzie można go użyć w wyzwalaczu uaktualnienia tabeli, nawet jeśli nie narusza to zasady dotyczącej 10 tabel na wyzwalacz.