Udostępnij za pośrednictwem


Wyzwalany a tryb potoku ciągłego

W tym artykule opisano semantykę operacyjną wyzwalanych i ciągłych trybów potoków dla tabel delta Live Tables.

Tryb potoku jest niezależny od typu obliczanej tabeli. Oba zmaterializowane widoki i tabele przesyłania strumieniowego można aktualizować w trybie potoku.

Aby zmienić tryb potoku między wyzwalanym i ciągłym, użyj opcji Tryb potoku w ustawieniach potoku podczas tworzenia lub edytowania potoku. Zobacz Konfigurowanie potoku tabel na żywo delty.

Uwaga

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 tryb wyzwalanego potoku?

Jeśli potok 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 podczas uruchamiania aktualizacji.

Co to jest tryb potoku ciągłego?

Jeśli potok używa ciągłego wykonywania, funkcja Delta Live Tables przetwarza nowe dane w miarę ich dostarczania w źródłach danych, aby zachować nowe tabele w całym potoku.

Aby uniknąć niepotrzebnego przetwarzania w trybie ciągłego wykonywania, potoki automatycznie monitorują zależne tabele delty i wykonują aktualizację tylko wtedy, gdy zawartość tych tabel zależnych 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 Wyzwolone Ciągłe
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ł.
Jakie wymagania dotyczące aktualności danych są 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 potok nie zostanie wyzwolony. Potoki ciągłe wymagają zawsze uruchomionego klastra, który jest droższy, ale zmniejsza opóźnienie przetwarzania.

Ustawianie interwału wyzwalacza dla potoków ciągłych

Podczas konfigurowania potoków dla trybu ciągłego można ustawić interwały wyzwalaczy, aby kontrolować częstotliwość uruchamiania potoku aktualizacji dla każdego przepływu.

pipelines.trigger.interval Służy do kontrolowania interwału wyzwalacza dla przepływu aktualizującego tabelę lub cały potok. Ponieważ wyzwalany potok przetwarza każdą tabelę raz, pipelines.trigger.interval jest używany 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ść potoku tylko wtedy, gdy przetwarzanie wymaga kontrolowania aktualizacji dla całego grafu potoku.

Tabelę można ustawić pipelines.trigger.interval przy użyciu języka spark_conf 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 potok, dodaj go do configuration obiektu w ustawieniach potoku:

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