Udostępnij za pośrednictwem


Co to jest moduł automatycznego ładowania?

Moduł automatycznego ładowania przyrostowo i wydajnie przetwarza nowe pliki danych, gdy docierają one do magazynu w chmurze, bez konieczności dodatkowej konfiguracji.

Jak działa moduł automatycznego ładowania?

Auto Loader przetwarza nowe pliki danych przyrostowo i wydajnie, gdy tylko pojawiają się w magazynie w chmurze. Zapewnia źródło przesyłania strumieniowego ze strukturą o nazwie cloudFiles. Biorąc pod uwagę ścieżkę katalogu wejściowego w magazynie plików w chmurze, cloudFiles źródło automatycznie przetwarza nowe pliki po ich nadejściu, z opcją również przetwarzania istniejących plików w tym katalogu. Usługa Auto Loader obsługuje zarówno Python, jak i SQL w deklaratywnych potokach platformy Spark w Lakeflow.

Za pomocą modułu automatycznego ładowania można przetwarzać miliardy plików w celu migracji lub wypełniania tabeli. Automatyczny ładowacz skaluje się, aby wspierać niemalże w czasie rzeczywistym pozyskiwanie milionów plików na godzinę.

Obsługiwane źródła Auto Loader

Moduł automatycznego ładowania może ładować pliki danych z następujących źródeł:

Moduł ładujący może automatycznie pozyskiwać formaty plików JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT i BINARYFILE.

W jaki sposób Auto Loader śledzi postęp ładowania?

W miarę odnajdowania plików, ich metadane są przechowywane w skalowalnym magazynie klucz-wartość (RocksDB), w lokalizacji punktu kontrolnego potoku Auto Loader. Ten magazyn wartości kluczowych gwarantuje, że dane są przetwarzane dokładnie raz.

W przypadku awarii Auto Loader może wznowić działanie od miejsca, w którym zostało przerwane, na podstawie informacji przechowywanych w lokalizacji punktu kontrolnego, i nadal zapewniać gwarancję jednokrotnego zapisu danych do Delta Lake. Nie musisz samodzielnie utrzymywać ani zarządzać żadnym stanem, aby osiągnąć odporność na awarie lub semantykę przetwarzania dokładnie raz.

Przyrostowe pozyskiwanie danych z użyciem Auto Loader oraz potoków deklaratywnych Lakeflow Spark

Databricks zaleca użycie Auto Loader w deklaratywnych potokach Lakeflow Spark do przyrostowego ładowania danych. Deklaratywne potoki Lakeflow Spark rozszerzają funkcjonalność Strukturalnego strumieniowania Apache Spark i umożliwiają pisanie zaledwie kilku wierszy deklaratywnego języka Python lub SQL w celu wdrożenia potoku danych o jakości produkcyjnej za pomocą następujących elementów:

  • Automatyczne skalowanie infrastruktury obliczeniowej w celu uzyskania oszczędności kosztów
  • Sprawdzanie jakości danych zgodnie z wymaganiami
  • Automatyczna obsługa ewolucji schematu
  • Monitorowanie za pomocą metryk w dzienniku zdarzeń

Nie trzeba podawać schematu ani lokalizacji punktu kontrolnego, ponieważ Lakeflow Spark Declarative Pipelines automatycznie zarządzają tymi ustawieniami dla Twoich potoków. Zobacz Ładowanie danych w potokach.

Databricks zaleca również korzystanie z Auto Loader za każdym razem, gdy używasz Structured Streaming w Apache Spark do pozyskiwania danych z magazynu obiektów w chmurze. Interfejsy API są dostępne w językach Python i Scala.

Zacznij korzystać z Auto Loader w Databricks

Aby rozpocząć konfigurowanie przyrostowego pozyskiwania danych za pomocą Auto Loader i deklaratywnych potoków Lakeflow Spark, zapoznaj się z następującymi artykułami.

Przykłady: typowe wzorce modułu ładującego automatycznego

Przykłady typowych wzorców automatycznego ładowania można znaleźć w temacie Typowe wzorce ładowania danych.

Konfiguracja opcji Auto Loader.

Auto loader można dostroić na podstawie ilości danych, różnorodności i szybkości.

Aby uzyskać pełną listę opcji automatycznego modułu ładującego, zobacz:

Jeśli wystąpi nieoczekiwane działanie, zobacz często zadawane pytania.

Konfiguracja trybów wykrywania plików przez Auto Loader

Moduł automatycznego ładowania obsługuje dwa tryby wykrywania plików. See:

Zarządzanie danymi poza kolejnością

Automatyczne ładowanie nie gwarantuje kolejności odnajdywania lub przetwarzania plików, niezależnie od tego, czy używasz listy katalogów, czy trybu powiadomień dotyczących plików. Użyj poniższych strategii, aby zaprojektować potoki w celu obsługi przybycia plików w niepoprawnej kolejności.

Deklaratywne potoki Spark w platformie Lakeflow z AUTO CDC

Jeśli używasz potoków deklaratywnych Lakeflow Spark z modułem automatycznego ładowania i AUTO CDC, skonfiguruj zatrzymywanie nagrobka, aby usunięte rekordy były przechowywane wystarczająco długo, aby móc obsłużyć przyloty plików w niewłaściwej kolejności. Ustaw właściwość tabeli pipelines.cdc.tombstoneGCThresholdInSeconds na docelowej tabeli przesyłania strumieniowego na wartość, która przekracza maksymalne oczekiwane opóźnienie między przybyciem zdarzenia a uruchomieniem potoku. Domyślny okres przechowywania wynosi dwa dni. Aby uzyskać szczegółowe informacje, zobacz create_auto_cdc_flow.

Strukturalne przesyłanie strumieniowe bez sparkowych deklaratywnych potoków danych w Lakeflow

Jeśli używasz Apache Spark Structured Streaming bezpośrednio z funkcją Auto Loader (bez Spark Lakeflow Declarative Pipelines), rozważ następujące wzorce, aby obsłużyć dane spoza kolejności.

  • Preferuj miękkie usuwanie zamiast twardego usuwania: śledź flagę deleted i znacznik czasu zamiast usuwać wiersze, aby usunięcia z opóźnionym przybyciem nie powodowały konfliktów z wcześniejszymi rekordami.
  • Porównaj znaczniki czasu przed zastosowaniem aktualizacji: podczas upserting porównaj znacznik czasu aktualizacji rekordu przychodzącego z bieżącym znacznikiem czasu wiersza docelowego, aby uniknąć zastępowania nieaktualnych danych.

Zalety automatycznego ładowania przy korzystaniu z danych strumieniowych o ustrukturyzowanej formie bezpośrednio na plikach

Na platformie Apache Spark można odczytywać pliki przyrostowo przy użyciu polecenia spark.readStream.format(fileFormat).load(directory). Automatyczne ładowanie zapewnia następujące korzyści w porównaniu do źródła plików:

  • Skalowalność: Moduł automatycznego ładowania może efektywnie odnajdywać miliardy plików. Wypełniania danych można wykonywać asynchronicznie, aby uniknąć marnowania zasobów obliczeniowych.
  • Wydajność: koszt odnajdywania plików za pomocą narzędzia do automatycznego ładowania jest skalowany z liczbą plików pozyskanych zamiast liczby katalogów, w których pliki mogą znajdować się. Zobacz Konfigurowanie strumieni Auto Loader w trybie listy katalogów.
  • Obsługa wnioskowania schematu i ewolucji: moduł ładujący automatycznie może wykrywać dryfy schematów, powiadamiać o wystąpieniu zmian schematu i ratować dane, które w przeciwnym razie zostałyby zignorowane lub utracone. Zobacz Jak działa wnioskowanie schematu Auto Loadera?.
  • Koszt: Narzędzie do automatycznego ładowania korzysta z natywnych interfejsów API chmury do pobierania list plików, które istnieją w przechowalni. Ponadto tryb powiadamiania plików Auto Loadera może pomóc jeszcze bardziej zmniejszyć koszty chmury, całkowicie unikając tworzenia listy katalogów. Auto Loader może samodzielnie konfigurować usługi powiadomień o plikach w magazynie, aby odnajdywanie plików było znacznie tańsze.

Dodatkowe zasoby