Carga datos de muestra

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 realizar una migración de datos de producción para probar esquemas, consultas y aplicaciones.

Antes de comenzar

  1. Instala Google Cloud CLI o usa Cloud Shell, que tiene todas las herramientas necesarias preinstaladas.

  2. 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)
    • Ejecuta un trabajo de exportación: Usuario de BigQuery (roles/bigquery.user)
    • Escribe 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.

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.

  1. Configura un proyecto predeterminado en gcloud CLI con el siguiente comando:

     gcloud config set project PROJECT_ID
  2. Exporta los datos de origen en formato de archivo CSV. Considera usar pg_dump para bases de datos de PostgreSQL o mysqldump de bases de datos MySQL para convertir los datos de muestra en el archivo CSV formato de archivo.

  3. Carga los datos en BigQuery con los siguientes comandos de bq:

    1. Crear un conjunto de datos de BigQuery

      bq mk BQ_DATASET
    2. Cargar 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
  4. Crear un esquema de Spanner que coincida con el importado BQ_TABLE 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.

  5. Exportar datos de BigQuery a Spanner con 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;'
     

¿Qué sigue?