Używanie Auto Loader z Unity Catalog

Moduł Auto Loader może bezpiecznie pozyskiwać dane z lokalizacji zewnętrznych skonfigurowanych z Unity Catalogiem. Aby dowiedzieć się więcej na temat bezpiecznego łączenia magazynu z Unity Catalog, zobacz część Połącz się z magazynem obiektów w chmurze przy użyciu Unity Catalog. Automatyczne ładowanie opiera się na Strukturalnym Przesyłaniu Strumieniowym na potrzeby przetwarzania przyrostowego; aby uzyskać zalecenia i ograniczenia, zobacz Używanie Unity Catalog ze Strukturalnym Przesyłaniem Strumieniowym.

Uwaga

W środowisku Databricks Runtime 11.3 LTS lub nowszym można używać Auto Loader w trybach dostępu standardowego lub dedykowanego (dawniej tryb dostępu współdzielonego i tryb pojedynczego użytkownika).

Tryb wyświetlania listy katalogów jest domyślnie obsługiwany. Tryb powiadomień plików jest obsługiwany tylko w przypadku obliczeń z dedykowanym trybem dostępu.

Określanie lokalizacji dla zasobów Auto Loader w Unity Catalog

Model zabezpieczeń Unity Catalog zakłada, że wszystkie lokalizacje magazynowania wymienione w obciążeniu będą zarządzane przez Unity Catalog. Databricks zaleca zawsze przechowywać informacje o punktach kontrolnych i ewolucji schematów w lokalizacjach przechowywania zarządzanych przez Unity Catalog. Unity Catalog nie umożliwia zagnieżdżania punktów kontrolnych ani wnioskowania schematu i plików ewolucji w katalogu tabeli.

Przetwarzanie danych z magazynu w chmurze przy użyciu Unity Catalog

W poniższych przykładach założono, że wykonujący użytkownik ma READ FILES uprawnienia do lokalizacji zewnętrznej, uprawnienia właściciela na tabelach docelowych oraz następujące konfiguracje i uprawnienia.

Uwaga

Usługa Azure Data Lake Storage jest jedynym typem magazynu usługi Azure obsługiwanym przez Unity Catalog.

Lokalizacja usługi Storage Dotacja
abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data READ FILES
abfss://dev-bucket@<storage-account>.dfs.core.windows.net READ FILES, WRITE FILES, CREATE TABLE

Użyj Auto Loader do ładowania do tabeli zarządzanej przez Unity Catalog

W poniższych przykładach pokazano, jak używać Auto Loader do wprowadzania danych do tabeli zarządzanej w Unity Catalog.

Python

checkpoint_path = "abfss://dev-bucket@<storage-account>.dfs.core.windows.net/_checkpoint/dev_table"

(spark.readStream
  .format("cloudFiles")
  .option("cloudFiles.format", "json")
  .option("cloudFiles.schemaLocation", checkpoint_path)
  .load("abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .trigger(availableNow=True)
  .toTable("dev_catalog.dev_database.dev_table"))

SQL

CREATE OR REFRESH STREAMING TABLE dev_catalog.dev_database.dev_table
AS SELECT * FROM STREAM read_files(
  'abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data',
  format => 'json'
);

W przypadku użycia read_files instrukcji CREATE STREAMING TABLE wewnątrz deklaratywnych potoków Lakeflow Spark, punkty kontrolne i lokalizacje schematu są zarządzane automatycznie.