Usando o Auto Loader com o Unity Catalog

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 com o Unity Catalog, consulte Conectar-se ao armazenamento de objetos clouds usando o Unity Catalog. O Auto Loader conta com transmissão estruturada para processamento incremental; para recomendações e limitações, consulte Usando 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ório é suportado por default. O modo de notificação de arquivo só é compatível com clusters de usuário único.

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-dados

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