Load sample data

This document provides instructions on how to load a small amount of data in the CSV file format into Spanner. You can load sample data before performing a production data migration to test schemas, queries, and applications.

Before you begin

  1. Install the Google Cloud CLI or use Cloud Shell, which has all the necessary tools pre-installed.

  2. To get the permissions that you need to export BigQuery data to Spanner, ask your administrator to grant you the following IAM roles on your project:

    • Export data from a BigQuery table: BigQuery Data Viewer (roles/bigquery.dataViewer)
    • Run an export job: BigQuery User (roles/bigquery.user)
    • Write data to a Spanner table: Spanner Database User (roles/spanner.databaseUser)

    For more information about granting roles, see Manage access to projects, folders, and organizations.

    You might also be able to get the required permissions through custom roles or other predefined roles.

Load sample data to Spanner

The following instructions are performed using the BigQuery reverse ETL workflow and the Google Cloud CLI.

  1. Set a default project on the gcloud CLI using the following command:

    gcloudconfigsetprojectPROJECT_ID
  2. Export the source data in the CSV file format. Consider using pg_dump for PostgreSQL databases or mysqldump for MySQL databases tools to convert your sample data into the CSV file format.

  3. Load the data into BigQuery by using the following bq commands:

    1. Create a BigQuery dataset.

      bqmkBQ_DATASET
    2. Batch load the data into a new BigQuery table.

      bqload\
      --source_format=CSV\
      --autodetect\
      --allow_quoted_newlines\
      BQ_DATASET.BQ_TABLE/path/to/file

      Alternatively, you can batch load the data from a Cloud Storage file.

      bqload\
      --source_format=CSV\
      --autodetect\
      --allow_quoted_newlines\
      BQ_DATASET.BQ_TABLEgs://BUCKET/FILE
  4. Create a Spanner schema that matches the imported BQ_TABLE by using the following command:

    gcloudspannerdatabasesddlupdateSPANNER_DATABASE\
    --instance=SPANNER_INSTANCE\
    --ddl="CREATE TABLE SPANNER_TABLE ..."

    For more information, see Update Spanner schema.

  5. Export data from BigQuery to Spanner by using the following command:

    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;'
    

What's next

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年11月24日 UTC.