Carregar uso de dados COPY INTO com credenciais temporárias

Se seus clusters Databricks ou SQL warehouse não tiverem permissões para ler seus arquivos de origem, você 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 sua organização gerencia sua segurança cloud , pode ser necessário pedir a um administrador cloud ou usuário avançado para fornecer 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 credencial e criptografia estão disponíveis no Databricks Runtime 10.2e acima.

COPY INTO apoia:

  • tokensSAS do Azure para ler dados de ADLS Gen2 e Azure Blob Storage. Os tokens temporários do Armazenamento Azure Blob 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. Databricks recomenda usar tokens SAS de nível de diretório quando possível. Os tokens SAS devem ter as permissões “Read”, “List” e “Permissions”.

  • tokensAWS STS para ler dados do 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, o Databricks recomenda que você defina horizontes de expiração longos o suficiente para concluir a tarefa.

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

Carregar credenciais temporárias de uso de dados

O exemplo a seguir carrega dados de S3 e 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 key de criptografia fornecida pelo cliente, o exemplo a seguir carrega dados do S3.

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

Carregar credenciais de uso de dados JSON para origem e destino

O exemplo a seguir carrega dados JSON de um arquivo no AWS S3 na tabela Delta externa chamada my_json_data. Esta 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 do S3.

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