Usar Carregador Automático com o Catálogo do Unity

O Auto Loader pode ingerir dados com segurança de locais externos configurados com o Unity Catalog. Para saber mais sobre como conectar o armazenamento com segurança ao Catálogo do Unity, consulte Conectar-se ao armazenamento de objetos de nuvem usando o Catálogo do Unity. O Carregador Automático depende do fluxo estruturado para processamento incremental. Para obter recomendações e limitações, consulte Usar o Catálogo do Unity com o fluxo estruturado.

Observação

No Databricks Runtime 11.3 LTS e posteriores, você pode usar o Carregador Automático com modos de acesso padrão ou dedicado (anteriores modos de acesso compartilhado e de usuário único).

Por padrão, há suporte ao modo de listagem de diretórios. O modo de notificação de arquivo só tem suporte na computação com modo de acesso dedicado.

Especifique os locais para recursos do Auto Loader no Unity Catalog

O modelo de segurança do Catálogo do Unity considera que todos os locais de armazenamento referenciados em uma carga de trabalho são gerenciados pelo Catálogo do Unity. O Databricks recomenda sempre armazenar informações de ponto de verificação e evolução de esquema em locais de armazenamento gerenciados pelo Unity Catalog. O Catálogo do Unity não permite aninhar arquivos de ponto de verificação ou de inferência e evolução de esquema sob o diretório da tabela.

Ingerir dados do armazenamento em nuvem usando o Catálogo do Unity

Os exemplos a seguir pressupõem que o usuário em execução tenha READ FILES permissões no local externo, privilégios de proprietário nas tabelas de destino e as configurações e concessões a seguir.

Observação

O Azure Data Lake Storage é o único tipo de armazenamento do Azure compatível com o Catálogo do Unity.

Local de armazenamento Permitir
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

Usar o Auto Loader para carregar em uma tabela gerenciada pelo Unity Catalog

Os exemplos a seguir demonstram como usar o Carregador Automático para ingerir dados em uma tabela gerenciada do Catálogo do 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'
);

Quando você usa read_files em uma declaração CREATE STREAMING TABLE dentro de um pipeline do Lakeflow Spark Declarative Pipelines, os locais de ponto de verificação e de esquema são gerenciados automaticamente.