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

Ważna

Uruchamianie zadań w tabelach i widokach OpenSharing oraz w tabelach systemowych jest w fazie beta. Zobacz Dodawanie wyzwalacza do tabel OpenSharing i systemowych.

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. Podczas wybierania wielu tabel można określić, czy zadanie jest wyzwalane po zaktualizowaniu dowolnej lub wszystkich tabel.

Wyzwalacze można również skonfigurować w tabelach i widokach udostępniania OpenSharing oraz w tabelach systemowych (beta). Zobacz Dodawanie wyzwalacza do tabel OpenSharing i systemowych.

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. W okienku 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 powodują uruchomienie dopiero po upływie 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. Jeśli na przykład minimalny czas wynosi 120 sekund, a czas oczekiwania po ostatnich zmianach 60 sekund, uruchomienie nie nastąpi, dopóki nie upłynie co najmniej 120 sekund, nawet jeśli aktualizacja tabeli nastąpi w ciągu pierwszych 60 sekund. Ponadto, jeśli jedna aktualizacja nadejdzie po 5 sekundach, a następnie kolejna po 115 sekundach, oczekiwanie po ostatniej zmianie oznacza, że uruchomienie nastąpi dopiero 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.

Aby edytować, wstrzymać lub usunąć ten wyzwalacz później, użyj sekcji Harmonogramy i wyzwalacze w okienku Szczegóły zadania . Zobacz Zarządzanie istniejącym wyzwalaczem.

Dodaj wyzwalacz do OpenSharing i tabel systemowych

Ważna

Ta funkcja jest w wersji beta.

Oprócz tabel lokalnych można skonfigurować wyzwalacze aktualizacji tabel w celu monitorowania danych udostępnionych w obszarze roboczym za pomocą tabel OpenSharing i systemowych. Można na przykład wyzwolić zadanie za każdym razem, gdy nowe rekordy rozliczeniowe wylądowały w tabeli systemowej lub za każdym razem, gdy dostawca aktualizuje udostępnioną tabelę.

Możesz uruchomić następujące udostępnione obiekty:

  • Tabele OpenSharing
  • Widoki udostępniania OpenSharing
  • Widoki metryk OpenSharing
  • Udostępnianie zmaterializowanych widoków openSharing
  • Tabele strumieniowe OpenSharing
  • Tabele systemowe

Przejrzyj ograniczenia wyzwalacza OpenSharing, a następnie wykonaj kroki opisane w artykule Dodawanie wyzwalacza aktualizacji tabeli i wybierz udostępnione tabele, widoki lub tabele systemowe, które chcesz monitorować.

Ograniczenia wyzwalacza openSharing

  • Ta funkcja obsługuje tylko usługę Databricks-to-Databricks OpenSharing. Udostępnianie Databricks-to-Open nie jest obsługiwane.

  • Aby wyzwalacze działały dla udostępnionych tabel i widoków, funkcja beta musi być włączona zarówno po stronie odbiorcy, jak i dostawcy:

    • Wyzwalacze aktualizacji tabeli w OpenSharing (odbiorca): funkcja beta na poziomie obszaru roboczego, włączana w obszarze roboczym odbiorcy, w którym tworzony jest wyzwalacz.
    • Wyzwalacze aktualizacji tabel w OpenSharing (dostawca): wersja beta na poziomie konta, włączona na koncie dostawcy, do którego należą udostępniane dane.

    W przypadku tabel systemowych wymagana jest tylko wersja beta odbiorcy. Aby włączyć, zobacz Zarządzanie podglądami Azure Databricks.

  • Użytkownik tworzący wyzwalacz musi mieć SELECT uprawnienia do udostępnionego obiektu lub tabeli systemowej.

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.

Aby uzyskać odpowiedzi na często zadawane pytania dotyczące zdarzeń plików, zobacz Często zadawane pytania dotyczące zdarzeń plików.

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 ma <catalog.schema.table> w pełni kwalifikowaną nazwę tabeli, dla której chcesz uzyskać dane. Jeśli w wyzwalaczu monitorowana jest tylko jedna tabela, zobaczysz wartość bez elementu <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.
  • Można utworzyć maksymalnie 1000 wyzwalaczy aktualizacji tabeli na obiektach openSharing lub tabelach systemowych na obszar roboczy.

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ć dane z obsługiwanej tabeli odczytującej pliki, ale nie mogą bezpośrednio używać 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 kończy się powodzeniem, ale żadne uruchomienia zadań nie są wyzwalane po zaktualizowaniu nieobsługiwanej zależności.

  • 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 można go użyć w wyzwalaczu aktualizacji tabeli. Podobnie wyzwalacz z dwoma widokami, z których każdy zależy od 6 tabel, liczy się jako 12 tabel.
  • Istnieje osobny limit 10 widoków zależnych dla każdego monitorowanego widoku.

    • Jeśli na przykład widok zależy od 11 innych widoków, nie można go użyć w wyzwalaczu aktualizacji tabeli, nawet jeśli nie narusza to reguły 10 tabel na wyzwalacz.