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:

      
    gcloud  
    config  
     set 
      
    project  
     PROJECT_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.

      bq  
      mk  
       BQ_DATASET 
      
    2. Batch load the data into a new BigQuery table.

      bq  
      load  
       \ 
      --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.

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

      
    gcloud  
    spanner  
    databases  
    ddl  
    update  
     SPANNER_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

Design a Mobile Site
View Site in Mobile | Classic
Share by: