Importer des données dans Cloud SQL

Pour connaître les bonnes pratiques en matière d'importation de données, consultez la page Bonnes pratiques pour l'importation et l'exportation de données.

Pour importer des données depuis Cloud Storage, le compte de service de l'instance doit disposer du rôle Cloud IAM legacyBucketReader sur le projet. Pour plus d'informations, consultez la page Cloud Identity and Access Management pour Cloud Storage.

Importer des fichiers de vidage SQL dans Cloud SQL

Avant de commencer

  • Les fichiers de vidage SQL doivent avoir été créés avec les bons paramètres.

    Pour obtenir de l'aide sur la création de fichiers de vidage SQL à importer dans Cloud SQL, consultez la page Exporter des données.

  • La base de données dans laquelle vous procédez à l'importation doit déjà exister sur votre instance Cloud SQL et doit être vide. Vous ne pouvez pas écraser les données existantes.

    Pour obtenir de l'aide concernant la création d'une base de données, consultez la page Créer une base de données.

Importer un fichier de vidage SQL

Pour importer un fichier de vidage SQL dans une instance Cloud SQL :

Console

    Créez un fichier de vidage SQL en suivant les instructions de la section Exporter des données pour vous assurer que votre fichier de vidage peut être utilisé par Cloud SQL.

  1. Créez un bucket Cloud Storage, si ce n'est pas déjà fait.

    Pour obtenir de l'aide concernant la création d'un bucket, consultez la page Créer des buckets de stockage.

  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer un objet.

  3. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  4. Sélectionnez l'instance pour ouvrir la page Détails de l'instance correspondante.
  5. Cliquez sur Importer dans la barre de boutons.
  6. Saisissez le chemin d'accès au bucket et au fichier de vidage SQL que vous venez d'importer, ou accédez-y en cliquant sur Parcourir. Effectuez un double-clic sur le nom du bucket, puis sélectionnez le fichier et cliquez sur Sélectionner.

    Vous pouvez utiliser un fichier compressé (.gz) ou non compressé (.sql).

  7. Pour le paramètre Format, sélectionnez SQL.
  8. Sélectionnez la base de données dans laquelle vous souhaitez importer les données.

    Cloud SQL exécute alors l'instruction USE DATABASE (Utiliser la base de données) avant l'importation.

  9. Si vous souhaitez spécifier un utilisateur PostgreSQL pour effectuer l'importation, sélectionnez-le.

    Si votre fichier d'importation contient des instructions devant être exécutées par un utilisateur PostgreSQL spécifique, utilisez ce champ pour le spécifier.

  10. Cliquez sur Importer pour démarrer l'importation.

gcloud

    Créez un fichier de vidage SQL en suivant les instructions de la section Exporter des données pour vous assurer que votre fichier de vidage peut être utilisé par Cloud SQL.

  1. Créez un bucket Cloud Storage, si ce n'est pas déjà fait.

    Pour obtenir de l'aide concernant la création d'un bucket, consultez la page Créer des buckets de stockage.

  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer un objet.

  3. Décrivez l'instance dans laquelle vous réalisez l'importation :
        gcloud sql instances describe [INSTANCE_NAME]
        
  4. Copiez le champ "serviceAccountEmailAddress".
  5. Utilisez gsutil iam pour accorder les rôles Cloud IAM legacyBucketWriter et objectViewer au compte de service du bucket. Pour obtenir de l'aide sur la définition des autorisations Cloud IAM, consultez la page Utiliser des autorisations Cloud IAM.
  6. Importez la base de données :
        gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                                    --database=[DATABASE_NAME]
        

    Pour plus d'informations sur l'utilisation de la commande import sql, consultez la page de référence de la commande sql import sql.

    Si la commande affiche une erreur de type "ERROR_RDBMS", vérifiez les autorisations. Cette erreur est souvent liée à des problèmes d'autorisations.

  7. Si vous n'avez pas besoin de conserver les autorisations Cloud IAM que vous avez définies précédemment, supprimez-les en utilisant gsutil iam.

REST

    Créez un fichier de vidage SQL en suivant les instructions de la section Exporter des données pour vous assurer que votre fichier de vidage peut être utilisé par Cloud SQL.

  1. Créez un bucket Cloud Storage, si ce n'est pas déjà fait.

    Pour obtenir de l'aide concernant la création d'un bucket, consultez la page Créer des buckets de stockage.

  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer un objet.

  3. Fournissez à votre instance les rôles Cloud IAM legacyBucketWriter et objectViewer pour votre bucket. Pour obtenir de l'aide sur la définition des autorisations Cloud IAM, consultez la page Utiliser des autorisations Cloud IAM.
  4. Importez le fichier de vidage :

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-id : ID de l'instance
    • bucket_name : nom du bucket Cloud Storage
    • path_to_dump_file : chemin d'accès au fichier de vidage SQL
    • database_name : nom d'une base de données dans l'instance Cloud SQL

    Méthode HTTP et URL :

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corps JSON de la requête :

        {
         "importContext":
           {
              "fileType": "SQL",
              "uri": "gs://bucket_name/path_to_dump_file",
              "database": "database_name"
            }
        }
    
        

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Pour utiliser un autre utilisateur pour l'importation, spécifiez la propriété importContext.importUser.

    Pour obtenir la liste complète des paramètres de cette requête, consultez la page instances:import.
  5. Si vous n'avez pas besoin de conserver les autorisations Cloud IAM que vous avez définies précédemment, supprimez-les dès maintenant.

Importer des fichiers CSV dans Cloud SQL

Avant de commencer

  • La base de données et la table dans lesquelles vous effectuez l'importation doivent déjà exister sur l'instance Cloud SQL. Pour obtenir de l'aide concernant la création d'une base de données, consultez la page Créer une base de données. Pour créer une table, exécutez l'instruction SQL CREATE TABLE dans le client psql.

  • Votre fichier CSV doit être conforme aux exigences relatives au format de fichier CSV décrites ci-dessous.

Exigences relatives au format de fichier CSV

Les fichiers CSV doivent comporter une ligne par rangée de données ainsi que des champs séparés par une virgule.

Pour obtenir des instructions sur l'exportation dans un fichier CSV formaté pour Cloud SQL, consultez la section Exporter des données dans un fichier CSV.

Importer le fichier CSV

Pour importer des données vers une instance Cloud SQL à l'aide d'un fichier CSV :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance pour ouvrir la page "Détails de l'instance" correspondante.
  3. Cliquez sur Importer dans la barre de boutons.
  4. Choisissez le fichier CSV que vous avez transféré pour l'importer dans votre instance Cloud SQL.
  5. Sous Format, sélectionnez CSV.
  6. Spécifiez la base de données et la table de l'instance Cloud SQL dans lesquelles vous souhaitez importer le fichier CSV.
  7. Vous pouvez éventuellement spécifier un utilisateur pour l'importation.
  8. Cliquez sur Importer pour démarrer l'importation.

gcloud

  1. Créez un bucket pour l'importation :

        gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
        

    Bien que cette étape soit facultative, nous vous recommandons de la respecter pour éviter de donner accès à d'autres données.

  2. Importez le fichier CSV dans le bucket.
  3. Décrivez l'instance à partir de laquelle vous souhaitez exporter :
        gcloud sql instances describe [INSTANCE_NAME]
        
  4. Copiez le champ "serviceAccountEmailAddress".
  5. Utilisez gsutil iam pour accorder les rôles Cloud IAM legacyBucketWriter et objectViewer au compte de service du bucket. Pour obtenir de l'aide sur la définition des autorisations Cloud IAM, consultez la page Utiliser des autorisations Cloud IAM.
  6. Importez le fichier :
        gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                                    --database=[DATABASE_NAME] --table=[TABLE_NAME]
        

    Pour plus d'informations sur l'utilisation de la commande import csv, consultez la page de référence de la commande sql import csv.

  7. Si vous n'avez pas besoin de conserver les autorisations Cloud IAM que vous avez définies précédemment, supprimez-les en utilisant gsutil iam.

REST

  1. Créez un bucket Cloud Storage, si ce n'est pas déjà fait.

    Pour obtenir de l'aide concernant la création d'un bucket, consultez la page Créer des buckets de stockage.

  2. Importez le fichier dans le bucket.

    Pour obtenir de l'aide concernant l'importation de fichiers dans des buckets, consultez la page Importer un objet.

  3. Fournissez à votre instance les rôles Cloud IAM legacyBucketWriter et objectViewer pour votre bucket. Pour obtenir de l'aide sur la définition des autorisations Cloud IAM, consultez la page Utiliser des autorisations Cloud IAM.
  4. Importez le fichier :

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-id : ID de l'instance
    • bucket_name : nom du bucket Cloud Storage
    • path_to_csv_file : chemin d'accès au fichier CSV
    • database_name : nom d'une base de données dans l'instance Cloud SQL
    • table_name : nom de la table de base de données

    Méthode HTTP et URL :

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import

    Corps JSON de la requête :

        {
         "importContext":
           {
              "fileType": "CSV",
              "uri": "gs://bucket_name/path_to_csv_file",
              "database": "database_name"
              "csvImportOptions":
               {
                 "table": "table_name"
               }
           }
        }
    
        

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Pour utiliser un autre utilisateur pour l'importation, spécifiez la propriété importContext.importUser.

    Pour obtenir la liste complète des paramètres de cette requête, consultez la page instances:import.
  5. Si vous n'avez pas besoin de conserver les autorisations Cloud IAM que vous avez définies précédemment, supprimez-les.

Si vous obtenez une erreur telle que ERROR_RDBMS, vérifiez que la table existe bien. Si elle existe, vérifiez que vous disposez des autorisations appropriées sur le bucket. Pour plus d'informations sur la configuration du contrôle des accès dans Cloud Storage, consultez la page Créer et gérer des listes de contrôle d'accès.

Pour découvrir comment est formée la requête sous-jacente de l'API REST pour cette tâche, consultez la page sur la méthode instances:import dans APIs Explorer.

Étape suivante