En este documento se explica cómo cargar una pequeña cantidad de datos en formato de archivo CSV en Spanner. Puedes cargar datos de ejemplo antes de migrar los datos de producción para probar esquemas, consultas y aplicaciones.
Antes de empezar
Instala Google Cloud CLI o usa Cloud Shell, que tiene todas las herramientas necesarias preinstaladas.
-
Para obtener los permisos que necesitas para exportar datos de BigQuery a Spanner, pide a tu administrador que te asigne los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Exportar datos de una tabla de BigQuery:
Lector de datos de BigQuery (
roles/bigquery.dataViewer
) -
Ejecuta una tarea de exportación:
Usuario de BigQuery (
roles/bigquery.user
) -
Escribir datos en una tabla de Spanner:
Usuario de las bases de datos de Spanner (
roles/spanner.databaseUser
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Exportar datos de una tabla de BigQuery:
Lector de datos de BigQuery (
Cargar datos de muestra en Spanner
Las siguientes instrucciones se llevan a cabo mediante el flujo de trabajo de ETL inverso de BigQuery y la CLI de Google Cloud.
Define un proyecto predeterminado en gcloud CLI con el siguiente comando:
gcloud config set project PROJECT_ID
Exporta los datos de origen en formato de archivo CSV. Puedes usar
pg_dump
para bases de datos PostgreSQL omysqldump
para bases de datos MySQL con el fin de convertir los datos de muestra al formato de archivo CSV.Carga los datos en BigQuery con los siguientes comandos
bq
:Crea un conjunto de datos de BigQuery.
bq mk BQ_DATASET
Carga los datos por lotes en una tabla de BigQuery.
bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE /path/to/file
También puedes cargar los datos por lotes desde un archivo de Cloud Storage.
bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE gs://BUCKET/FILE
Crea un esquema de Spanner que coincida con el BQ_TABLE importado con el siguiente comando:
gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..."
Para obtener más información, consulta Actualizar el esquema de Spanner.
Para exportar datos de BigQuery a Spanner, usa el siguiente comando:
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;'