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 o armazenamento de forma segura com Unity Catalog, consulte Conectar-se ao armazenamento de objetos na nuvem e ao serviço usando 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 acima, o senhor pode usar o Auto Loader com os modos de acesso padrão ou dedicado (anteriormente 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.

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

Você pode usar o Auto Loader para ingerir dados de qualquer local externo gerenciado pelo Unity Catalog. Você deve ter READ FILES permissões no local externo.

Especificando locais para Auto Loader recurso para 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.

Exemplos

Os exemplos a seguir pressupõem que o usuário executor tenha 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

LER ARQUIVOS

s3://dev-bucket

READ FILES, WRITE FILES, CREATE TABLE

Usando Auto Loader para carregar em uma tabela gerenciar 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"))