Este documento brinda instrucciones sobre cómo cargar una pequeña cantidad de datos en el formato de archivo CSV a Spanner. Puedes cargar datos de muestra antes de realizar una migración de datos de producción para probar esquemas, consultas y aplicaciones.
Antes de comenzar
Instala Google Cloud CLI o usa Cloud Shell, que que tenga preinstaladas todas las herramientas necesarias.
-
Para obtener los permisos que necesitas para exportar los datos de BigQuery a Spanner, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Exporta datos de una tabla de BigQuery:
Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) -
Ejecutar un trabajo de exportación:
Usuario de BigQuery (
roles/bigquery.user
) -
Escribir datos en una tabla de Spanner:
Usuario de base de datos de Spanner (
roles/spanner.databaseUser
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
-
Exporta datos de una tabla de BigQuery:
Visualizador de datos de BigQuery (
Carga datos de muestra en Spanner
Las siguientes instrucciones se llevan a cabo con el ETL inverso de BigQuery de Terraform y Google Cloud CLI.
Configura 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. Considera usar
pg_dump
para bases de datos de PostgreSQL omysqldump
para herramientas de bases de datos de MySQL para convertir tus datos de muestra al formato de archivo CSV.Carga los datos en BigQuery con los siguientes comandos
bq
:Crear un conjunto de datos de BigQuery
bq mk BQ_DATASET
Carga los datos por lotes en una tabla nueva de BigQuery.
bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE /path/to/file
Como alternativa, 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 Actualiza 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;'