Charger des exemples de données

Ce document explique comment charger une petite quantité de données au format CSV dans Spanner. Vous pouvez charger des exemples de données avant d'effectuer une migration de données de production pour tester les schémas, les requêtes et les applications.

Avant de commencer

  1. Installez Google Cloud CLI ou utilisez Cloud Shell, qui est préinstallé avec tous les outils nécessaires.

  2. Pour obtenir les autorisations nécessaires à l'exportation des données BigQuery vers Spanner, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

    • Pour exporter des données depuis une table BigQuery : Lecteur de données BigQuery (roles/bigquery.dataViewer)
    • Pour exécuter un job d'exportation : Utilisateur BigQuery (roles/bigquery.user)
    • Écrire des données dans une table Spanner : Utilisateur de base de données Spanner (roles/spanner.databaseUser)

    Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Charger des exemples de données dans Spanner

Les instructions suivantes sont effectuées à l'aide du workflow ETL inverse BigQuery et de la Google Cloud CLI.

  1. Définissez un projet par défaut dans gcloud CLI à l'aide de la commande suivante:

     gcloud config set project PROJECT_ID
  2. Exportez les données sources au format de fichier CSV. Envisagez d'utiliser pg_dump pour les bases de données PostgreSQL ou mysqldump pour les outils de base de données MySQL afin de convertir vos exemples de données au format de fichier CSV.

  3. Chargez les données dans BigQuery à l'aide des commandes bq suivantes:

    1. Créez un ensemble de données BigQuery.

      bq mk BQ_DATASET
    2. Chargez les données par lot dans une nouvelle table BigQuery.

      bq load \
      --source_format=CSV \
      --autodetect \
      --allow_quoted_newlines \
      BQ_DATASET.BQ_TABLE /path/to/file

      Vous pouvez également charger les données par lot à partir d'un fichier Cloud Storage.

      bq load \
      --source_format=CSV \
      --autodetect \
      --allow_quoted_newlines \
      BQ_DATASET.BQ_TABLE gs://BUCKET/FILE
  4. Créez un schéma Spanner correspondant à l'BQ_TABLE importée à l'aide de la commande suivante:

     gcloud spanner databases ddl update SPANNER_DATABASE \
     --instance=SPANNER_INSTANCE \
     --ddl="CREATE TABLE SPANNER_TABLE ..."

    Pour en savoir plus, consultez la section Mettre à jour le schéma Spanner.

  5. Exportez des données de BigQuery vers Spanner à l'aide de la commande suivante:

       bq --use_legacy_sql=false 'EXPORT DATA OPTIONS(
         uri="https://spanner.googleapis.com/projects/PROJECT_ID/instances/SPANNER_INSTANCE/databases/SPANNER_DATABASE"
         format='CLOUD_SPANNER'
         spanner_options="""{ "table": "SPANNER_TABLE" }"""
         ) AS
         SELECT *
         FROM BQ_DATASET.BQ_TABLE;'
     

Étape suivante