Pular para o conteúdo principal

Carregar uso de dados COPY INTO com credenciais temporárias

Se o clustering Databricks 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 na nuvem e carregar os arquivos em uma tabela Delta Lake.

Dependendo de como a sua organização gerencia a segurança na nuvem, talvez seja necessário pedir a um administrador da nuvem ou a um usuário avançado que 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

nota

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 e Azure Blob. Os tokens temporários do Azure Blob Storage estão no nível do contêiner, enquanto os tokens ADLS 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 a extensão "s3*”, “3s” e “s3” permissões.
atenção

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 usando credenciais temporárias para fornecer acesso aos dados de origem.

SQL
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.

SQL
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.

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