Ce document explique comment charger une petite quantité de données au format CSV dans Spanner. Vous pouvez charger des échantillons de données avant migrer des données de production pour tester les schémas, les requêtes et les applications.
Avant de commencer
Installez la Google Cloud CLI ou utilisez Cloud Shell, tous les outils nécessaires sont 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 :
-
Exporter des données depuis une table BigQuery:
roles/bigquery.dataViewer
Lecteur de données BigQuery -
Pour exécuter un job d'exportation :
Utilisateur BigQuery (
roles/bigquery.user
) -
Écrivez 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.
-
Exporter des données depuis une table BigQuery:
Charger des exemples de données dans Spanner
Les instructions suivantes sont effectuées à l'aide du ETL inversé BigQuery du workflow et de la Google Cloud CLI.
Définissez un projet par défaut dans la 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 bases de données MySQL afin de convertir vos échantillons de données au format 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éer un schéma Spanner correspondant au schéma importé BQ_TABLE à l'aide de la commande suivante:
gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..."
Pour plus d'informations, consultez la page Mettre à jour le schéma Spanner.
Exporter 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;'