Carregar uso de dados COPY INTO com credenciais temporárias

Se o seu Databricks cluster ou SQL warehouse não tiver permissões para ler os arquivos de origem, o senhor poderá usar credenciais temporárias para acessar dados do armazenamento externo de objetos cloud e carregar arquivos em uma tabela Delta Lake.

Dependendo de como a sua organização gerencia a segurança do cloud, talvez seja necessário pedir a um administrador ou usuário avançado do cloud que lhe forneça as credenciais. Para obter mais informações, consulte Gerar credenciais temporárias para ingestão.

Especificar credenciais temporárias ou opções de criptografia para acessar dados

Observação

As opções de credenciais e criptografia estão disponíveis em Databricks Runtime 10.4 LTS e acima.

COPY INTO suporta:

  • Azure SAS tokens para ler dados do armazenamento ADLS Gen2 e Azure Blob. Os tokens temporários do Azure Blob Storage estão no nível do contêiner, enquanto os tokens ADLS Gen2 podem estar no nível do diretório, além do nível do contêiner. A Databricks recomenda o uso de tokens SAS no nível do diretório quando possível. Os tokens SAS devem ter as permissões "Read" (Leitura), "List" (Lista) e "Permissions" (Permissões).

  • AWS STS tokens para ler dados de AWS S3. Seus tokens devem ter as permissões "s3:GetObject*", "s3:ListBucket" e "s3:GetBucketLocation".

Aviso

Para evitar o uso indevido ou a exposição de credenciais temporárias, a Databricks recomenda que o senhor defina horizontes de expiração que sejam longos o suficiente para concluir a tarefa.

COPY INTO suporta o carregamento de dados criptografados do AWS S3. Para carregar dados criptografados, forneça o tipo de criptografia e o endereço key para descriptografar os dados.

Carregar credenciais temporárias de uso de dados

O exemplo a seguir carrega dados do S3 e do ADLS Gen2 usando credenciais temporárias para fornecer acesso aos dados de origem.

COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
  CREDENTIAL (AWS_ACCESS_KEY = '...', AWS_SECRET_KEY = '...', AWS_SESSION_TOKEN = '...')
)
FILEFORMAT = JSON

COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData' WITH (
  CREDENTIAL (AZURE_SAS_TOKEN = '...')
)
FILEFORMAT = JSON

Carregar dados criptografados

Usando a chave de criptografia fornecida pelo cliente, o exemplo a seguir carrega dados do site S3.

COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
  ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON

Carregar JSON credenciais de uso de dados para a origem e o destino

O exemplo a seguir carrega dados JSON de um arquivo no AWS S3 na tabela Delta externa chamada my_json_data. Essa tabela deve ser criada antes que COPY INTO possa ser executado. O comando usa uma credencial existente para gravar na tabela Delta externa e outra para ler no local S3.

COPY INTO my_json_data WITH (CREDENTIAL target_credential)
  FROM 's3://my-bucket/jsonData' WITH (CREDENTIAL source_credential)
  FILEFORMAT = JSON
  FILES = ('f.json')