Partilhar via


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

No Databricks Runtime 11.3 LTS e superior, você pode usar o Auto Loader com modos de acesso padrão ou dedicado (anteriormente modos de acesso compartilhado e de usuário ú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.

Ingerir dados de locais externos gerenciados pelo Unity Catalog com Auto Loader

Pode utilizar o Carregador Automático para ingerir dados de qualquer localização externa gerida pelo Catálogo do Unity. Você deve ter READ FILES permissões de acesso sobre o local externo.

Nota

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

Definição de locais para recursos do Auto Loader no 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.

Exemplos

Os exemplos a seguir pressupõem que o usuário em execução tenha privilégios de proprietário nas tabelas de destino e as seguintes configurações e concessões:

Localização de armazenamento Subvenção
abfss://autoloader-source@<storage-account>.dfs.core.windows.net/json-data LER FICHEIROS
abfss://dev-bucket@<storage-account>.dfs.core.windows.net LER FICHEIROS, ESCREVER FICHEIROS CREATE TABLE

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

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"))