Partager via


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 :

  1. Dans la barre latérale, cliquez sur Créer > Requête.

  2. Sélectionnez un entrepôt SQL dans la barre de menus de l’éditeur SQL.

  3. 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 exemple abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. 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.

  1. 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
    );
    
  2. 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.

  1. Dans la barre latérale, cliquez sur Créer > Requête.

  2. 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.

  3. 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 de FILEFORMAT. Dans ce cas, l’option header indique à Azure Databricks de traiter la première ligne du fichier CSV en tant qu’en-tête, et les options inferSchema indiquent à Azure Databricks de déterminer automatiquement le type de données de chaque champ dans le fichier CSV.

  4. 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

  1. Dans la barre latérale, cliquez sur Créer > Requête.

  2. Sélectionnez un entrepôt SQL et vérifiez que l’entrepôt SQL est en cours d’exécution.

  3. Collez le code suivant :

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Cliquez sur Exécuter.

  5. Survolez l’onglet de cette requête, puis cliquez sur l’icône X.

Supprimer les requêtes dans l’éditeur SQL

  1. Dans la barre latérale, cliquez sur Éditeur SQL.
  2. 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