Charger des données à l'aide de COPY INTO avec un profil d'instance
Cet article décrit comment utiliser la commande COPY INTO pour charger des données d’un compartiment Amazon S3 de votre compte AWS dans une table de Databricks SQL.
Les étapes de cet article supposent que votre administrateur a configuré un SQL Warehouse pour utiliser un profil d'instance AWS afin que vous puissiez accéder à vos fichiers source dans S3. Si votre administrateur a configuré un emplacement externe Unity Catalog avec des informations d'identification de stockage, consultez plutôt Charger des données à l'aide de COPY INTO avec des volumes ou des emplacements externes Unity Catalog. Si votre administrateur vous a donné des informations d'identification temporaires (un ID de clé d'accès AWS, une clé secrète et un jeton de session), consultez plutôt 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 masse avec Databricks SQL.
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 Databricks, assurez-vous d'avoir les éléments suivants :
- Accès aux données dans S3. Votre administrateur doit d'abord suivre les étapes de Configurer l'accès aux données pour l'ingestion afin que votre Databricks SQL warehouse puisse lire vos fichiers source.
- Un warehouse Databricks SQL qui utilise le profil d'instance que votre administrateur a créé.
- L'autorisation Peut gérer sur le SQL Warehouse.
- L’URI S3 entièrement qualifié.
- Familiarité avec l'interface utilisateur de Databricks SQL.
Étape 1 : confirmer l'accès aux données dans le stockage cloud
Pour confirmer que vous avez accès aux données correctes dans le stockage d'objets cloud, effectuez les opérations suivantes :
-
Dans la barre latérale, cliquez sur Créer > Requête .
-
Dans la barre de menus de l'éditeur SQL, sélectionnez un SQL Warehouse.
-
Dans l'éditeur SQL, collez le code suivant :
select * from csv.<path>Veuillez remplacer
<path>par l'URI S3 que vous avez reçu de votre administrateur. Par exemple,s3://<bucket>/<folder>/. -
Cliquez sur Exécuter .
Étape 2 : Créer une table
Cette étape décrit comment créer une table dans votre Workspace Databricks pour contenir les données entrantes.
-
Dans l'éditeur SQL, collez le code suivant :
SQLCREATE 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 les données du stockage cloud dans la table
Cette étape décrit comment charger les données depuis un compartiment S3 dans la table que vous avez créée dans votre Workspace Databricks.
-
Dans la barre latérale, cliquez sur Créer > Requête .
-
Dans la barre de menus de l'éditeur SQL, sélectionnez un SQL Warehouse et assurez-vous qu'il est en cours d'exécution.
-
Dans l'éditeur SQL, collez le code suivant. Dans ce code, remplacez :
<s3-bucket>avec le nom de votre compartiment S3.<folder>avec le nom du dossier dans votre compartiment S3.
SQLCOPY INTO <catalog-name>.<schema-name>.<table-name>
FROM 's3://<s3-bucket>/<folder>/'
FILEFORMAT = CSV
FORMAT_OPTIONS (
'header' = 'true',
'inferSchema' = 'true'
)
COPY_OPTIONS (
'mergeSchema' = 'true'
);
SELECT * FROM <catalog_name>.<schema_name>.<table_name>;
FORMAT_OPTIONS diffère selon FILEFORMAT. Dans ce cas, l'option header indique à Databricks de traiter la première ligne du fichier CSV comme un en-tête, et l'option inferSchema indique à Databricks de déterminer automatiquement le type de données de chaque champ du fichier CSV.
- Cliquez sur Exécuter .
Si vous cliquez à nouveau sur **Exécuter**, aucune nouvelle donnée n'est chargée dans la table. Ceci est dû au fait que la commande COPY INTO ne traite que ce qu'elle considère comme de nouvelles données.
Nettoyer
Vous pouvez nettoyer les Ressources associées dans votre Workspace si vous ne souhaitez plus les conserver.
Supprimer les tables
-
Dans la barre latérale, cliquez sur Créer > Requête .
-
Sélectionnez un SQL Warehouse et assurez-vous que le SQL Warehouse est en cours d'exécution.
-
Collez le code suivant :
SQLDROP TABLE <catalog-name>.<schema-name>.<table-name>; -
Cliquez sur Exécuter .
-
Passez la souris sur le tab pour cette query, 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, passez la souris sur le tab de chaque query que vous avez créée pour ce didacticiel, puis cliquez sur l'icône X .
Ressources supplémentaires
- L'article de référence sur COPY INTO