Använda Auto Loader med Unity Catalog

Automatisk inläsare kan på ett säkert sätt mata in data från externa platser som konfigurerats med Unity Catalog. Mer information om hur du ansluter lagring på ett säkert sätt med Unity Catalog finns i Ansluta till molnobjektlagring med Unity Catalog. Automatisk inläsare förlitar sig på strukturerad direktuppspelning för inkrementell bearbetning. Rekommendationer och begränsningar finns i Använda Unity Catalog med strukturerad direktuppspelning.

Kommentar

I Databricks Runtime 11.3 LTS och senare kan du använda Auto Loader med antingen standard- eller dedikerade åtkomstlägen (tidigare delade och enanvändares åtkomstlägen).

Kataloglistningsläge stöds som standard. Filmeddelandeläget stöds endast vid beräkning med dedikerat åtkomstläge.

Ange platser för Auto Loader-resurser i Unity Catalog

Säkerhetsmodellen för Unity Catalog förutsätter att alla lagringsplatser som refereras i en arbetsbelastning hanteras av Unity Catalog. Databricks rekommenderar att du alltid lagrar information om kontrollpunkter och schemautveckling på lagringsplatser som hanteras av Unity Catalog. Med Unity Catalog kan du inte kapsla kontrollpunkter eller schemainferens- och evolutionsfiler under tabellkatalogen.

Mata in data från molnlagring med hjälp av Unity Catalog

I följande exempel förutsätts att den körande användaren har READ FILES behörigheter för den externa platsen, ägarbehörigheter för måltabellerna och följande konfigurationer och tilldelningar.

Kommentar

Azure Data Lake Storage är den enda Azure-lagringstypen som stöds av Unity Catalog.

Lagringsplats Bevilja
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

Använd Auto Loader för att läsa in till en hanterad Unity Catalog-tabell

Följande exempel visar hur du använder automatisk inläsning för att mata in data till en hanterad Unity Catalog-tabell.

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

När du använder read_files i en CREATE STREAMING TABLE-instruktion inom en Lakeflow Spark Deklarativ pipelines, hanteras kontrollpunkts- och schemalägen automatiskt.