Udostępnij za pośrednictwem


Konfigurowanie interwałów wyzwalacza przesyłania strumieniowego ze strukturą

Przesyłanie strumieniowe ze strukturą platformy Apache Spark przetwarza dane przyrostowo; Kontrolowanie interwału wyzwalacza przetwarzania wsadowego umożliwia używanie przesyłania strumieniowego ze strukturą dla obciążeń, w tym przetwarzania niemal w czasie rzeczywistym, odświeżania baz danych co 5 minut lub raz na godzinę lub przetwarzania wsadowego wszystkich nowych danych przez jeden dzień lub tydzień.

Ponieważ usługa Automatycznego ładowania usługi Databricks używa przesyłania strumieniowego ze strukturą do ładowania danych, zrozumienie sposobu działania wyzwalaczy zapewnia największą elastyczność kontrolowania kosztów podczas pozyskiwania danych z żądaną częstotliwością.

Określanie interwałów wyzwalacza opartego na czasie

Przesyłanie strumieniowe ze strukturą odnosi się do interwałów wyzwalaczy opartych na czasie jako "mikrosadowe mikrosady o stałym interwale". Używając słowa kluczowego processingTime , określ czas trwania jako ciąg, taki jak .trigger(processingTime='10 seconds').

Po określeniu interwału trigger , który jest zbyt mały (mniej niż dziesiątki sekund), system może wykonać niepotrzebne kontrole, aby sprawdzić, czy pojawią się nowe dane. Skonfiguruj czas przetwarzania, aby zrównoważyć wymagania dotyczące opóźnienia i szybkość, z jaką dane docierają do źródła.

Konfigurowanie przyrostowego przetwarzania wsadowego

Ważne

W środowisku Databricks Runtime 11.3 LTS i nowszym Trigger.Once ustawienie jest przestarzałe. Usługa Databricks zaleca użycie Trigger.AvailableNow wszystkich obciążeń przetwarzania wsadowego przyrostowego.

Dostępna opcja wyzwalacza używa wszystkich dostępnych rekordów jako partii przyrostowej z możliwością skonfigurowania rozmiaru partii z opcjami, takimi jak maxBytesPerTrigger (opcje określania rozmiaru różnią się w zależności od źródła danych).

Usługa Azure Databricks obsługuje używanie do Trigger.AvailableNow przyrostowego przetwarzania wsadowego z wielu źródeł przesyłania strumieniowego ze strukturą. Poniższa tabela zawiera minimalną obsługiwaną wersję środowiska Databricks Runtime wymaganą dla każdego źródła danych:

Lokalizacja źródłowa Minimalna wersja środowiska Databricks Runtime
Źródła plików (JSON, Parquet itp.) 9.1 LTS
Delta Lake 10.4 LTS
Moduł ładujący automatycznie 10.4 LTS
Apache Kafka 10.4 LTS
Kinesis 13.1

Jaki jest domyślny interwał wyzwalacza?

Domyślne ustawienia przesyłania strumieniowego ze strukturą to stałe interwały mikrosadowe 500 ms. Usługa Databricks zaleca, aby zawsze określać dostosowany element trigger , aby zminimalizować koszty związane z sprawdzaniem, czy nowe dane dotarły i czy niezwiązane partie zostały przetwarzane.

Zmienianie interwałów wyzwalacza między przebiegami

Interwał wyzwalacza można zmienić podczas korzystania z tego samego punktu kontrolnego.

Jeśli zadanie przesyłania strumieniowego ze strukturą zostanie zatrzymane podczas przetwarzania mikrosadowej partii, przed zastosowaniem nowego interwału wyzwalacza musi zostać ukończona mikrosadowa. W związku z tym można obserwować przetwarzanie mikrosadowe z wcześniej określonymi ustawieniami po zmianie interwału wyzwalacza.

Podczas przechodzenia z interwału opartego na czasie do użycia AvailableNowmoże to spowodować przetwarzanie mikrosadowe przed przetworzeniem wszystkich dostępnych rekordów jako partii przyrostowej.

Podczas przechodzenia z AvailableNow do interwału opartego na czasie może to spowodować kontynuowanie przetwarzania wszystkich rekordów, które były dostępne po wyzwoleniu ostatniego AvailableNow zadania. Jest to oczekiwane zachowanie.

Uwaga

Jeśli próbujesz odzyskać sprawność po niepowodzeniu zapytania skojarzonego z partią przyrostową, zmiana interwału wyzwalacza nie rozwiąże tego problemu, ponieważ partia musi być nadal ukończona. Usługa Databricks zaleca skalowanie w górę pojemności obliczeniowej używanej do przetwarzania partii w celu rozwiązania problemu. W rzadkich przypadkach może być konieczne ponowne uruchomienie strumienia przy użyciu nowego punktu kontrolnego.

Co to jest tryb ciągłego przetwarzania?

Platforma Apache Spark obsługuje dodatkowy interwał wyzwalacza znany jako Przetwarzanie ciągłe. Ten tryb został sklasyfikowany jako eksperymentalny od platformy Spark 2.3; skontaktuj się z zespołem kont usługi Azure Databricks, aby upewnić się, że rozumiesz kompromisy związane z tym modelem przetwarzania.

Należy pamiętać, że ten tryb ciągłego przetwarzania w ogóle nie odnosi się do ciągłego przetwarzania stosowanego w tabelach delta live.