Usando o 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 ao armazenamento de objetos cloud 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.
Observação
No Databricks Runtime 11.3 LTS e superior, você pode utilizar o Auto Loader com modos de acesso de usuário único ou compartilhado.
O modo de listagem de diretórios é suportado pelo site default. O modo de notificação de arquivo só é compatível com um único usuário compute.
Ingestão de dados de locais externos gerenciados pelo 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 recursos do Auto Loader para o 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 |
---|---|
gs://autoloader-source/JSON-data |
LER ARQUIVOS |
gs: //dev-bucket |
READ FILES, WRITE FILES, CREATE TABLE |
Uso do Auto Loader para carregar em uma tabela gerenciada do Unity Catalog
checkpoint_path = "gs://dev-bucket/_checkpoint/dev_table"
(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", checkpoint_path)
.load("gs://autoloader-source/json-data")
.writeStream
.option("checkpointLocation", checkpoint_path)
.trigger(availableNow=True)
.toTable("dev_catalog.dev_database.dev_table"))