Uso de Auto Loader con Unity Catalog

Auto Loader puede ingerir datos de manera segura desde ubicaciones externas que están configuradas con Unity Catalog. Para más información sobre cómo conectar de forma segura el almacenamiento con el catálogo de Unity, consulte Conexión al almacenamiento de objetos en la nube mediante el catálogo de Unity. Auto Loader se basa en Structured Streaming para el procesamiento incremental; para obtener recomendaciones y limitaciones, consulte Uso de Unity Catalog con Structured Streaming.

Nota:

En Databricks Runtime 11.3 LTS y versiones posteriores, puede usar Auto Loader con modos de acceso estándar o dedicados (anteriormente modos de acceso compartido y de usuario único).

El modo de lista de directorios es compatible de manera predeterminada. El modo de notificación de archivos solo se admite en entornos de computación con el modo de acceso dedicado.

Especificar ubicaciones para los recursos de Auto Loader para el catálogo de Unity

El modelo de seguridad de Unity Catalog supone que todas las ubicaciones de almacenamiento a las que se hace referencia en una carga de trabajo se administrarán mediante Unity Catalog. Databricks recomienda almacenar siempre la información de evolución de puntos de control y esquemas en ubicaciones de almacenamiento que administra Unity Catalog. Unity Catalog no permite anidar archivos de puntos de control ni archivos de inferencia y evolución de esquemas en el directorio de la tabla.

Ingesta de datos desde el almacenamiento en la nube mediante el catálogo de Unity

En los ejemplos siguientes se supone que el usuario en ejecución tiene READ FILES permisos en la ubicación externa, los privilegios de propietario en las tablas de destino y las siguientes configuraciones y concesiones.

Nota:

Azure Data Lake Storage es el único tipo de almacenamiento de Azure compatible con Unity Catalog.

Ubicación de almacenamiento Otorgar
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

Uso del cargador automático para cargar en una tabla administrada del catálogo de Unity

En los ejemplos siguientes se muestra cómo usar Auto Loader para ingerir datos en una tabla administrada del catálogo de Unity.

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

Cuando se usa read_files en una instrucción CREATE STREAMING TABLE dentro de una canalización declarativa de Spark de Lakeflow, las ubicaciones de punto de control y esquema se administran automáticamente.