Google 提供のバッチ テンプレート

Google はオープンソースの Dataflow テンプレートを提供しています。テンプレートに関する一般的な情報については、概要ページをご覧ください。Google が提供するすべてのテンプレートのリストについては、Google 提供のテンプレートの概要ページをご覧ください。

このページでは、以下のバッチ テンプレートについて説明します。

BigQuery to Cloud Storage TFRecords

BigQuery to Cloud Storage TFRecords テンプレートは、BigQuery クエリからデータを読み取り、Cloud Storage バケットに TFRecord 形式で書き込むパイプラインです。トレーニング、テスト、検証の分割パーセンテージを指定できます。デフォルトでは、トレーニング セットの分割パーセンテージは 1 または 100%、テストセットと検証セットは 0 または 0% です。データセットの分割を設定する場合は、トレーニング、テスト、検証の合計が 1 または 100% になるようにする必要があります(たとえば、0.6 + 0.2 + 0.2)。Dataflow では、各出力データセットに最適なシャード数が自動的に設定されます。

このパイプラインの要件:

  • BigQuery のデータセットとテーブルが存在すること。
  • パイプラインの実行前に出力先の Cloud Storage バケットが存在すること。トレーニング、テスト、検証のサブディレクトリは、事前に作成する必要はありません。自動的に生成されます。

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

パラメータ 説明
readQuery ソースからデータを抽出する BigQuery SQL クエリ。例: select * from dataset1.sample_table
outputDirectory トレーニング、テスト、検証の TFRecord ファイルを書き込む最上位の Cloud Storage パスの接頭辞。例: gs://mybucket/outputトレーニング、テスト、検証の TFRecord ファイルのサブディレクトリは、outputDirectory から自動的に生成されます。例: gs://mybucket/output/train
trainingPercentage (省略可)トレーニングの TFRecord ファイルに割り当てられるクエリデータの割合。デフォルト値は 1 または 100% です。
testingPercentage (省略可)テストの TFRecord ファイルに割り当てられるクエリデータの割合。デフォルト値は 0 または 0% です。
validationPercentage (省略可)検証の TFRecord ファイルに割り当てられるクエリデータの割合。デフォルト値は 0 または 0% です。
outputSuffix (省略可)トレーニング、テスト、検証で書き込まれる TFRecord ファイルの接頭辞。デフォルト値は .tfrecord です。

BigQuery to Cloud Storage TFRecord ファイル テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the BigQuery to TFRecords template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: gcloud コマンドライン ツールを使用してテンプレートを実行するには、Cloud SDK バージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --parameters readQuery=READ_QUERY,outputDirectory=OUTPUT_DIRECTORY,trainingPercentage=TRAINING_PERCENTAGE,testingPercentage=TESTING_PERCENTAGE,validationPercentage=VALIDATION_PERCENTAGE,outputSuffix=OUTPUT_FILENAME_SUFFIX

次の値を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • READ_QUERY: 実行される BigQuery クエリ
  • OUTPUT_DIRECTORY: 出力データセットの Cloud Storage パス接頭辞
  • TRAINING_PERCENTAGE: トレーニング データセットの分割割合の小数値
  • TESTING_PERCENTAGE: テスト データセットの分割割合の小数値
  • VALIDATION_PERCENTAGE: 検証データセットの分割割合の小数値
  • OUTPUT_FILENAME_SUFFIX: 出力される TensorFlow レコードのファイル サフィックス

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records

REST API でテンプレートを実行するには、HTTP POST リクエストと一緒にプロジェクト ID を送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

次の値を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • READ_QUERY: 実行される BigQuery クエリ
  • OUTPUT_DIRECTORY: 出力データセットの Cloud Storage パス接頭辞
  • TRAINING_PERCENTAGE: トレーニング データセットの分割割合の小数値
  • TESTING_PERCENTAGE: テスト データセットの分割割合の小数値
  • VALIDATION_PERCENTAGE: 検証データセットの分割割合の小数値
  • OUTPUT_FILENAME_SUFFIX: 出力される TensorFlow レコードのファイル サフィックス

BigQuery の Parquet へのエクスポート(Storage API 経由)

BigQuery export to Parquet テンプレートは、BigQuery テーブルからデータを読み取り、Parquet 形式で Cloud Storage バケットに書き込むバッチ パイプラインです。このテンプレートは、BigQuery Storage API を使用してデータをエクスポートします。

このパイプラインの要件:

  • パイプラインを実行する前に、入力 BigQuery テーブルが存在すること。
  • パイプラインを実行する前に、出力先の Cloud Storage バケットが存在すること。

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

パラメータ 説明
tableRef BigQuery 入力テーブルの場所。例: <my-project>:<my-dataset>.<my-table>
bucket Parquet ファイルを書き込む Cloud Storage フォルダ。例:gs://mybucket/exports
numShards (省略可)出力ファイルのシャード数。デフォルト値は 1 です。
fields (省略可)入力 BigQuery テーブルから選択するフィールドのカンマ区切りのリスト。

BigQuery to Cloud Storage Parquet テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the BigQuery export to Parquet template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 284.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/BigQuery_to_Parquet \
    --parameters \
tableRef=BIGQUERY_TABLE,\
bucket=OUTPUT_DIRECTORY,\
numShards=NUM_SHARDS,\
fields=FIELDS

次の値を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BIGQUERY_TABLE: BigQuery テーブル名
  • OUTPUT_DIRECTORY: 出力ファイルを格納する Cloud Storage フォルダ
  • NUM_SHARDS: 目的の出力ファイル シャードの数
  • FIELDS: 入力 BigQuery テーブルから選択するフィールドのカンマ区切りリスト
  • LOCATION: 実行リージョン(例: us-central1

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "tableRef": "BIGQUERY_TABLE",
          "bucket": "OUTPUT_DIRECTORY",
          "numShards": "NUM_SHARDS",
          "fields": "FIELDS"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/latest/flex/BigQuery_to_Parquet",
   }
}

次の値を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BIGQUERY_TABLE: BigQuery テーブル名
  • OUTPUT_DIRECTORY: 出力ファイルを格納する Cloud Storage フォルダ
  • NUM_SHARDS: 目的の出力ファイル シャードの数
  • FIELDS: 入力 BigQuery テーブルから選択するフィールドのカンマ区切りリスト
  • LOCATION: 実行リージョン(例: us-central1

Cloud Bigtable to Cloud Storage Avro

Cloud Bigtable to Cloud Storage Avro テンプレートは、Cloud Bigtable テーブルからデータを読み取り、Avro 形式で Cloud Storage バケットに書き込むパイプラインです。このテンプレートは、Cloud Bigtable から Cloud Storage にデータを移動する場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在すること。
  • パイプラインを実行する前に、出力先の Cloud Storage バケットが存在すること。

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

パラメータ 説明
bigtableProjectId データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId エクスポート対象の Cloud Bigtable テーブルの ID。
outputDirectory データが書き込まれる Cloud Storage のパス。例:gs://mybucket/somefolder
filenamePrefix Avro ファイル名の接頭辞。例:output-

Cloud Bigtable to Cloud Storage Avro file テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to Avro Files on Cloud Storage template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • OUTPUT_DIRECTORY: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX: Avro ファイル名の接頭辞(例: output-

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • OUTPUT_DIRECTORY: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX: Avro ファイル名の接頭辞(例: output-

Cloud Bigtable to Cloud Storage Parquet

Cloud Bigtable to Cloud Storage Parquet テンプレートは、Cloud Bigtable テーブルからデータを読み取り、Parquet 形式で Cloud Storage バケットに書き込むパイプラインです。このテンプレートは、Cloud Bigtable から Cloud Storage にデータを移動する場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在すること。
  • パイプラインを実行する前に、出力先の Cloud Storage バケットが存在すること。

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

パラメータ 説明
bigtableProjectId データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId エクスポート対象の Cloud Bigtable テーブルの ID。
outputDirectory データが書き込まれる Cloud Storage のパス。例:gs://mybucket/somefolder
filenamePrefix Parquet ファイル名の接頭辞。例:output-
numShards 出力ファイル シャードの数。例: 2

Cloud Bigtable to Cloud Storage Parquet ファイル テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to Parquet template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX,numShards=NUM_SHARDS

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • OUTPUT_DIRECTORY: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX: Parquet ファイル名の接頭辞(例: output-
  • NUM_SHARDS: 出力する Parquet ファイルの数(例: 1

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • OUTPUT_DIRECTORY: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX: Parquet ファイル名の接頭辞(例: output-
  • NUM_SHARDS: 出力する Parquet ファイルの数(例: 1

Cloud Bigtable to Cloud Storage SequenceFile

Cloud Bigtable to Cloud Storage SequenceFile テンプレートは、Cloud Bigtable テーブルからデータを読み取り、SequenceFile 形式で Cloud Storage バケットに書き込むパイプラインです。このテンプレートは、Cloud Bigtable から Cloud Storage にデータをコピーする場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在すること。
  • パイプラインを実行する前に、出力先の Cloud Storage バケットが存在すること。

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

パラメータ 説明
bigtableProject データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId エクスポート対象の Cloud Bigtable テーブルの ID。
bigtableAppProfileId エクスポートに使用される Cloud Bigtable アプリケーション プロファイルの ID。アプリ プロファイルを指定しない場合、Cloud Bigtable ではインスタンスのデフォルトのアプリ プロファイルが使用されます。
destinationPath データが書き込まれる Cloud Storage のパス。例:gs://mybucket/somefolder
filenamePrefix SequenceFile ファイル名の接頭辞。例:output-

Cloud Bigtable to Cloud Storage SequenceFile テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to SequenceFile Files on Cloud Storage template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,destinationPath=DESTINATION_PATH,filenamePrefix=FILENAME_PREFIX

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID]: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID]: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID]: エクスポート対象の Cloud Bigtable テーブルの ID
  • APPLICATION_PROFILE_ID]: エクスポートに使用される Cloud Bigtable アプリケーション プロファイルの ID
  • DESTINATION_PATH]: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX]: SequenceFile ファイル名の接頭辞(例: output-

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID]: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID]: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID]: エクスポート対象の Cloud Bigtable テーブルの ID
  • APPLICATION_PROFILE_ID]: エクスポートに使用される Cloud Bigtable アプリケーション プロファイルの ID
  • DESTINATION_PATH]: データの書き込み先の Cloud Storage パス(例: gs://mybucket/somefolder
  • FILENAME_PREFIX]: SequenceFile ファイル名の接頭辞(例: output-

Datastore to Cloud Storage Text

Datastore to Cloud Storage Text テンプレートは、Datastore エンティティを読み取り、Cloud Storage にテキスト ファイルとして書き込むバッチ パイプラインです。各エンティティを JSON 文字列として扱う関数を使用できます。このような関数を使用しない場合、出力ファイルの各行はシリアル化された JSON エンティティとなります。

このパイプラインの要件:

パイプラインを実行する前に、Datastore をプロジェクトで設定する必要があります。

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

パラメータ 説明
datastoreReadGqlQuery 取得するエンティティを指定する GQL クエリ。例: SELECT * FROM MyKind
datastoreReadProjectId データを読み取る Datastore インスタンスの Google Cloud プロジェクト ID。
datastoreReadNamespace 要求されたエンティティの名前空間。デフォルトの名前空間を使用するには、このパラメータを空白のままにします。
javascriptTextTransformGcsPath すべての JavaScript コードを含む Cloud Storage パス。例: gs://mybucket/mytransforms/*.js関数を提供しない場合には、このパラメータを空白のままにします。
javascriptTextTransformFunctionName 呼び出される JavaScript 関数の名前。たとえば、JavaScript 関数が function myTransform(inJson) { ...dostuff...} の場合は、関数名は myTransform です。関数を提供しない場合は、このパラメータを空白のままにします。
textWritePrefix データの書き込み先を指定する Cloud Storage パスの接頭辞。例: gs://mybucket/somefolder/

Datastore to Cloud Storage Text テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Datastore to Text Files on Cloud Storage template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\
datastoreReadProjectId=PROJECT_ID,\
datastoreReadNamespace=DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BUCKET_NAME: Cloud Storage バケットの名前
  • DATASTORE_KIND: Datastore エンティティのタイプ
  • DATASTORE_NAMESPACE: Datastore エンティティの名前空間
  • JAVASCRIPT_FUNCTION: JavaScript 関数名
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "PROJECT_ID",
       "datastoreReadNamespace": "DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BUCKET_NAME: Cloud Storage バケットの名前
  • DATASTORE_KIND: Datastore エンティティのタイプ
  • DATASTORE_NAMESPACE: Datastore エンティティの名前空間
  • JAVASCRIPT_FUNCTION: JavaScript 関数名
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス

Cloud Spanner to Cloud Storage Avro

Cloud Spanner to Avro Files on Cloud Storage テンプレートは、Cloud Spanner データベース全体を Avro 形式で Cloud Storage にエクスポートするバッチ パイプラインです。Cloud Spanner データベースをエクスポートすると、選択したバケット内にフォルダが作成されます。フォルダには以下が含まれています。

  • spanner-export.json ファイル。
  • エクスポートしたデータベースの角テーブルの TableName-manifest.json ファイル。
  • 1 つ以上の TableName.avro-#####-of-##### ファイル。

たとえば、SingersAlbums の 2 つのテーブルを持つデータベースをエクスポートして、次のファイルセットを作成します。

  • Albums-manifest.json
  • Albums.avro-00000-of-00002
  • Albums.avro-00001-of-00002
  • Singers-manifest.json
  • Singers.avro-00000-of-00003
  • Singers.avro-00001-of-00003
  • Singers.avro-00002-of-00003
  • spanner-export.json

このパイプラインの要件:

  • Cloud Spanner データベースが存在すること。
  • 出力先の Cloud Storage バケットが存在すること。
  • Dataflow ジョブの実行に必要な IAM ロールに加えて、Cloud Spanner のデータの読み取りと Cloud Storage バケットへの書き込みに適切な IAM ロールも必要です。

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

パラメータ 説明
instanceId エクスポートする Cloud Spanner データベースのインスタンス ID。
databaseId エクスポートする Cloud Spanner データベースのデータベース ID。
outputDir Avro ファイルのエクスポート先にする Cloud Storage パス。エクスポート ジョブによって、このパスの下にディレクトリが新規作成されます。ここに、エクスポートされたファイルが格納されます。
snapshotTime (省略可)読み取る Cloud Spanner データベースのバージョンに対応するタイムスタンプ。タイムスタンプは RFC 3339 UTC「Zulu」形式で指定する必要があります。例: 1990-12-31T23:59:60Zタイムスタンプは過去の日付でなければならず、タイムスタンプ ステイルネスの最大値が適用されます。
spannerProjectId (省略可)データを読み取る Cloud Spanner データベースの Google Cloud プロジェクト ID。

Cloud Spanner to Avro Files on Cloud Storage テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Cloud Spanner to Avro Files on Cloud Storage template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
    • Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] の形式になっている必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,outputDir=GCS_DIRECTORY'

以下を置き換えます。

  • JOB_NAME: 任意のジョブ名。
  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • GCS_STAGING_LOCATION: 一時ファイルを書き込むパス(例: gs://mybucket/temp
  • INSTANCE_ID: Cloud Spanner インスタンス ID
  • DATABASE_ID: Cloud Spanner データベース ID
  • GCS_DIRECTORY: Avro ファイル が にエクスポートされる Cloud Storage パス

API

REST API から実行する

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "outputDir": "gs://GCS_DIRECTORY"
   }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定する必要があります。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • INSTANCE_ID: Cloud Spanner インスタンス ID
  • DATABASE_ID: Cloud Spanner データベース ID
  • GCS_DIRECTORY: Avro ファイル が にエクスポートされる Cloud Storage パス
  • JOB_NAME: 任意のジョブ名
    • Cloud Console の Cloud Spanner 部分に表示されるジョブ名は、cloud-spanner-export-INSTANCE_ID-DATABASE_ID というフォーマットに一致させる必要があります。

Cloud Spanner to Cloud Storage Text

Cloud Spanner to Cloud Storage Text テンプレートは、データを Cloud Spanner テーブルから読み込み、必要に応じて指定した JavaScript ユーザー定義関数(UDF)を介して変換し、CSV テキスト ファイルとして Cloud Storage に書き込むバッチ パイプラインです。

このパイプラインの要件:

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

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

パラメータ 説明
spannerProjectId データを読み取る Cloud Spanner データベースの Google Cloud プロジェクト ID。
spannerDatabaseId リクエストされたテーブルのデータベース ID。
spannerInstanceId リクエストされたテーブルのインスタンス ID。
spannerTable データを読み取るテーブル。
textWritePrefix 出力テキスト ファイルを書き込むディレクトリ。末尾に / を付加してください。例: gs://mybucket/somefolder/
javascriptTextTransformGcsPath (オプション)すべての JavaScript コードを含む Cloud Storage パス。例: gs://mybucket/mytransforms/*.js。関数を提供しない場合は、このパラメータを空白のままにします。
javascriptTextTransformFunctionName (省略可)呼び出す JavaScript 関数の名前。たとえば、JavaScript 関数が function myTransform(inJson) { ...dostuff...} の場合は、関数名は myTransform です。関数を提供しない場合は、このパラメータを空白のままにします。

Cloud Spanner to Cloud Storage Text テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Cloud Spanner to Text Files on Cloud Storage template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • DATABASE_ID: Spanner データベース ID
  • BUCKET_NAME: Cloud Storage バケットの名前
  • INSTANCE_ID: Spanner インスタンス ID
  • TABLE_ID: Spanner テーブル ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • JAVASCRIPT_FUNCTION: JavaScript 関数名

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

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

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • DATABASE_ID: Spanner データベース ID
  • BUCKET_NAME: Cloud Storage バケットの名前
  • INSTANCE_ID: Spanner インスタンス ID
  • TABLE_ID: Spanner テーブル ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • JAVASCRIPT_FUNCTION: JavaScript 関数名

Cloud Storage Avro to Cloud Bigtable

Cloud Storage Avro to Cloud Bigtable テンプレートは、Cloud Storage バケットの Avro ファイルからデータを読み取り、Cloud Bigtable テーブルに書き込むパイプラインです。このテンプレートは、Cloud Storage から Cloud Bigtable にデータをコピーする場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在し、Avro ファイルにエクスポートしたものと同じ列ファミリがこのテーブルにあること。
  • 入力 Avro ファイルが、パイプラインを実行する前に Cloud Storage バケット内に存在すること。
  • Cloud Bigtable が入力 Avro ファイルに特定のスキーマを想定していること。

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

パラメータ 説明
bigtableProjectId データを書き込む Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId インポート対象の Cloud Bigtable テーブルの ID。
inputFilePattern データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*)。

Cloud Storage Avro file to Cloud Bigtable テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Avro Files on Cloud Storage to Cloud Bigtable template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • INPUT_FILE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • INPUT_FILE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

Cloud Storage Avro to Cloud Spanner

Cloud Storage Avro files to Cloud Spanner テンプレートは、Cloud Storage に保存されている Cloud Spanner からエクスポートされた Avro ファイルを読み取り、そのファイルを Cloud Spanner データベースにインポートするバッチ パイプラインです。

このパイプラインの要件:

  • ターゲットの Cloud Spanner データベースが存在し、空であること。
  • Cloud Storage バケットの読み取り権限と、対象の Cloud Spanner データベースに対する書き込み権限が必要です。
  • 入力された Cloud Storage パスが存在する必要があります。また、インポートするファイルの JSON 記述を含む spanner-export.json ファイルがそこに格納されている必要があります。

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

パラメータ 説明
instanceId Cloud Spanner データベースのインスタンス ID。
databaseId Cloud Spanner データベースのデータベース ID。
inputDir Avro ファイルのインポート元となる Cloud Storage パス。

Cloud Storage Avro to Cloud Spanner テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Avro Files on Cloud Storage to Cloud Spanner template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
    • Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、cloud-spanner-import-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] の形式になっている必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --staging-location=GCS_STAGING_LOCATION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,inputDir=GCS_DIRECTORY'

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • (API のみ)PROJECT_ID: プロジェクト ID
  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • JOB_NAME: 任意のジョブ名
  • INSTANCE_ID: データベースを含む Spanner インスタンスの ID
  • DATABASE_ID: インポート先の Spanner データベースの ID
  • (gcloud のみ)GCS_STAGING_LOCATION: 一時ファイルを書き込むためのパス(例: gs://mybucket/temp
  • GCS_DIRECTORY: Avro ファイルのインポート元となる Cloud Storage パス(例: gs://mybucket/somefolder

API

REST API から実行する

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "inputDir": "gs://GCS_DIRECTORY"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • (API のみ)PROJECT_ID: プロジェクト ID
  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • JOB_NAME: 任意のジョブ名
  • INSTANCE_ID: データベースを含む Spanner インスタンスの ID
  • DATABASE_ID: インポート先の Spanner データベースの ID
  • (gcloud のみ)GCS_STAGING_LOCATION: 一時ファイルを書き込むためのパス(例: gs://mybucket/temp
  • GCS_DIRECTORY: Avro ファイルのインポート元となる Cloud Storage パス(例: gs://mybucket/somefolder

Cloud Storage Parquet to Cloud Bigtable

Cloud Storage Parquet to Cloud Bigtable テンプレートは、Cloud Storage バケット内の Parquet ファイルからデータを読み取り、そのデータを Cloud Bigtable テーブルに書き込むパイプラインです。このテンプレートは、Cloud Storage から Cloud Bigtable にデータをコピーする場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在し、Parquet ファイルにエクスポートしたものと同じ列ファミリーがこのテーブルにあること。
  • 入力 Parquet ファイルが、パイプラインを実行する前に Cloud Storage バケット内に存在すること。
  • Cloud Bigtable が入力の Parquet ファイルに特定のスキーマを想定していること。

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

パラメータ 説明
bigtableProjectId データを書き込む Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId インポート対象の Cloud Bigtable テーブルの ID。
inputFilePattern データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*)。

Cloud Storage Parquet file to Cloud Bigtable テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Parquet files on Cloud Storage to Cloud Bigtable template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • INPUT_FILE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • INPUT_FILE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

Cloud Storage SequenceFile to Cloud Bigtable

Cloud Storage SequenceFile to Cloud Bigtable テンプレートは、Cloud Storage バケットの SequenceFiles からデータを読み取り、Cloud Bigtable テーブルに書き込むパイプラインです。このテンプレートは、Cloud Storage から Cloud Bigtable にデータをコピーする場合に使用できます。

このパイプラインの要件:

  • Cloud Bigtable テーブルが存在すること。
  • 入力 SequenceFiles は、パイプラインを実行する前に Cloud Storage バケット内に存在すること。
  • 入力 SequenceFiles が Cloud Bigtable または HBase からエクスポートされていること。

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

パラメータ 説明
bigtableProject データを書き込む Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId インポート対象の Cloud Bigtable テーブルの ID。
bigtableAppProfileId インポートに使用される Cloud Bigtable アプリケーション プロファイルの ID。 アプリ プロファイルを指定しない場合、Cloud Bigtable ではインスタンスのデフォルトのアプリ プロファイルが使用されます。
sourcePattern データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*)。

Cloud Storage SequenceFile to Cloud Bigtable テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Parquet files on Cloud Storage to Cloud Bigtable template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,sourcePattern=SOURCE_PATTERN

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • APPLICATION_PROFILE_ID: エクスポートに使用される Cloud Bigtable アプリケーション プロファイルの ID
  • SOURCE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "sourcePattern": "SOURCE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定してください。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PROJECT_ID: データを読み取る Cloud Bigtable インスタンスの Google Cloud プロジェクトの ID
  • INSTANCE_ID: テーブルが含まれる Cloud Bigtable インスタンスの ID
  • TABLE_ID: エクスポート対象の Cloud Bigtable テーブルの ID
  • APPLICATION_PROFILE_ID: エクスポートに使用される Cloud Bigtable アプリケーション プロファイルの ID
  • SOURCE_PATTERN: データが存在する Cloud Storage パスのパターン(例: gs://mybucket/somefolder/prefix*

Cloud Storage Text to BigQuery

Cloud Storage Text to BigQuery テンプレートは、Cloud Storage に格納されているテキスト ファイルを読み取り、ユーザーが提供する JavaScript ユーザー定義関数(UDF)を使用してファイルを変換し、その結果を BigQuery に出力するバッチ パイプラインです。

重要: 既存の BigQuery テーブルを再利用すると、データは宛先テーブルに追加されます。

このパイプラインの要件:

  • BigQuery スキーマを記述する JSON ファイルを作成します。

    BigQuery Schema というタイトルになっているトップレベルの JSON 配列があり、その内容が {"name": "COLUMN_NAME", "type": "DATA_TYPE"} のパターンに従っていることを確認します。例:

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • JavaScript(.js)ファイルを作成し、このファイル内に、テキスト行の変換ロジックを提供する UDF 関数を含めます。使用する関数は、JSON 文字列を返します。

    たとえば、次の関数は、CSV ファイルの各行を分割し、値を変換してから JSON 文字列を返します。

    function transform(line) {
    var values = line.split(',');
    
    var obj = new Object();
    obj.location = values[0];
    obj.name = values[1];
    obj.age = values[2];
    obj.color = values[3];
    obj.coffee = values[4];
    var jsonString = JSON.stringify(obj);
    
    return jsonString;
    }
    

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

パラメータ 説明
javascriptTextTransformFunctionName .js ファイルから呼び出す関数の名前。
JSONPath Cloud Storage に格納された BigQuery スキーマを定義する JSON ファイルへの gs:// パス。例: gs://path/to/my/schema.json
javascriptTextTransformGcsPath UDF を定義する JavaScript ファイルへの gs:// パス。例: gs://path/to/my/javascript_function.js
inputFilePattern Cloud Storage 内で処理するテキストの gs:// パス。例: gs://path/to/my/text/data.txt
outputTable 処理されたデータを格納するために作成する BigQuery テーブル名。既存の BigQuery テーブルを再利用すると、データは宛先テーブルに追加されます。例:my-project-name:my-dataset.my-table
bigQueryLoadingTemporaryDirectory BigQuery 読み込みプロセスの一時ディレクトリ。例:gs://my-bucket/my-files/temp_dir

Cloud Storage Text to BigQuery テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Text Files on Cloud Storage to BigQuery template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • JAVASCRIPT_FUNCTION: UDF の名前
  • PATH_TO_BIGQUERY_SCHEMA_JSON: スキーマ定義を含む JSON ファイルへの Cloud Storage パス
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • PATH_TO_TEXT_DATA: テキスト データセットへの Cloud Storage パス
  • BIGQUERY_TABLE: BigQuery テーブル名
  • PATH_TO_TEMP_DIR_ON_GCS: 一時ディレクトリへの Cloud Storage パス

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • JAVASCRIPT_FUNCTION: UDF の名前
  • PATH_TO_BIGQUERY_SCHEMA_JSON: スキーマ定義を含む JSON ファイルへの Cloud Storage パス
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • PATH_TO_TEXT_DATA: テキスト データセットへの Cloud Storage パス
  • BIGQUERY_TABLE: BigQuery テーブル名
  • PATH_TO_TEMP_DIR_ON_GCS: 一時ディレクトリへの Cloud Storage パス

Cloud Storage Text to Datastore

Cloud Storage Text to Datastore テンプレートは、Cloud Storage に保存されたテキスト ファイルを読み取り、JSON にエンコードされたエンティティを Datastore に書き込むバッチ パイプラインです。入力テキスト ファイルの各行は、指定された JSON 形式である必要があります。

このパイプラインの要件:

  • データストアが宛先プロジェクトで有効にされている必要があります。

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

パラメータ 説明
textReadPattern テキスト データファイルの場所を指定する Cloud Storage のパスパターン。例:gs://mybucket/somepath/*.json
javascriptTextTransformGcsPath すべての JavaScript コードを格納する Cloud Storage パス。例: gs://mybucket/mytransforms/*.js関数を提供しない場合には、このパラメータを空白のままにします。
javascriptTextTransformFunctionName 呼び出される JavaScript 関数の名前。たとえば、JavaScript 関数が function myTransform(inJson) { ...dostuff...} の場合は、関数名は myTransform です。関数を提供しない場合は、このパラメータを空白のままにします。
datastoreWriteProjectId Datastore エンティティを書き込む Google Cloud プロジェクト ID
errorWritePath 処理中に発生したエラーを書き込むために使用するエラーログ出力ファイル。例: gs://bucket-name/errors.txt

Cloud Storage Text to Datastore テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Text Files on Cloud Storage to Datastore template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Datastore \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage 上の入力ファイル パターン
  • JAVASCRIPT_FUNCTION: JavaScript 関数名
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • ERROR_FILE_WRITE_PATH: Cloud Storage 上のエラーファイルの目的のパス

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage 上の入力ファイル パターン
  • JAVASCRIPT_FUNCTION: JavaScript 関数名
  • PATH_TO_JAVASCRIPT_UDF_FILE: JavaScript コードを含む .js ファイルへの Cloud Storage パス
  • ERROR_FILE_WRITE_PATH: Cloud Storage 上のエラーファイルの目的のパス

Cloud Storage Text to Pub/Sub (Batch)

このテンプレートは、Cloud Storage に保存されたテキスト ファイルからレコードを読み取り、Pub/Sub トピックに公開するバッチ パイプラインを作成します。このテンプレートは、JSON レコードまたは Pub/Sub トピックが改行区りで含まれるファイルまたは CSV ファイルのレコードを Pub/Sub トピックに公開し、リアルタイムで処理する場合に使用できます。また、Pub/Sub でデータを再生することもできます。

このテンプレートでは、個々のレコードにタイムスタンプを設定しません。実行中はイベント時間と公開時間が同じです。パイプラインの処理が正確なイベント時間に依存している場合は、このパイプラインを使用しないでください。

このパイプラインの要件:

  • 読み込むファイルは、改行区切りの JSON または CSV 形式でなければなりません。ソースファイル内に複数行にわたるレコードがあると、ファイル内の各行がメッセージとして Pub/Sub に公開されるため、ダウンストリームで問題が発生する可能性があります。
  • パイプラインを実行する前に Pub/Sub トピックが存在している必要があります。

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

パラメータ 説明
inputFilePattern 読み込み元の入力ファイルのパターン。例: gs://bucket-name/files/*.json
outputTopic 書き込み先の Pub/Sub 入力トピック。名前は projects/<project-id>/topics/<topic-name> の形式にする必要があります。

Cloud Storage Text to Pub/Sub(Batch)テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Text Files on Cloud Storage to Pub/Sub (Batch) template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • TOPIC_NAME: Pub/Sub トピック名
  • BUCKET_NAME: Cloud Storage バケットの名前

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/files/*.json",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • TOPIC_NAME: Pub/Sub トピック名
  • BUCKET_NAME: Cloud Storage バケットの名前

Cloud Storage Text to Cloud Spanner

Cloud Storage Text to Cloud Spanner テンプレートは、Cloud Storage から CSV テキスト ファイルを読み取り、Cloud Spanner データベースにインポートするバッチ パイプラインです。

このパイプラインの要件:

  • ターゲットの Cloud Spanner データベースとテーブルが存在している必要があります。
  • Cloud Storage バケットの読み取り権限と、対象の Cloud Spanner データベースに対する書き込み権限が必要です。
  • CSV ファイルを含む入力 Cloud Storage パスが存在している必要があります。
  • CSV ファイルの JSON 記述を含むインポート マニフェスト ファイルを作成し、そのマニフェストを Cloud Storage に保存する必要があります。
  • ターゲットの Cloud Spanner データベースにすでにスキーマがある場合、マニフェスト ファイルで指定された列は、ターゲット データベースのスキーマ内の対応する列と同じデータ型である必要があります。
  • ASCII または UTF-8 でエンコードされたマニフェスト ファイルは、次の形式に一致する必要があります。

  • インポートするテキスト ファイルは、ASCII または UTF-8 エンコードの CSV 形式である必要があります。UTF-8 エンコード ファイルではバイト オーダー マーク(BOM)を使用しないことをおすすめします。
  • データは次のタイプのいずれかに一致する必要があります:
    • INT64
    • FLOAT64
    • BOOL
    • STRING
    • DATE
    • TIMESTAMP

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

パラメータ 説明
instanceId Cloud Spanner データベースのインスタンス ID。
databaseId Cloud Spanner データベースのデータベース ID。
importManifest Cloud Storage のインポート マニフェスト ファイルへのパス。
columnDelimiter ソースファイルが使用する列区切り文字。デフォルト値は , です。
fieldQualifier 文字は、columnDelimiter を含むソースファイル内の任意の値を囲む必要があります。デフォルト値は " です。
trailingDelimiter ソースファイルの行の末尾に区切り文字があるかどうかを指定します(つまり、columnDelimiter 文字が各行の最後の列の値の後に表示されるかどうか)。デフォルト値は true です。
escape ソースファイルが使用するエスケープ文字。デフォルトでは、このパラメータは設定されておらず、テンプレートではエスケープ文字は使用されません。
nullString NULL 値を表す文字列。デフォルトでは、このパラメータは設定されておらず、テンプレートでは null 文字列は使用されません。
dateFormat 日付列を解析するために使用される形式。デフォルトでは、パイプラインは日付列を yyyy-M-d[' 00:00:00'] として解析します。たとえば 2019-01-31 または 2019-1-1 00:00:00 とします。日付形式が異なる場合は、java.time.format.DateTimeFormatter のパターンを使って指定します。
timestampFormat timestamp 列を解析するために使用される形式。タイムスタンプが長整数の場合、Unix エポック時間として解析されます。それ以外の場合は、java.time.format.DateTimeFormatter.ISO_INSTANT フォーマットを使用して、文字列として解析されます。その他の場合は、独自のパターン文字列を指定します。たとえば、MMM dd yyyy HH:mm:ss.SSSVV タイムスタンプの形式は "Jan 21 1998 01:02:03.456+08:00". です。

日付形式やタイムスタンプ形式をカスタマイズする必要がある場合は、有効な java.time.format.DateTimeFormatter パターンであることを確認してください。date 列と timestamp 列のカスタマイズされた形式のその他の例を次の表に示します。

入力値 フォーマット 備考
DATE 2011-3-31 デフォルトでは、テンプレートはこの形式を解析できます。dateFormat パラメータを指定する必要はありません。
DATE 2011-3-31 00:00:00 デフォルトでは、テンプレートはこの形式を解析できます。形式を指定する必要はありません。必要に応じて yyyy-M-d' 00:00:00' が使用できます。
DATE 2018 年 4 月 1 日 dd MMM, yy
DATE 西暦 2019 年 4 月 3 日水曜日 EEEE, LLLL d, yyyy G
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z
2019-01-02T11:22:33.12356789Z
デフォルトの形式 ISO_INSTANT はこのタイプのタイムスタンプを解析できます。timestampFormat パラメータを指定する必要はありません。
TIMESTAMP 1568402363 デフォルトでは、テンプレートはこのタイプのタイムスタンプを解析し、Unix エポック時間として扱います。
TIMESTAMP 2008 年 6 月 3 日(火曜日)11:05:30 グリニッジ標準時 EEE, d MMM yyyy HH:mm:ss VV
TIMESTAMP 2018 年 12 月 31 日 110530.123 太平洋標準時 yyyy/MM/dd HHmmss.SSSz
TIMESTAMP 2019-01-02T11:22:33Z または 2019-01-02T11:22:33.123Z yyyy-MM-dd'T'HH:mm:ss [.SSS]VV 入力列が 2019-01-02T11:22:33Z と 2019-01-02T11:22:33.123Z の場合、この形式のタイムスタンプはデフォルトの形式で解析できます。独自のフォーマット パラメータを指定する必要はありません。yyyy-MM-dd'T'HH:mm:ss[.SSS]VV を使用すると、両方のケースに対応します。接尾辞「Z」は文字リテラルではなくタイムゾーン ID として解析する必要があるため、yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z' は使用できません。内部的には、タイムスタンプ列は java.time.Instant に変換されます。そのため、UTC で指定するか、タイムゾーン情報を設定する必要があります。2019-01-02 11:22:33 のようなローカル日時は、有効な java.time.Instant として解析されません。

Text Files on Cloud Storage to Cloud Spanner テンプレートの実行

Console

Cloud Console で実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Text Files on Cloud Storage to Cloud Spanner template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールでの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,importManifest=GCS_PATH_TO_IMPORT_MANIFEST'

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定する必要があります。以下を置き換えます。

  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • INSTANCE_ID: Cloud Spanner インスタンス ID
  • DATABASE_ID: Cloud Spanner データベース ID
  • GCS_PATH_TO_IMPORT_MANIFEST: インポート マニフェスト ファイルへの Cloud Storage パス
  • JOB_NAME: 任意のジョブ名。

API

REST API で実行する

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "importManifest": "GCS_PATH_TO_IMPORT_MANIFEST"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation を指定する必要があります。以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • DATAFLOW_REGION: Dataflow ジョブを実行するリージョン(例: us-central1
  • INSTANCE_ID: Cloud Spanner インスタンス ID
  • DATABASE_ID: Cloud Spanner データベース ID
  • GCS_PATH_TO_IMPORT_MANIFEST: インポート マニフェスト ファイルへの Cloud Storage パス
  • JOB_NAME: 任意のジョブ名。

Java Database Connectivity(JDBC)to BigQuery

JDBC to BigQuery テンプレートは、リレーショナル データベース テーブルから既存の BigQuery テーブルにデータをコピーするバッチ パイプラインです。このパイプラインは、JDBC を使用してリレーショナル データベースに接続します。このテンプレートを使用すると、使用可能な JDBC ドライバがある任意のリレーショナル データベースから BigQuery にデータをコピーできます。保護をさらに強化するために、Cloud KMS 鍵で暗号化された Base64 でエンコードされたユーザー名、パスワード、接続文字列パラメータを渡すこともできます。詳しくは Cloud KMS API 暗号化エンドポイントで、ユーザー名、パスワード、接続文字列パラメータの暗号化の詳細をご覧ください。

このパイプラインの要件:

  • リレーショナル データベース用の JDBC ドライバが使用可能である必要があります。
  • パイプラインを実行する前に BigQuery テーブルが存在している必要があります。
  • BigQuery テーブルに互換性のあるスキーマが必要です。
  • リレーショナル データベースは、Dataflow が実行されているサブネットからアクセス可能である必要があります。

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

パラメータ 説明
driverJars ドライバ JAR ファイルのカンマ区切りのリスト。例:gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar
driverClassName JDBC ドライバのクラス名。例: com.mysql.jdbc.Driver
connectionURL JDBC 接続 URL 文字列。例: jdbc:mysql://some-host:3306/sampledbBase64 でエンコードされ、Cloud KMS 鍵で暗号化される文字列として渡すことができます。
query ソースで実行されるクエリでデータを抽出します。例:select * from sampledb.sample_table
outputTable BigQuery 出力テーブルの場所。<my-project>:<my-dataset>.<my-table> の形式で指定します。
bigQueryLoadingTemporaryDirectory BigQuery 読み込みプロセスの一時ディレクトリ。例:gs://<my-bucket>/my-files/temp_dir
connectionProperties (オプション)JDBC 接続に使用するプロパティ文字列。例:unicode=true&characterEncoding=UTF-8
username (省略可)JDBC 接続に使用するユーザー名。Cloud KMS 鍵で暗号化された Base64 エンコード文字列として渡すことができます。
password (省略可)JDBC 接続に使用するパスワード。Cloud KMS 鍵で暗号化された Base64 エンコード文字列として渡すことができます。
KMSEncryptionKey (省略可)ユーザー名、パスワード、接続文字列を復号するための Cloud KMS 暗号鍵。Cloud KMS 鍵が渡された場合、ユーザー名、パスワード、接続文字列はすべて暗号化されて渡されます。

BigQuery テンプレートへの JDBC の実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the JDBC to BigQuery template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=PROJECT_ID:DATASET.TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名
  • DRIVER_PATHS: カンマで区切った JDBC ドライバの Cloud Storage パス
  • DRIVER_CLASS_NAME: ドライブクラス名
  • JDBC_CONNECTION_URL: JDBC 接続 URL
  • SOURCE_SQL_QUERY: ソース データベースで実行する SQL クエリ
  • DATASET: BigQuery データセット。TABLE_NAME は BigQuery テーブル名に置き換えます
  • PATH_TO_TEMP_DIR_ON_GCS: 一時ディレクトリへの Cloud Storage パス
  • CONNECTION_PROPERTIES: 必要に応じて JDBC 接続プロパティ
  • CONNECTION_USERNAME: JDBC 接続のユーザー名
  • CONNECTION_PASSWORD: JDBC 接続パスワード
  • KMS_ENCRYPTION_KEY: Cloud KMS 暗号鍵

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "PROJECT_ID:DATASET.TABLE_NAME",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名
  • DRIVER_PATHS: カンマで区切った JDBC ドライバの Cloud Storage パス
  • DRIVER_CLASS_NAME: ドライブクラス名
  • JDBC_CONNECTION_URL: JDBC 接続 URL
  • SOURCE_SQL_QUERY: ソース データベースで実行する SQL クエリ
  • DATASET: BigQuery データセット。TABLE_NAME は BigQuery テーブル名に置き換えます
  • PATH_TO_TEMP_DIR_ON_GCS: 一時ディレクトリへの Cloud Storage パス
  • CONNECTION_PROPERTIES: 必要に応じて JDBC 接続プロパティ
  • CONNECTION_USERNAME: JDBC 接続のユーザー名
  • CONNECTION_PASSWORD: JDBC 接続パスワード
  • KMS_ENCRYPTION_KEY: Cloud KMS 暗号鍵

Apache Cassandra to Cloud Bigtable

Apache Cassandra to Cloud Bigtable テンプレートは、Apache Cassandra から Cloud Bigtable にテーブルをコピーします。このテンプレートに対して行う必要のある構成は最小限に抑えられており、Cassandra のテーブル構造を Cloud Bigtable で可能な限り再現します。

Apache Cassandra to Cloud Bigtable テンプレートは次の場合に役立ちます。

  • 短いダウンタイムしか許容されない状況で Apache Cassandra データベースを移行する。
  • グローバルなサービス提供を目的として、Cassandra のテーブルを Cloud Bigtable に定期的に複製する。

このパイプラインの要件:

  • パイプラインを実行する前に、複製先の Cloud Bigtable テーブルが存在していること。
  • Dataflow ワーカーと Apache Cassandra ノードの間のネットワーク接続。

型変換

Apache Cassandra to Cloud Bigtable テンプレートでは、Apache Cassandra のデータ型が Cloud Bigtable のデータ型に自動的に変換されます。

ほとんどのプリミティブは Cloud Bigtable と Apache Cassandra で同じように表現されますが、次のプリミティブは異なる方法で表現されます。

  • DateTimestampDateTime オブジェクトに変換されます。
  • UUIDString に変換されます。
  • VarintBigDecimal に変換されます。

Apache Cassandra は、TupleListSetMap などの複雑な型もネイティブにサポートしています。Apache Beam にはタプルに対応する型がないため、このパイプラインではタプルはサポートされません。

たとえば、Apache Cassandra では「mylist」という名前の List 型の列を使用し、次の表のような値を格納できます。

row mylist
1 (a,b,c)

このリスト列はパイプラインによって 3 つの異なる列に展開されます(Cloud Bigtable ではこれを列修飾子といいます)。列の名前は「mylist」ですが、「mylist[0]」のようにリスト内のアイテムのインデックスがパイプラインによって追加されます。

row mylist[0] mylist[1] mylist[2]
1 a b c

このパイプラインでは、セットもリストと同じように処理されますが、セルがキーか値かを示す接尾辞が追加されます。

row mymap
1 {"first_key":"first_value","another_key":"different_value"}

変換後、テーブルは次のようになります。

row mymap[0].key mymap[0].value mymap[1].key mymap[1].value
1 first_key first_value another_key different_value

主キー変換

Apache Cassandra では、主キーはデータ定義言語を使用して定義されます。主キーは、単純、複合、クラスタ化された列の複合のいずれかです。Cloud Bigtable では、バイト配列を辞書順に並べ替える行キーの手動作成がサポートされています。このパイプラインはキーの型の情報を自動で収集し、複数の値に基づいて行キーを作成するためのベスト プラクティスに基づいてキーを作成します。

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

パラメータ 説明
cassandraHosts Apache Cassandra ノードのホストをカンマ区切りのリストで表したもの。
cassandraPort (省略可)ノード上の Apache Cassandra に到達する TCP ポート(デフォルトは 9042)。
cassandraKeyspace テーブルが配置されている Apache Cassandra キースペース。
cassandraTable コピーする Apache Cassandra テーブル。
bigtableProjectId Apache Cassandra テーブルがコピーされる Cloud Bigtable インスタンスの Google Cloud プロジェクト ID。
bigtableInstanceId Apache Cassandra テーブルをコピーする Cloud Bigtable インスタンス ID。
bigtableTableId Apache Cassandra テーブルをコピーする Cloud Bigtable テーブルの名前。
defaultColumnFamily (省略可)Cloud Bigtable テーブルの列ファミリーの名前(デフォルトは default)。
rowKeySeparator (省略可)行キーの作成に使用される区切り文字(デフォルトは #)。

Apache Cassandra to Cloud Bigtable テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Apache Cassandra to Cloud Bigtable template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable \
    --parameters\
bigtableProjectId=PROJECT_ID,\
bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
bigtableTableId=BIGTABLE_TABLE_ID,\
cassandraHosts=CASSANDRA_HOSTS,\
cassandraKeyspace=CASSANDRA_KEYSPACE,\
cassandraTable=CASSANDRA_TABLE

以下を置き換えます。

  • PROJECT_ID: Cloud Bigtable が配置されているプロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BIGTABLE_INSTANCE_ID: Cloud Bigtable インスタンス ID
  • BIGTABLE_TABLE_ID: Cloud Bigtable テーブル名
  • CASSANDRA_HOSTS: Apache Cassandra のホストリスト。複数のホストがある場合は、カンマをエスケープするための手順に従ってください
  • CASSANDRA_KEYSPACE: テーブルが配置されている Apache Cassandra キースペース
  • CASSANDRA_TABLE: 移行する必要がある Apache Cassandra テーブル

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
       "bigtableTableId": "BIGTABLE_TABLE_ID",
       "cassandraHosts": "CASSANDRA_HOSTS",
       "cassandraKeyspace": "CASSANDRA_KEYSPACE",
       "cassandraTable": "CASSANDRA_TABLE"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: Cloud Bigtable が配置されているプロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • BIGTABLE_INSTANCE_ID: Cloud Bigtable インスタンス ID
  • BIGTABLE_TABLE_ID: Cloud Bigtable テーブル名
  • CASSANDRA_HOSTS: Apache Cassandra のホストリスト。複数のホストがある場合は、カンマをエスケープするための手順に従ってください
  • CASSANDRA_KEYSPACE: テーブルが配置されている Apache Cassandra キースペース
  • CASSANDRA_TABLE: 移行する必要がある Apache Cassandra テーブル

Apache Hive to BigQuery

Apache Hive to BigQuery テンプレートは、Apache Hive テーブルから読み取り、BigQuery テーブルに書き込むバッチ パイプラインです。

このパイプラインの要件:

  • パイプラインを実行する前に、ターゲットの BigQuery テーブルが存在する。
  • Dataflow ワーカーと Apache Hive ノードの間にネットワーク接続が存在する。
  • Dataflow ワーカーと Apache Thrift サーバーノードの間にネットワーク接続が存在する。
  • パイプラインを実行する前に、BigQuery データセットが存在する。

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

パラメータ 説明
metastoreUri Apache Thrift サーバー URI(thrift://thrift-server-host:port など)。
hiveDatabaseName エクスポートするテーブルを含む Apache Hive データベース名。
hiveTableName エクスポートする Apache Hive テーブル名。
outputTableSpec BigQuery 出力テーブルの場所。<my-project>:<my-dataset>.<my-table> の形式で指定します。
hivePartitionCols (省略可)Apache Hive パーティション列のカンマ区切りのリスト。
filterString (省略可)入力 Apache Hive テーブルでフィルタ文字列。
partitionType (省略可)BigQuery のパーティション タイプ。現在、Time だけがサポートされています。
partitionCol (省略可)出力 BigQuery テーブルのパーティション列名。

Apache Hive to BigQuery テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Apache Hive to BigQuery template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Hive_To_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Hive_To_BigQuery \
    --parameters\
metastoreUri=METASTORE_URI,\
hiveDatabaseName=HIVE_DATABASE_NAME,\
hiveTableName=HIVE_TABLE_NAME,\
outputTableSpec=PROJECT_ID:DATASET.TABLE_NAME,\
hivePartitionCols=HIVE_PARTITION_COLS,\
filterString=FILTER_STRING,\
partitionType=PARTITION_TYPE,\
partitionCol=PARTITION_COL

以下を置き換えます。

  • PROJECT_ID: BigQuery が配置されているプロジェクト ID
  • JOB_NAME: 任意のジョブ名
  • DATASET: BigQuery データセット
  • TABLE_NAME: BigQuery テーブル名
  • METASTORE_URI: Apache Thrift サーバー URI
  • HIVE_DATABASE_NAME: エクスポートするテーブルを含む Apache Hive データベース名
  • HIVE_TABLE_NAME: エクスポートする Apache Hive テーブル名
  • HIVE_PARTITION_COLS: Apache Hive パーティション列のカンマ区切りのリスト。
  • FILTER_STRING: Apache Hive 入力テーブルのフィルタ文字列
  • PARTITION_TYPE: BigQuery のパーティション タイプ
  • PARTITION_COL: BigQuery パーティション列の名前

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/Hive_To_BigQuery

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Hive_To_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "metastoreUri": "METASTORE_URI",
       "hiveDatabaseName": "HIVE_DATABASE_NAME",
       "hiveTableName": "HIVE_TABLE_NAME",
       "outputTableSpec": "PROJECT_ID:DATASET.TABLE_NAME",
       "hivePartitionCols": "HIVE_PARTITION_COLS",
       "filterString": "FILTER_STRING",
       "partitionType": "PARTITION_TYPE",
       "partitionCol": "PARTITION_COL"
   },
   "environment": { "zone": "us-central1-f" }
}

以下を置き換えます。

  • PROJECT_ID: BigQuery が配置されているプロジェクト ID
  • JOB_NAME: 任意のジョブ名
  • DATASET: BigQuery データセット
  • TABLE_NAME: BigQuery テーブル名
  • METASTORE_URI: Apache Thrift サーバー URI
  • HIVE_DATABASE_NAME: エクスポートするテーブルを含む Apache Hive データベース名
  • HIVE_TABLE_NAME: エクスポートする Apache Hive テーブル名
  • HIVE_PARTITION_COLS: Apache Hive パーティション列のカンマ区切りのリスト。
  • FILTER_STRING: Apache Hive 入力テーブルのフィルタ文字列
  • PARTITION_TYPE: BigQuery のパーティション タイプ
  • PARTITION_COL: BigQuery パーティション列の名前

File Format Conversion(Avro、Parquet、CSV)

File Format Conversion テンプレートは、Cloud Storage に格納されたファイルをサポートされている形式から別の形式に変換するバッチ パイプラインです。

次の形式変換がサポートされています。

  • CSV から Avro
  • CSV から Parquet
  • Avro から Parquet
  • Parquet から Avro

このパイプラインの要件:

  • パイプラインを実行する前に、出力先の Cloud Storage バケットが存在すること。

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

パラメータ 説明
inputFileFormat 入力ファイル形式。[csv, avro, parquet] のいずれかにする必要があります。
outputFileFormat 出力ファイル形式。[avro, parquet] のいずれかにする必要があります。
inputFileSpec 入力ファイルの Cloud Storage パスのパターン。例: gs://bucket-name/path/*.csv
outputBucket 出力ファイルを書き込む Cloud Storage フォルダ。このパスはスラッシュで終わる必要があります。例: gs://bucket-name/output/
schema Avro スキーマ ファイルへの Cloud Storage パス。例: gs://bucket-name/schema/my-schema.avsc
containsHeaders (省略可)入力 CSV ファイルにはヘッダー レコード(true/false)が含まれています。デフォルト値は false です。CSV ファイルを読み込む場合にのみ必要です。
csvFormat (省略可)レコードの解析に使用する CSV 形式の仕様。デフォルト値は Default です。 詳細については、Apache Commons CSV 形式をご覧ください。
delimiter (省略可)入力 CSV ファイルで使用されるフィールド区切り文字。
outputFilePrefix (省略可)出力ファイルの接頭辞。デフォルト値は output です。
numShards (省略可)出力ファイルのシャード数。

File Format Conversion テンプレートの実行

Console

Cloud Console からの実行
  1. Cloud Console の [Dataflow] ページに移動します。
  2. Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Console の [テンプレートからジョブを作成] ボタン
  5. [Dataflow テンプレート] プルダウン メニューから the Convert file formats template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

gcloud コマンドライン ツールからの実行

注: テンプレートを実行する gcloud コマンドライン ツールを使用するには、Cloud SDK のバージョン 284.0.0 以降が必要です。

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/flex/File_Format_Conversion
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/File_Format_Conversion \
    --parameters \
inputFileFormat=INPUT_FORMAT,\
outputFileFormat=OUTPUT_FORMAT,\
inputFileSpec=INPUT_FILES,\
schema=SCHEMA,\
outputBucket=OUTPUT_FOLDER

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • INPUT_FORMAT: 入力ファイルのファイル形式。[csv, avro, parquet] のいずれかにする必要があります
  • OUTPUT_FORMAT: 出力ファイルのファイル形式。[avro, parquet] のいずれかにする必要があります
  • INPUT_FILES: 入力ファイルのパスのパスパターン
  • OUTPUT_FOLDER: 出力ファイルを格納する Cloud Storage フォルダ
  • SCHEMA: Avro スキーマ ファイルのパス
  • LOCATION: 実行リージョン(例: us-central1

API

REST API からの実行

このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。

gs://dataflow-templates/VERSION/flex/File_Format_Conversion

REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileFormat": "INPUT_FORMAT",
          "outputFileFormat": "OUTPUT_FORMAT",
          "inputFileSpec": "INPUT_FILES",
          "schema": "SCHEMA",
          "outputBucket": "OUTPUT_FOLDER"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/latest/flex/File_Format_Conversion",
   }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID
  • JOB_NAME: 任意のジョブ名。
  • INPUT_FORMAT: 入力ファイルのファイル形式。[csv, avro, parquet] のいずれかにする必要があります
  • OUTPUT_FORMAT: 出力ファイルのファイル形式。[avro, parquet] のいずれかにする必要があります
  • INPUT_FILES: 入力ファイルのパスのパスパターン
  • OUTPUT_FOLDER: 出力ファイルを格納する Cloud Storage フォルダ
  • SCHEMA: Avro スキーマ ファイルのパス
  • LOCATION: 実行リージョン(例: us-central1