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
Installez Google Cloud CLI ou utilisez Cloud Shell, qui est préinstallé avec tous les outils nécessaires.
-
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.
-
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 effectuées à l'aide du workflow ETL inverse BigQuery 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 outils de base 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 à 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.
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;'