サンプルデータを読み込む

このドキュメントでは、少量のデータを CSV ファイル形式で Spanner に読み込む方法について説明します。本番環境データの移行を実行する前にサンプルデータを読み込み、スキーマ、クエリ、アプリケーションをテストできます。

始める前に

  1. Google Cloud CLI をインストールするか、必要なすべてのツールがプリインストールされている Cloud Shell を使用します。

  2. BigQuery データを Spanner にエクスポートするために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。

    • BigQuery テーブルからデータをエクスポートする: BigQuery データ閲覧者(roles/bigquery.dataViewer
    • エクスポート ジョブを実行する: BigQuery ユーザー(roles/bigquery.user
    • Spanner テーブルにデータを書き込む: Spanner データベース ユーザー(roles/spanner.databaseUser

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Spanner にサンプルデータを読み込む

次の手順では、BigQuery リバース ETL ワークフローと Google Cloud CLI を使用して実行します。

  1. 次のコマンドを使用して、gcloud CLI でデフォルト プロジェクトを設定します。

     gcloud config set project PROJECT_ID
  2. ソースデータを CSV ファイル形式でエクスポートします。PostgreSQL データベースの場合は pg_dump、MySQL データベースの場合は mysqldump のツールを使用して、サンプルデータを CSV ファイル形式に変換することを検討してください。

  3. 次の bq コマンドを使用して、データを BigQuery に読み込みます。

    1. BigQuery データセットを作成します。

      bq mk BQ_DATASET
    2. データを新しい 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
  4. 次のコマンドを使用して、インポートされた BQ_TABLE に一致する Spanner スキーマを作成します。

     gcloud spanner databases ddl update SPANNER_DATABASE \
     --instance=SPANNER_INSTANCE \
     --ddl="CREATE TABLE SPANNER_TABLE ..."

    詳細については、Spanner スキーマを更新するをご覧ください。

  5. 次のコマンドを使用して、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;'
     

次のステップ