Charger des données à l’aide de COPY INTO avec un principal de service
Cet article explique comment utiliser la commande COPY INTO
pour charger des données à partir d’un conteneur Azure Data Lake Storage Gen2 (ADLS Gen2) dans votre compte Azure vers une table de Databricks SQL.
Les étapes de cet article supposent que votre administrateur a configuré un entrepôt SQL pour utiliser un principal de service Azure Databricks afin que vous puissiez accéder à vos fichiers sources dans ADLS Gen2. Si votre administrateur a configuré un emplacement externe Unity Catalog avec des informations d’identification du stockage, consultez plutôt Charger des données à l’aide de COPY INTO avec des volumes ou emplacements externes Unity Catalog. Si votre administrateur vous a donné des informations d’identification temporaires (un jeton SAS Blob), suivez plutôt les étapes décrites dans Charger des données à l’aide de COPY INTO avec des informations d’identification temporaires.
Databricks recommande d’utiliser la commande COPY INTO pour le chargement de données incrémentiel et en bloc avec Databricks SQL.
Notes
COPY INTO
fonctionne bien pour les sources de données qui contiennent des milliers de fichiers. Databricks vous recommande d’utiliser Auto Loader pour charger des millions de fichiers, ce qui n’est pas pris en charge dans Databricks SQL.
Avant de commencer
Avant de charger des données dans Azure Databricks, vérifiez que vous disposez des éléments suivants :
- Un accès aux données dans ADLS Gen2. Votre administrateur doit d’abord effectuer les étapes décrites dans Configurer l’accès aux données pour l’ingestion afin que votre entrepôt Databricks SQL puisse lire vos fichiers sources.
- Entrepôt Databricks SQL.
- L’autorisation Peut gérer dans l’entrepôt SQL.
- Le chemin d’accès à vos données dans un conteneur ADLS Gen2.
- Bonne connaissance de l’interface utilisateur de Databricks SQL.
Étape 1 : Confirmer l’accès aux données dans le stockage cloud
Procédez comme suit pour vérifier que vous avez accès aux données justes dans le stockage d’objets cloud :
Dans la barre latérale, cliquez sur Créer > Requête.
Sélectionnez un entrepôt SQL dans la barre de menus de l’éditeur SQL.
Dans l’éditeur SQL, collez le code suivant :
select * from csv.<path>
Remplacez
<path>
par le chemin du conteneur ADLS Gen2 que vous avez reçu de votre administrateur. Par exempleabfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
.Cliquez sur Exécuter.
Étape 2 : Créer une table
Cette étape explique comment créer une table dans votre espace de travail Azure Databricks pour contenir les données entrantes.
Dans l’éditeur SQL, collez le code suivant :
CREATE TABLE <catalog_name>.<schema_name>.<table_name> ( tpep_pickup_datetime TIMESTAMP, tpep_dropoff_datetime TIMESTAMP, trip_distance DOUBLE, fare_amount DOUBLE, pickup_zip INT, dropoff_zip INT );
Cliquez sur Exécuter.
Étape 3 : Charger des données dans la table à partir du stockage cloud
Cette étape explique comment charger des données dans la table de votre espace de travail Azure Databricks à partir d’un conteneur ADLS Gen2.
Dans la barre latérale, cliquez sur Créer > Requête.
Dans la barre de menus de l’éditeur SQL, sélectionnez un entrepôt SQL et vérifiez que l’entrepôt SQL est en cours d’exécution.
Dans l’éditeur SQL, collez le code suivant. Dans ce code, remplacez :
<container>
avec le nom de votre conteneur ADLS Gen2 dans votre compte de stockage.<storage-account>
par le nom de votre compte de stockage ADLS Gen2.<folder>
avec le nom du dossier qui contient vos données.<blob-sas-token>
avec la valeur du jeton SAS Blob que vous avez reçu de votre administrateur.
COPY INTO <catalog-name>.<schema-name>.<table-name> FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>' FILEFORMAT = CSV FORMAT_OPTIONS ( 'header' = 'true', 'inferSchema' = 'true' ); SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
Notes
FORMAT_OPTIONS
diffère deFILEFORMAT
. Dans ce cas, l’optionheader
indique à Azure Databricks de traiter la première ligne du fichier CSV en tant qu’en-tête, et les optionsinferSchema
indiquent à Azure Databricks de déterminer automatiquement le type de données de chaque champ dans le fichier CSV.Cliquez sur Exécuter.
Notes
Si vous cliquez à nouveau sur Exécuter, aucune nouvelle donnée n’est chargée dans la table. Cela est dû au fait que la commande
COPY INTO
traite uniquement ce qu’elle considère comme de nouvelles données.
Nettoyer
Vous pouvez nettoyer les ressources associées de votre espace de travail si vous ne souhaitez plus les conserver.
Supprimer les tables
Dans la barre latérale, cliquez sur Créer > Requête.
Sélectionnez un entrepôt SQL et vérifiez que l’entrepôt SQL est en cours d’exécution.
Collez le code suivant :
DROP TABLE <catalog-name>.<schema-name>.<table-name>;
Cliquez sur Exécuter.
Survolez l’onglet de cette requête, puis cliquez sur l’icône X.
Supprimer les requêtes dans l’éditeur SQL
- Dans la barre latérale, cliquez sur Éditeur SQL.
- Dans la barre de menus de l’éditeur SQL, pointez sur l’onglet pour chaque requête que vous avez créée pour ce tutoriel, puis cliquez sur l’icône X.
Ressources supplémentaires
- Article de référence pour COPY INTO