本文档介绍了如何将少量 CSV 文件格式的数据加载到 Spanner 中。您可以在执行生产数据迁移之前加载示例数据,以测试架构、查询和应用。
准备工作
- 安装 Google Cloud CLI 或使用 Cloud Shell(其中预安装了所有必需的工具)。 
- 
  
  
  
  
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  如需获得将 BigQuery 数据导出到 Spanner 所需的权限,请让管理员向您授予项目的以下 IAM 角色: - 
            从 BigQuery 表导出数据:BigQuery Data Viewer (roles/bigquery.dataViewer)
- 
            运行导出作业:BigQuery User (roles/bigquery.user)
- 
            将数据写入 Spanner 表:Spanner Database User (roles/spanner.databaseUser)
 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。 
- 
            从 BigQuery 表导出数据:BigQuery Data Viewer (
将示例数据加载到 Spanner
以下说明使用 BigQuery 反向 ETL 工作流和 Google Cloud CLI 来执行。
- 使用以下命令在 gcloud CLI 中设置默认项目: - gcloud config set project PROJECT_ID 
- 以 CSV 文件格式导出源数据。请考虑使用 - pg_dump(适用于 PostgreSQL 数据库)或- mysqldump(适用于 MySQL 数据库)工具将您的示例数据转换为 CSV 文件格式。
- 使用以下 - bq命令将数据加载到 BigQuery 中:- 创建 BigQuery 数据集。 - bq mk BQ_DATASET 
- 将数据批量加载到新的 BigQuery 表中。 - bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE /path/to/file - 或者,您也可以从 Cloud Storage 文件批量加载数据。 - bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE gs://BUCKET/FILE 
 
- 使用以下命令创建与导入的 BQ_TABLE 相匹配的 Spanner 架构: - gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..." - 如需了解详情,请参阅更新 Spanner 架构。 
- 使用以下命令将数据从 BigQuery 导出到 Spanner: - 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;'