Udostępnij za pośrednictwem


Tryb wyzwalany a tryb ciągłego potoku

W tym artykule opisano semantykę operacyjną trybów wyzwalanych i ciągłych przetwarzania dla DLT.

Tryb przetwarzania potokowego jest niezależny od rodzaju obliczanej tabeli. Widoki materializowane i tabele przesyłania strumieniowego można aktualizować w trybie potokowym.

Aby zmienić pomiędzy trybem wyzwalanym a ciągłym, użyj opcji trybu potoku w ustawieniach potoku podczas tworzenia lub edytowania potoku. Zobacz Konfigurowanie potoku DLT.

Notatka

Operacje odświeżania dla zmaterializowanych widoków i tabel przesyłania strumieniowego zdefiniowanych w usłudze Sql usługi Databricks zawsze są uruchamiane przy użyciu wyzwalanego trybu potoku.

Co to jest wyzwalany tryb potoku?

Jeśli pipeline używa trybu wyzwalanego, system przestaje przetwarzać po pomyślnym odświeżeniu wszystkich tabel lub wybranych tabel, upewniając się, że każda tabela w aktualizacji zostanie odświeżona na podstawie danych dostępnych w momencie rozpoczęcia aktualizacji.

Co to jest tryb ciągłego przetwarzania?

Jeśli potok używa ciągłego wykonywania, biblioteka DLT przetwarza nowe dane w miarę ich napływu do źródeł danych w celu przechowywania tabel w całym potoku.

Aby uniknąć niepotrzebnego przetwarzania w trybie ciągłym, potoki automatycznie monitorują zależne tabele Delta i wykonują aktualizację tylko wtedy, gdy zawartość tych tabel uległa zmianie.

Wybieranie trybów potoku danych

W poniższej tabeli przedstawiono różnice między trybami wyzwalania i potoku ciągłego:

Kluczowe pytania Wywołany Ciągły
Kiedy aktualizacja zostanie zatrzymana? Automatycznie po zakończeniu. Działa w sposób ciągły do momentu ręcznego zatrzymania.
Jakie dane są przetwarzane? Dane dostępne po uruchomieniu aktualizacji. Wszystkie dane docierające do skonfigurowanych źródeł.
Dla jakich wymagań dotyczących aktualności danych to rozwiązanie jest najlepsze? Aktualizacje danych są uruchamiane co 10 minut, co godzinę lub codziennie. Aktualizacje danych są wymagane od co 10 sekund do kilku minut.

Wyzwalane potoki mogą zmniejszyć zużycie zasobów i wydatki, ponieważ klaster działa wystarczająco długo, aby zaktualizować potok. Jednak nowe dane nie będą przetwarzane, dopóki pipeline nie zostanie wyzwolony. Potoki ciągłe wymagają klastra działającego na stałe, który jest droższy, ale zmniejsza latencję przetwarzania.

Ustaw interwał wyzwalacza dla potoków ciągłych

Podczas konfigurowania przepływów dla trybu ciągłego można ustawić interwały wyzwalania, aby kontrolować częstotliwość rozpoczynania aktualizacji przepływu.

Za pomocą pipelines.trigger.interval można kontrolować interwał wyzwalacza dla przepływu aktualizując tabelę lub cały potok. Ponieważ wyzwalany potok przetwarza każdą tabelę tylko raz, pipelines.trigger.interval używa się tylko w przypadku potoków ciągłych.

Usługa Databricks zaleca ustawienie pipelines.trigger.interval dla poszczególnych tabel, ponieważ zapytania przesyłane strumieniowo i wsadowe mają różne wartości domyślne. Ustaw wartość na potoku tylko wtedy, gdy przetwarzanie wymaga kontrolowania aktualizacji całego grafu potoku.

Ustawisz pipelines.trigger.interval w tabeli przy użyciu spark_conf w języku Python lub SET w języku SQL:

@dlt.table(
  spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
    return (<query>)
SET pipelines.trigger.interval=10 seconds;

CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...

Aby ustawić pipelines.trigger.interval w potoku, dodaj go do obiektu configuration w ustawieniach potoku:

{
  "configuration": {
    "pipelines.trigger.interval": "10 seconds"
  }
}