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
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.
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.
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')