Charger des données à l’aide de COPY INTO avec des informations d’identification temporaires
Si votre cluster Azure Databricks ou votre entrepôt SQL ne dispose pas des autorisations nécessaires pour lire vos fichiers sources, vous pouvez utiliser des informations d'identification temporaires pour accéder aux données du stockage d'objets cloud externe et charger des fichiers dans une table Delta Lake.
Selon la façon dont votre organisation gère votre sécurité du cloud, il se peut que vous deviez demander à un administrateur cloud ou à un utilisateur avancé de vous fournir des informations d’identification. Pour plus d’informations, consultez Générer des informations d’identification temporaires pour l’ingestion.
Spécification des informations d’identification temporaires ou des options de chiffrement pour accéder aux données
Remarque
Les options d’informations d’identification et de chiffrement sont disponibles dans Databricks Runtime 10.4 LTS et versions ultérieures.
COPY INTO
prend en charge :
- Les jetons SAP Azure permettent de lire les données d'ADLS Gen2 et de Stockage Blob Azure. Les jetons temporaires Stockage Blob Azure se trouvent au niveau du conteneur, tandis que les jetons ADLS Gen2 peuvent apparaître au niveau du répertoire, en plus du niveau du conteneur. Dans la mesure du possible, Databricks recommande d’utiliser les jetons SAP au niveau du répertoire. Le jeton SAP doit disposer d’autorisations « Read », « List » et « Permissions ».
- Les jetons AWS STS permettent de lire les données à partir d’AWS S3. Vos jetons doivent avoir les autorisations « s3:GetObject* », « s3:ListBucket » et « s3:GetBucketLocation ».
Avertissement
Pour éviter une utilisation incorrecte ou une exposition des informations d’identification temporaires, Databricks vous recommande de définir des horizons d’expiration suffisamment longs pour terminer la tâche.
COPY INTO
prend en charge le chargement de données chiffrées à partir d’AWS S3. Pour charger des données chiffrées, indiquez le type de chiffrement et la clé pour déchiffrer les données.
Charger des données à l’aide d’informations d’identification temporaires
L’exemple suivant charge des données à partir de S3 et d’ADLS Gen2 à l’aide d’informations d’identification temporaires afin de fournir l’accès aux données sources.
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
Charger des données chiffrées
À l’aide de clés de chiffrement fournies par le client, l’exemple suivant charge des données à partir de S3.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON
Charger des données JSON en utilisant des informations d'identification pour la source et la cible
L'exemple suivant charge des données JSON d’un fichier sur Azure dans la table Delta externe appelée my_json_data
.
Cette table doit être créée avant de pouvoir exécuter COPY INTO
.
La commande utilise des informations d’identification existantes pour écrire dans la table Delta externe et d’autres informations pour lire à partir de l’emplacement ABFS.
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')