Verwenden des Autoloaders mit Unity Catalog

Der Autoloader kann Daten aus externen Speicherorten, die mit Unity Catalog konfiguriert sind, sicher erfassen. Weitere Informationen zum sicheren Verbinden von Speicher mit Unity-Katalog finden Sie unter Herstellen einer Verbindung mit dem Cloudobjektspeicher mithilfe des Unity-Katalogs. Der Autoloader basiert auf strukturiertem Streaming für die inkrementelle Verarbeitung. Empfehlungen und Informationen zu Einschränkungen finden Sie unter Verwenden von Unity Catalog mit strukturiertem Streaming.

Hinweis

In Databricks Runtime 11.3 LTS und höher können Sie auto Loader entweder mit Standard- oder dedizierten Zugriffsmodi (früher gemeinsam genutzte und Einzelbenutzerzugriffsmodi) verwenden.

Der Verzeichnisauflistungsmodus wird standardmäßig unterstützt. Der Dateibenachrichtigungsmodus wird nur für Rechner mit exklusivem Zugriffsmodus unterstützt.

Angeben von Speicherorten für Auto Loader-Ressourcen für Unity-Katalog

Das Unity Catalog-Sicherheitsmodell geht davon aus, dass alle Speicherorte, auf die in einer Workload verwiesen wird, von Unity Catalog verwaltet werden. Databricks empfiehlt, Prüfpunkt- und Schemaentwicklungsinformationen immer an Speicherorten zu speichern, die von Unity Catalog verwaltet werden. Unity Catalog ermöglicht es Ihnen nicht, Checkpoint-Dateien oder Dateien für Schema-Erkennung und -Entwicklung im Tabellenverzeichnis zu schachteln.

Aufnehmen von Daten aus cloudbasiertem Speicher mithilfe des Unity-Katalogs

In den folgenden Beispielen wird davon ausgegangen, dass der ausführende Benutzer READ FILES über Berechtigungen für den externen Speicherort, Besitzerberechtigungen für die Zieltabellen und die folgenden Konfigurationen und Berechtigungen verfügt.

Hinweis

Azure Data Lake Storage ist der einzige Azure-Speichertyp, der von Unity Catalog unterstützt wird.

Speicherort Erteilen
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 FILESCREATE TABLE

Verwenden des automatischen Ladevorgangs zum Laden in eine verwaltete Unity-Katalog-Tabelle

Die folgenden Beispiele veranschaulichen, wie Sie das automatische Laden zum Aufnehmen von Daten in eine verwaltete Unity-Katalogtabelle verwenden.

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'
);

Wenn Sie read_files in einer CREATE STREAMING TABLE-Anweisung innerhalb einer Lakeflow Spark Declarative Pipelines-Pipeline verwenden, werden Prüfpunkt- und Schemaspeicherorte automatisch verwaltet.