Importer un fichier CSV

Cette page explique comment importer un fichier CSV dans une base de données AlloyDB.

La procédure d'importation implique les tâches suivantes:

  1. Importez le fichier CSV dans un bucket Cloud Storage.

  2. Préparer un hôte client pour effectuer l'opération d'importation

  3. Importez le fichier CSV dans la base de données.

  4. Nettoyez les ressources créées pour effectuer la procédure.

Avant de commencer

  • Vous devez disposer du rôle IAM de base "Propriétaire" (roles/owner) ou "Éditeur" (roles/editor) dans le projet Google Cloud que vous utilisez, ou des rôles IAM prédéfinis suivants :
    • Administrateur AlloyDB (roles/alloydb.admin) ou Lecteur AlloyDB (roles/alloydb.viewer)
    • Administrateur de l'espace de stockage (roles/storage.admin)
    • Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1)

Importer le fichier CSV

Pour importer le fichier CSV, créez un bucket Cloud Storage, puis importez-y le fichier CSV.

  1. Créez un bucket de stockage régional pour le stockage standard dans le projet et la région où se trouve votre base de données AlloyDB.

  2. Importez le fichier CSV dans le bucket de stockage que vous avez créé.

Préparer un hôte client

Pour préparer un hôte client à effectuer l'opération d'importation, vous devez créer une VM Compute Engine pouvant se connecter à l'instance principale AlloyDB où se trouve votre base de données, puis installer l'outil psql et la Google Cloud CLI sur cette VM.

  1. Suivez les instructions de la section Connecter un client psql à une instance pour créer une VM Compute Engine avec la connectivité appropriée et l'outil psql installé. Lorsque vous suivez ces instructions, veillez à allouer suffisamment d'espace de stockage local à la VM Compute Engine pour accueillir le fichier CSV que vous importez.

  2. Installez gcloud CLI pour fournir un accès en ligne de commande au fichier CSV dans le bucket Cloud Storage.

Importer le fichier CSV

Pour importer le fichier CSV, vous devez obtenir l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données, puis utiliser l'outil psql pour créer une table contenant les données CSV, puis l'importer.

  1. Obtenez l'adresse IP de l'instance principale AlloyDB où se trouve votre base de données en affichant ses détails.
  2. Connectez-vous en SSH à la VM Compute Engine.

    Console

    1. Dans la console Google Cloud, accédez à la page Instances de VM.

      Accéder à la page Instances de VM

    2. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance que vous avez créée.

      bouton SSH en regard du nom de l'instance.

    gcloud

    Utilisez la commande gcloud compute ssh pour vous connecter à l'instance que vous avez créée.

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Remplacez les éléments suivants :

    • PROJECT_ID: identifiant du projet contenant l'instance.
    • ZONE: nom de la zone dans laquelle se trouve l'instance.
    • VM_NAME : nom de l'instance
  3. Copiez le fichier CSV dans le système de fichiers local de l'hôte client:
    gcloud storage cp gs://BUCKET_NAME/CSV_FILE_NAME .
  4. Importez le fichier CSV :
    1. Exécutez l'outil client psql, puis, à l'invite psql, connectez-vous à la base de données:
      psql -h IP_ADDRESS -U postgres
      \c DB_NAME
      

      Vous êtes invité à saisir le mot de passe de l'utilisateur postgres.

      • IP_ADDRESS : adresse IP de l'instance principale.
      • DB_NAME: nom de la base de données dans laquelle vous souhaitez stocker les données CSV.
    2. Créez une table pour contenir les données CSV:
      CREATE TABLE weather (
        city     varchar(80),
        temp_lo  int,
        temp_hi  int,
        prcp     real,
        date     date
      );

      L'instruction CREATE TABLE ci-dessus est à des fins d'illustration uniquement. Vous créez un tableau dont les colonnes correspondent à vos données CSV.

    3. Importez les données du fichier CSV:
    \copy TABLE_NAME(COLUMN_LIST)
      FROM 'CSV_FILE_NAME'
      DELIMITER ','
      CSV HEADER
    ;
    • TABLE_NAME: nom de la table que vous avez créée à l'étape précédente.
    • (COLUMN_LIST): liste des noms des colonnes de la table dans lesquelles importer les données, séparés par une virgule, dans l'ordre dans lequel les données apparaissent dans le fichier CSV.
    • CSV_FILE_NAME: fichier CSV.
    • HEADER: indique que le fichier CSV contient une ligne d'en-tête à ignorer. Si ce n'est pas le cas, omettez ce paramètre.

    La commande \copy dans psql utilise les mêmes options et arguments que la commande COPY de PostgreSQL pour contrôler l'opération d'importation de données.

Effectuer un nettoyage des ressources

Une fois le fichier CSV importé, vous pouvez supprimer le bucket Cloud Storage et la VM Compute Engine que vous avez utilisée lors de la procédure d'importation.