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"
}
}