Pular para o conteúdo principal

Uso do Auto Loader com o Unity Catalog

O Auto Loader pode ingerir com segurança dados de locais externos configurados com o Unity Catalog. Para saber mais sobre como conectar com segurança o armazenamento com o Unity Catalog, consulte Conectar ao armazenamento de objetos na nuvem usando o Unity Catalog. Auto Loader depende da transmissão estruturada para processamento incremental; para obter recomendações e limitações, consulte Uso do site Unity Catalog com transmissão estruturada.

nota

No Databricks Runtime 11.3 LTS e versões superiores, você pode usar Auto Loader com os modos de acesso padrão ou dedicado (anteriormente conhecidos como modos de acesso compartilhado e de usuário único).

O modo de listagem de diretórios é suportado pelo site default. O modo de notificação de arquivo só é compatível com o site compute com modo de acesso dedicado.

Especifique os locais para o recurso Auto Loader no Unity Catalog .

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. Databricks recomenda sempre armazenar informações de ponto de verificação e evolução do esquema em locais de armazenamento gerenciados pelo Unity Catalog. Unity Catalog não permite aninhar arquivos de ponto de verificação ou inferência de esquema e evolução no diretório da tabela.

Ingerir dados do armazenamento cloud usando Unity Catalog

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

Localização de armazenamento

Conceder

s3://autoloader-source/json-data

READ FILES

s3://dev-bucket

READ FILES, WRITE FILES, CREATE TABLE

Use Auto Loader para carregar em um Unity Catalog ger tabela

Os exemplos a seguir demonstram como usar Auto Loader para inserir dados em uma tabela de gerenciamento Unity Catalog .

Python
checkpoint_path = "s3://dev-bucket/_checkpoint/dev_table"

(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load("s3://autoloader-source/json-data")
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(availableNow=True)
.toTable("dev_catalog.dev_database.dev_table"))