Carregue dados usando COPY INTO com credenciais temporárias
Se o cluster do Azure Databricks ou o SQL warehouse não tiver permissões para ler seus arquivos de origem, você poderá usar credenciais temporárias para acessar dados do armazenamento externo de objetos na nuvem e carregar arquivos em uma tabela Delta Lake.
Dependendo de como sua organização gerencia sua segurança na nuvem, talvez seja necessário pedir a um administrador de nuvem ou usuário avançado para fornecer credenciais. Para obter mais informações, consulte Gerar credenciais temporárias para ingestão.
Especificando credenciais temporárias ou opções de criptografia para acessar dados
Nota
As opções de credencial e criptografia estão disponíveis no Databricks Runtime 10.4 LTS e superior.
COPY INTO
Apoios:
- Tokens SAS do Azure para ler dados do ADLS Gen2 e do Armazenamento de Blobs do Azure. Os tokens temporários do Armazenamento de Blobs do Azure estão no nível do contêiner, enquanto os tokens do ADLS Gen2 podem estar no nível do diretório, além do nível do contêiner. O Databricks recomenda o uso de tokens SAS no nível de diretório quando possível. O token SAS deve ter as permissões "Ler", "Listar" e "Permissões".
- Tokens do AWS 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 que sejam longos o suficiente para concluir a tarefa.
COPY INTO
oferece suporte ao carregamento de dados criptografados do AWS S3. Para carregar dados encriptados, forneça o tipo de encriptação e a chave para desencriptar os dados.
Carregar dados usando credenciais temporárias
O exemplo a seguir carrega dados do 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 chaves de criptografia fornecidas 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 dados JSON usando credenciais para origem e destino
O exemplo a seguir carrega dados JSON de um arquivo no Azure na tabela Delta externa chamada my_json_data
.
Esta tabela deve ser criada antes COPY INTO
de poder ser executada.
O comando usa uma credencial existente para gravar na tabela Delta externa e outra para ler a partir do local ABFSS.
COPY INTO my_json_data WITH (CREDENTIAL target_credential)
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path' WITH (CREDENTIAL source_credential)
FILEFORMAT = JSON
FILES = ('f.json')