Spanner to Cloud Storage Text テンプレート

Spanner to Cloud Storage Text テンプレートは、Spanner テーブルからデータを読み取り、CSV テキスト ファイルとして Cloud Storage に書き込むバッチ パイプラインです。

パイプラインの要件

  • パイプラインを実行する前に、入力 Spanner テーブルが存在すること。

テンプレートのパラメータ

パラメータ 説明
spannerProjectId データを読み取る Spanner データベースの Google Cloud プロジェクト ID。
spannerDatabaseId リクエストされたテーブルのデータベース ID。
spannerInstanceId リクエストされたテーブルのインスタンス ID。
spannerTable データを読み取るテーブル。
textWritePrefix 出力のテキスト ファイルが書き込まれる Cloud Storage パス。末尾に / を付加してください。たとえば、gs://mybucket/somefolder/ のようにします。
spannerSnapshotTime (省略可)読み取る Spanner データベースのバージョンに対応するタイムスタンプ。タイムスタンプは RFC 3339 UTC Zulu 形式で指定する必要があります。例: 1990-12-31T23:59:60Zタイムスタンプは過去の日付でなければならず、タイムスタンプ ステイルネスの最大値が適用されます。
dataBoostEnabled (省略可)true に設定すると、Spanner Data Boost のコンピューティング リソースを使用してジョブを実行するときに、Spanner OLTP ワークフローへの影響をほぼゼロにすることができます。そのためには spanner.databases.useDataBoost Identity and Access Management(IAM)権限が必要です。詳細については、Data Boost の概要をご覧ください。
csvTempDirectory (省略可)一時的な CSV ファイルが書き込まれる Cloud Storage パス。
spannerPriority (省略可)Cloud Spanner 呼び出しのリクエストの優先度。可能な値は HIGHMEDIUMLOW です。デフォルト値は MEDIUM です。

テンプレートを実行する

コンソール

  1. Dataflow の [テンプレートからジョブを作成] ページに移動します。
  2. [テンプレートからジョブを作成] に移動
  3. [ジョブ名] フィールドに、固有のジョブ名を入力します。
  4. (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは us-central1 です。

    Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。

  5. [Dataflow テンプレート] プルダウン メニューから、the Cloud Spanner to Text Files on Cloud Storage template を選択します。
  6. 表示されたパラメータ フィールドに、パラメータ値を入力します。
  7. [ジョブを実行] をクリックします。

gcloud

シェルまたはターミナルで、テンプレートを実行します。

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

次のように置き換えます。

  • JOB_NAME: 一意の任意のジョブ名
  • VERSION: 使用するテンプレートのバージョン

    使用できる値は次のとおりです。

    • latest: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。
    • バージョン名(例: 2023-09-12-00_RC00)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
  • REGION_NAME: Dataflow ジョブをデプロイするリージョン(例: us-central1
  • SPANNER_PROJECT_ID: データを読み取る Spanner データベースの Google Cloud プロジェクト ID
  • DATABASE_ID: Spanner データベース ID
  • BUCKET_NAME: Cloud Storage バケットの名前
  • INSTANCE_ID: Spanner インスタンス ID
  • TABLE_ID: Spanner テーブル ID

API

REST API を使用してテンプレートを実行するには、HTTP POST リクエストを送信します。API とその認証スコープの詳細については、projects.templates.launch をご覧ください。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

次のように置き換えます。

  • PROJECT_ID: Dataflow ジョブを実行する Google Cloud プロジェクトの ID
  • JOB_NAME: 一意の任意のジョブ名
  • VERSION: 使用するテンプレートのバージョン

    使用できる値は次のとおりです。

    • latest: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。
    • バージョン名(例: 2023-09-12-00_RC00)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
  • LOCATION: Dataflow ジョブをデプロイするリージョン(例: us-central1
  • SPANNER_PROJECT_ID: データを読み取る Spanner データベースの Google Cloud プロジェクト ID
  • DATABASE_ID: Spanner データベース ID
  • BUCKET_NAME: Cloud Storage バケットの名前
  • INSTANCE_ID: Spanner インスタンス ID
  • TABLE_ID: Spanner テーブル ID

次のステップ