このドキュメントでは、少量のデータを CSV ファイル形式で Spanner に読み込む方法について説明します。本番環境データの移行を実施する前にサンプルデータを読み込み、スキーマ、クエリ、アプリケーションをテストできます。
始める前に
- Google Cloud CLI をインストールするか、必要なすべてのツールがプリインストールされている Cloud Shell を使用します。 
- 
  
  
  
  
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  BigQuery データを Spanner にエクスポートするために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。 - BigQuery テーブルからデータをエクスポートする: BigQuery データ閲覧者(roles/bigquery.dataViewer)
- 
            エクスポート ジョブを実行する: BigQuery ユーザー(roles/bigquery.user)
- 
            Spanner テーブルにデータを書き込む: Cloud Spanner データベース ユーザー(roles/spanner.databaseUser)
 ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。 
- BigQuery テーブルからデータをエクスポートする: BigQuery データ閲覧者(
サンプルデータを Spanner に読み込む
次の手順では、BigQuery リバース ETL ワークフローと Google Cloud CLI を使用して実行します。
- 次のコマンドを使用して、gcloud CLI でデフォルト プロジェクトを設定します。 - gcloud config set project PROJECT_ID 
- ソースデータを CSV ファイル形式でエクスポートします。PostgreSQL データベースの場合は - pg_dump、MySQL データベースの場合は- mysqldumpのツールを使用して、サンプルデータを 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;'