Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Opcja cloudFiles.useManagedFileEvents z funkcją Auto Loader umożliwia wydajne odnajdywanie plików.
Jak działa Auto Loader z zdarzeniami plików?
Automatyczne ładowanie z powiadomieniami o zdarzeniach plików używa funkcji powiadomień udostępnianych przez dostawców chmury. Kontenery magazynu w chmurze można skonfigurować tak, aby publikowały powiadomienia dotyczące zdarzeń plików, takich jak tworzenie i modyfikowanie nowych plików. Na przykład w przypadku powiadomień o zdarzeniach Amazon S3 pojawienie się nowego pliku może spowodować wysłanie powiadomienia do tematu Amazon SNS (szczegóły znajdziesz w strukturze zawartości powiadomień Amazon S3). Następnie możesz subskrybować kolejkę Amazon SQS do tematu SNS w celu asynchronicznego przetwarzania zdarzenia.
Zdarzenia plików Azure Databricks to usługa, która konfiguruje zasoby w chmurze do nasłuchiwania zdarzeń plików. Alternatywnie możesz samodzielnie skonfigurować zasoby w chmurze i udostępnić własną kolejkę pamięci masowej.
Po skonfigurowaniu zasobów w chmurze usługa przetwarza powiadomienia o zdarzeniach plików i buforuje metadane plików. Automatycznie ładujący używa tej pamięci podręcznej do odnajdywania plików po uruchomieniu z ustawioną wartością cloudFiles.useManagedFileEventstrue.
Gdy strumień jest uruchamiany po raz pierwszy z cloudFiles.useManagedFileEvents ustawioną na true, Auto Loader wykonuje pełne wylistowanie katalogu ścieżki ładowania, aby odnaleźć wszystkie pliki i zaktualizować pamięć podręczną zdarzeń plików (zabezpieczając prawidłową pozycję odczytu w pamięci podręcznej i zapisując ją w punkcie kontrolnym strumienia). Kolejne uruchomienia modułu automatycznego ładowania odnajdują nowe pliki, odczytując bezpośrednio z pamięci podręcznej zdarzeń plików przy użyciu przechowywanej pozycji odczytu i nie wymagają listy katalogów.
Databricks zaleca uruchamianie strumieni Auto Loader co najmniej raz na siedem dni, aby korzystać z przyrostowego odnajdywania plików z pamięci podręcznej. Jeśli nie uruchamiasz automatycznego modułu ładującego przynajmniej tak często, zapisana pozycja odczytu staje się nieprawidłowa, a Auto Loader musi wykonać pełne przeszukiwanie katalogów, aby zsynchronizować się z pamięcią podręczną zdarzeń plików.
Tryb zdarzeń plików a klasyczny tryb powiadomień o plikach
Ten diagram porównuje tryb zdarzeń plików i klasyczny tryb powiadomień dotyczących plików.
W trybie zdarzeń plikowych pojedyncza zarządzana usługa obsługi zdarzeń plikowych łączy się z magazynem danych klienta w chmurze. Tworzy jeden udostępniony temat SNS, kolejkę SQS i subskrypcję SNS-to-SQS, która obsługuje wielu odbiorców, w tym automatyczne ładowanie i wyzwalacze. W klasycznym trybie powiadomień o plikach każdy konsument wymaga własnej subskrypcji zdarzeń i kolejki, co skutkuje wieloma oddzielnymi potokami powiadomień dla każdego zasobnika.
Tryb zdarzeń plików ma kilka zalet w porównaniu z klasycznym trybem powiadamiania o plikach. Przede wszystkim wymaga tylko jednej kolejki dla wszystkich strumieni modułu automatycznego ładowania w zasobniku, co pomaga uniknąć limitu powiadomień dla poszczególnych zasobników. Aby uzyskać więcej informacji, zobacz Tryb powiadomień o plikach z włączonymi i wyłączonymi zdarzeniami plików w lokalizacjach zewnętrznych.
Kiedy Auto Loader używa listowania katalogów przy zdarzeniach plików?
Auto Loader wykonuje pełną listę katalogów, gdy:
- Rozpoczynanie nowej transmisji.
- Migrowanie strumienia z listy katalogów lub powiadomień dotyczących plików klasycznych.
- Automatyczne ładowanie ze zdarzeniami plików nie jest uruchamiane przez więcej niż siedem dni.
- Wprowadzasz aktualizacje do lokalizacji zewnętrznej, które unieważniają pozycję odczytu Auto Loader. Przykłady obejmują wyłączenie i ponowne włączenie zdarzeń plików, zmianę ścieżki lokalizacji zewnętrznej lub podanie innej kolejki dla tej lokalizacji zewnętrznej.
Auto Loader zawsze wykonuje pełne wylistowanie przy pierwszym uruchomieniu, nawet jeśli wartość includeExistingFiles jest ustawiona na false. Ta flaga umożliwia przetwarzanie wszystkich plików utworzonych po godzinie rozpoczęcia strumienia. Moduł automatycznego ładowania wyświetla cały katalog, aby odnaleźć wszystkie pliki utworzone po godzinie rozpoczęcia strumienia, ustanawia pozycję odczytu w pamięci podręcznej zdarzeń plików i zapisuje je w punkcie kontrolnym. Kolejne uruchomienia bezpośrednio odczytują dane z pamięci podręcznej wydarzeń plików i nie potrzebują listy katalogów.
Usługa zdarzeń plików usługi Azure Databricks wykonuje również pełne listy katalogów w lokalizacji zewnętrznej, aby sprawdzić, czy nie pominięto żadnych plików (na przykład jeśli podana kolejka jest nieprawidłowo skonfigurowana). Pierwsza pełna lista plików rozpoczyna się natychmiast po włączeniu zdarzeń dotyczących plików w lokalizacji zewnętrznej. Każda kolejna lista występuje 24 godziny po ostatnim pełnym skanowaniu, o ile istnieje co najmniej jeden strumień automatycznego ładowania przy użyciu zdarzeń plików do pozyskiwania danych.
Najlepsze praktyki dla Auto Loader ze zdarzeniami plików
Postępuj zgodnie z tymi najlepszymi praktykami, aby zoptymalizować wydajność i niezawodność podczas korzystania z Auto Loader ze zdarzeniami plików.
Używanie woluminów do optymalnego odnajdywania plików
W celu zwiększenia wydajności usługa Databricks zaleca utworzenie woluminu zewnętrznego dla każdej ścieżki lub podkatalogu, z którego Auto Loader ładuje dane, i podawanie ścieżek woluminów (na przykład /Volumes/someCatalog/someSchema/someVolume) do Auto Loader zamiast ścieżek w chmurze (na przykład s3://bucket/path/to/volume). Optymalizuje odnajdywanie plików, ponieważ moduł automatycznego ładowania może wyświetlić wolumin przy użyciu zoptymalizowanego wzorca dostępu do danych.
Rozważ użycie wyzwalaczy przybycia plików dla potoków sterowanych zdarzeniami
W przypadku przetwarzania danych opartych na zdarzeniach rozważ użycie wyzwalacza przybycia pliku zamiast potoku ciągłego. Wyzwalacze przybycia plików automatycznie uruchamiają potok po nadejściu nowych plików, zapewniając lepsze wykorzystanie zasobów i efektywność kosztową, ponieważ klaster działa tylko wtedy, gdy istnieją nowe pliki do przetworzenia.
Skonfiguruj odpowiednie interwały z wyzwalaczami ciągłymi
Usługa Databricks zaleca używanie wyzwalaczy przybycia plików do przetwarzania plików natychmiast po ich nadejściu. Jeśli jednak przypadek użycia wymaga mniejszego opóźnienia przy użyciu wyzwalaczy ciągłych, takich jak Trigger.ProcessingTime, usługa Databricks zaleca skonfigurowanie interwałów wyzwalaczy do 1 minute lub wyższych. W potokach Lakeflow ustaw tę wartość przy użyciu polecenia pipelines.trigger.interval. Zmniejszenie częstotliwości odpytywania pozwala sprawdzić, czy nowe pliki zostały dostarczone i umożliwia jednoczesne uruchamianie większej liczby strumieni z obszaru roboczego.
W przypadku wymagań dotyczących bardzo małych opóźnień należy rozważyć zamiast tego klasyczny tryb powiadamiania o plikach . Zdarzenia plików wprowadzają dodatkowy przeskok buforowania między magazynem w chmurze i modułem automatycznego ładowania, co może zwiększyć opóźnienie w porównaniu z odczytem bezpośrednio z kolejki chmury.
Ograniczenia Auto Loader w kontekście zdarzeń plików
Moduł automatycznego ładowania nie obsługuje ponownego zapisywania ścieżek. Ponowne zapisywanie ścieżki ma zastosowanie, gdy wiele zasobników lub kontenerów jest zainstalowanych w systemie plików DBFS, co jest przestarzałym wzorcem użycia.
Aby uzyskać ogólną listę ograniczeń zdarzeń plików, zobacz Ograniczenia zdarzeń plików.