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.
Znajdź odpowiedzi na najczęściej zadawane pytania dotyczące Databricks Auto Loader.
Czy moduł automatycznego ładowania ponownie przetwarza plik, gdy plik zostanie dołączony lub zastąpiony?
W przypadku ustawienia domyślnego (cloudFiles.allowOverwrites = false) pliki są przetwarzane dokładnie raz. Gdy plik jest dołączany lub nadpisywany, moduł automatycznego ładowania nie może zagwarantować, która wersja pliku zostanie przetworzona.
Aby zezwolić automatycznemu modułowi ładowania na ponowne przetwarzanie pliku po jego dołączeniu lub zastąpieniu, możesz ustawić wartość cloudFiles.allowOverwrites na true. W takim przypadku moduł automatycznego ładowania ma gwarancję przetworzenia najnowszej wersji pliku. Jednak moduł automatycznego ładowania nie może zagwarantować, która wersja pośrednia jest przetwarzana.
Zachowaj ostrożność, jeśli włączysz tryb powiadomień o plikach cloudFiles.allowOverwrites. W trybie powiadomień dotyczących plików narzędzie do automatycznego ładowania może identyfikować nowe pliki za pośrednictwem powiadomień o plikach i listy katalogów. Ponieważ czas zdarzenia powiadomienia o pliku i czas modyfikacji pliku mogą się różnić, moduł automatycznego ładowania może odbierać dwa różne znaczniki czasu i pozyskiwać ten sam plik dwa razy, nawet jeśli plik nie został zaktualizowany.
Po cloudFiles.allowOverwrites włączeniu należy samodzielnie obsługiwać zduplikowane rekordy. Moduł automatycznego ładowania ponownie przetworzy cały plik nawet wtedy, gdy zostanie on dołączony do lub częściowo zaktualizowany. Ogólnie rzecz biorąc, usługa Azure Databricks zaleca używanie automatycznego modułu ładującego do pozyskiwania tylko plików niezmiennych i używania domyślnego ustawienia cloudFiles.allowOverwrites = false. Jeśli masz dodatkowe pytania, skontaktuj się z zespołem konta usługi Azure Databricks.
Jak Auto Loader określa, czy plik został załadowany, czy nie?
Automatyczny moduł ładowania zazwyczaj wczytuje każdy plik tylko raz, korzystając ze ścieżki pliku. Jeśli jednak ustawisz opcję allowOverwrites na true, Auto Loader używa również znacznika czasu ostatniej modyfikacji pliku, aby określić, czy plik jest nowy, czy został zaktualizowany i musi zostać ponownie wczytany. Zobacz Czy moduł automatycznego ładowania ponownie przetwarza plik, gdy plik zostanie dołączony lub zastąpiony?
Jeśli moje pliki danych nie docierają stale, ale w regularnych odstępach czasu, na przykład raz dziennie, czy nadal należy używać tego źródła i czy istnieją jakieś korzyści?
W takim przypadku można skonfigurować zadanie Structured Streaming Trigger.AvailableNow (dostępne w środowisku Databricks Runtime 10.4 LTS lub nowszym) i zaplanować jego uruchomienie po przewidywanym czasie nadejścia pliku. Automatyczne ładowanie działa dobrze zarówno w przypadku rzadkich, jak i częstych aktualizacji. Nawet jeśli aktualizacje ostateczne są bardzo duże, moduł ładujący automatycznie skaluje się do rozmiaru wejściowego. Efektywne techniki odnajdywania plików i zdolności ewolucji schematu Auto Loader sprawiają, że jest on zalecaną metodą przyrostowego pozyskiwania danych.
Jak Auto Loader wnioskuje schemat?
Gdy DataFrame jest początkowo definiowany, Auto Loader wyświetla katalog źródłowy i wybiera najnowsze dane (według daty modyfikacji pliku) o rozmiarze 50 GB lub 1000 plików, i używa ich do wnioskowania schematu danych.
Auto Loader również wnioskuje kolumny partycji poprzez analizę struktury katalogu źródłowego i wyszukuje ścieżki plików, które zawierają strukturę /key=value/. Jeśli katalog źródłowy ma niespójną strukturę, na przykład:
base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json
Auto Loader wnioskuje, że kolumny partycji są puste. Użyj polecenia cloudFiles.partitionColumns , aby jawnie analizować kolumny ze struktury katalogów.
Jak działa moduł automatycznego ładowania, gdy folder źródłowy jest pusty?
Jeśli katalog źródłowy jest pusty, moduł automatycznego ładowania wymaga podania schematu, ponieważ nie ma danych do wnioskowania.
Kiedy automatyczny ładowacz wnioskuje schemat? Czy ulega zmianie automatycznie po każdej mikropartii?
Schemat jest wnioskowany, gdy ramka danych jest najpierw zdefiniowana w kodzie. Podczas każdej mikroserii zmiany schematu są oceniane na bieżąco, dzięki czemu nie musisz martwić się o spadki wydajności. Po ponownym uruchomieniu strumienia, strumień pobiera zaktualizowany schemat z lokalizacji schematu i rozpoczyna wykonywanie bez żadnych dodatkowych obciążeń związanych z wnioskowaniem.
Jaki jest wpływ na wydajność przetwarzania danych podczas korzystania z wnioskowania schematu Auto Loader?
Wnioskowanie schematu powinno potrwać kilka minut w przypadku bardzo dużych katalogów źródłowych podczas wnioskowania początkowego schematu. Nie należy zauważać znaczących spadków wydajności podczas wykonywania strumienia. Jeśli uruchomisz kod w notesie usługi Azure Databricks, zobaczysz aktualizacje stanu określające, kiedy moduł automatycznego ładowania będzie wyświetlać katalog na potrzeby próbkowania i wnioskowania schematu danych.
Ze względu na usterkę zły plik drastycznie zmienił schemat. Co należy zrobić, aby wycofać zmianę schematu?
Skontaktuj się z pomocą techniczną usługi Databricks, aby uzyskać pomoc.
Co się stanie, jeśli zmienię lokalizację punktu kontrolnego podczas ponownego uruchamiania strumienia?
Lokalizacja punktu kontrolnego utrzymuje ważne informacje identyfikujące strumień. Zmiana lokalizacji punktu kontrolnego skutecznie oznacza, że porzucono poprzedni strumień i rozpoczęto nowy strumień.
Czy muszę wcześniej utworzyć usługi powiadomień o zdarzeniach?
Nr. Jeśli wybierzesz tryb powiadomień plików i podasz wymagane uprawnienia, Auto Loader może utworzyć dla Ciebie usługi powiadomień o plikach. Zobacz Zarządzanie kolejkami powiadomień plików dla każdego strumienia automatycznego ładowania oddzielnie (wersja klasyczna).
Jeśli zdarzenia plików są włączone w lokalizacji zewnętrznej w Unity Catalog, usługa zdarzeń plików może utworzyć te zdarzenia u dostawcy usług w chmurze i nie trzeba konfigurować modułu Auto Loader, aby tworzył je dla każdego strumienia. Zobacz Use file notification mode with file events (Używanie trybu powiadomień plików ze zdarzeniami plików)
Czy można uruchamiać wiele zapytań przesyłania strumieniowego z różnych katalogów wejściowych w tym samym zasobniku/kontenerze?
Tak, o ile nie są katalogami nadrzędnych-podrzędnych; na przykład prod-logs/ i prod-logs/usage/ nie będą działać, ponieważ /usage jest katalogiem podrzędnym /prod-logs.
Czy mogę użyć tej funkcji, gdy istnieją powiadomienia o plikach w zasobniku lub kontenerze?
Tak, o ile katalog wejściowy nie powoduje konfliktu z istniejącym prefiksem powiadomień (na przykład katalogami rodzic-dziecko).
Czy mogę udostępnić kolejkę SQS między Auto Loaderem a innymi aplikacjami?
Usługa Databricks nie zaleca udostępniania kolejki SQS między modułem automatycznego ładowania i innymi aplikacjami. Zamiast tego przekaż powiadomienia o zdarzeniach S3 do tematu SNS, a następnie zasubskrybuj oddzielną kolejkę SQS dla każdej aplikacji do tego tematu. Użyj zasad filtrowania subskrypcji SNS, aby upewnić się, że tylko odpowiednie komunikaty są przekazywane do każdej kolejki. Następnie podaj dedykowaną kolejkę do automatycznego modułu ładującego.
Jak sprawdzić, czy zdarzenia plików są poprawnie skonfigurowane?
Kliknij przycisk Testuj połączenie na stronie lokalizacji zewnętrznej. Jeśli poprawnie skonfigurujesz zdarzenia plików, zobaczysz zielony znacznik wyboru dla elementu Odczyt zdarzeń plików . Jeśli właśnie utworzono lokalizację zewnętrzną i w trybie Automatic włączono zdarzenia plików, test pokazuje Skipped, podczas gdy usługa Azure Databricks konfiguruje powiadomienia dla lokalizacji zewnętrznej. Poczekaj kilka minut, a następnie ponownie kliknij pozycję Testuj połączenie . Jeśli Azure Databricks nie ma wymaganych uprawnień do konfigurowania lub odczytywania danych ze zdarzeń plików, przy elemencie File Events Read zostanie wyświetlony błąd.
Czy można uniknąć pełnej listy katalogów podczas początkowego uruchomienia?
Nr. Nawet jeśli includeExistingFiles jest ustawiona na false, automatyczny załadunek wykonuje przegląd katalogów w celu odkrycia plików utworzonych po rozpoczęciu strumienia i aktualizowania pamięci podręcznej zdarzeń plików (ustala prawidłową pozycję odczytu w pamięci podręcznej i zapisuje ją w punkcie kontrolnym strumienia).
Czy muszę ustawić, cloudFiles.backfillInterval aby uniknąć brakujących plików?
Nr. Azure Databricks wcześniej zalecało to ustawienie dla klasycznego trybu powiadamiania o plikach, ponieważ systemy powiadomień magazynu w chmurze mogą spowodować pominięcie lub opóźnienie plików. Teraz usługa Azure Databricks wykonuje pełne listy katalogów w lokalizacji zewnętrznej. 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.
Skonfigurowałem zdarzenia plików z wykorzystaniem podanej kolejki magazynu, ale kolejka była błędnie skonfigurowana i nie zauważyłem plików. Jak upewnić się, że moduł automatycznego ładowania pozyska pliki pominięte, gdy moja kolejka została nieprawidłowo skonfigurowana?
Najpierw sprawdź, czy podana błędna konfiguracja kolejki została poprawiona. Aby to sprawdzić, kliknij przycisk Testuj połączenie na stronie lokalizacji zewnętrznej. Jeśli poprawnie skonfigurujesz zdarzenia plików, pojawi się zielony znak wyboru przy elemencie Odczyt zdarzeń plików.
Usługa Azure Databricks wykonuje pełne katalogowanie lokalizacji zewnętrznych, przy czym zdarzenia związane z plikami są włączone. Ta lista katalogów odnajduje wszystkie pliki, które zostały pominięte w okresie błędnej konfiguracji i przechowuje je w pamięci podręcznej zdarzeń plików.
Po naprawieniu błędnej konfiguracji i ukończeniu listy katalogów przez usługę Azure Databricks, Auto Loader kontynuuje odczyt z pamięci podręcznej zdarzeń plików i automatycznie pozyskuje wszystkie pliki pominięte w okresie błędnej konfiguracji.
Jak mogę naprawić się po CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN błędzie?
Ten błąd występuje, gdy token kontynuacji przechowywany w punkcie kontrolnym modułu ładującego automatycznego dla usługi zdarzeń plików stał się nieprawidłowy.
Niektóre typowe przyczyny:
-
cloudFiles.useManagedFileEventszostał wyłączony, a następnie ponownie włączony. - Modyfikacja lokalizacji zewnętrznej lub woluminu źródła.
- Modyfikacja podanej kolejki.
- Zmienianie opcji
cloudFiles.allowOverwriteslubcloudFiles.readChangeFeed.
Aby odzyskać:
- Ustaw
.option("cloudFiles.listOnStart", "true")i.option("cloudFiles.validateOptions", false)na zapytaniu strumieniowym. - Uruchom ponownie strumień. Auto Loader wykonuje pełną listę katalogów podczas uruchamiania i pomija nieprawidłowy token kontynuacji.
- Po pomyślnej mikropartii wyeliminuj obie opcje i ponownie uruchom strumień.
Aby uzyskać więcej informacji na temat cloudFiles.listOnStart opcji, zobacz Powiadomienie o pliku.
Jak mogę czyścić zasoby powiadomień o zdarzeniach utworzone przez moduł automatycznego ładowania?
Możesz użyć menedżera zasobów w chmurze, aby wyświetlić listę i usunąć zasoby. Te zasoby można również usunąć ręcznie przy użyciu interfejsu użytkownika lub interfejsów API dostawcy usług w chmurze.
Jak monitorować potok automatycznego modułu ładującego?
Auto Loader udostępnia kluczowe metryki za pośrednictwem StreamingQueryListener oraz stan przetwarzania na poziomie pliku za pośrednictwem cloud_files_state(). Aby uzyskać wskazówki dotyczące monitorowania metryk, stanu pozyskiwania zapytań, tworzenia pulpitów nawigacyjnych z obserwacją i rozwiązywania typowych problemów, zobacz Monitorowanie i obserwowanie modułu ładującego automatycznie.