Usando o Auto Loader com o Unity Catalog

O Auto Loader pode ingerir dados de locais externos configurados de forma segura com o Unity Catalog. Para saber mais sobre como conectar o armazenamento com segurança ao Unity Catalog, consulte Conectar-se ao armazenamento de objetos na nuvem usando o Unity Catalog. O Auto Loader depende do Structured Streaming para processamento incremental; para obter recomendações e limitações, consulte Usando o catálogo Unity com streaming estruturado.

Nota

Nos Databricks Runtime 11.3 LTS e versões superiores, pode usar o Auto Loader com modos de acesso normal ou dedicados, anteriormente conhecidos como modos de acesso partilhado e de utilizador único.

O modo de listagem de diretório é suportado por padrão. O modo de notificação de ficheiros só é suportado em computação com acesso dedicado.

Especificar localizações para recursos do Auto Loader para o Catálogo Unity

O modelo de segurança do Unity Catalog pressupõe que todos os locais de armazenamento referenciados em uma carga de trabalho serão gerenciados pelo Unity Catalog. O Databricks recomenda sempre armazenar informações de ponto de verificação e evolução do esquema em locais de armazenamento gerenciados pelo Unity Catalog. O Unity Catalog não permite inserir ficheiros de ponto de verificação ou de inferência e evolução de esquema no diretório da tabela.

Ingerir dados do armazenamento na cloud usando o Unity Catalog

Os exemplos seguintes assumem que o utilizador executante tem READ FILES permissões sobre a localização externa, privilégios de proprietário nas tabelas de destino e as seguintes configurações e concessões.

Nota

O Armazenamento Azure Data Lake é o único tipo de armazenamento do Azure suportado pelo Catálogo Unity.

Localização de armazenamento Subvenção
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

Use o Auto Loader para carregar numa tabela gerida pelo Unity Catalog

Os exemplos seguintes demonstram como usar o Auto Loader para ingerir dados numa tabela gerida pelo 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'
);

Quando utiliza uma instrução read_files dentro de um pipeline "Lakeflow Spark Declarative Pipelines", as localizações de checkpoint e de esquema são geridas automaticamente.