Ce document explique comment charger une petite quantité de données au format de fichier CSV dans Spanner. Vous pouvez charger des exemples de données avant de migrer des données de production pour tester les schémas, les requêtes et les applications.
Avant de commencer
Installez Google Cloud CLI ou utilisez Cloud Shell, qui contient tous les outils nécessaires préinstallés.
-
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 Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
Pour exporter des données depuis une table BigQuery : Lecteur de données BigQuery (
Charger des exemples de données dans Spanner
Les instructions suivantes sont exécutées à l'aide du workflow BigQuery Reverse ETL et de la Google Cloud CLI.
Définissez un projet par défaut dans gcloud CLI à l'aide de la commande suivante :
gcloud config set project PROJECT_ID
Exportez les données sources au format de fichier CSV. Envisagez d'utiliser
pg_dump
pour les bases de données PostgreSQL oumysqldump
pour les bases de données MySQL afin de convertir vos exemples de données au format de fichier CSV.Chargez les données dans BigQuery à l'aide des commandes
bq
suivantes :Créez un ensemble de données BigQuery.
bq mk BQ_DATASET
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
Créez un schéma Spanner correspondant au BQ_TABLE importé à 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 Mettre à jour le schéma Spanner.
Exportez les 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;'