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

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

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

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 インスタンスの GCP プロジェクトの 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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [OUTPUT_DIRECTORY] は、書き込み先の Cloud Storage パスに置き換えます。例: gs://mybucket/somefolder
  • [FILENAME_PREFIX] は、Avro ファイル名の接頭辞に置き換えます。例: output-
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],outputDirectory=[OUTPUT_DIRECTORY],filenamePrefix=[FILENAME_PREFIX]

API

REST API からの実行

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

gs://dataflow-templates/VERSION/

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

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [OUTPUT_DIRECTORY] は、書き込み先の Cloud Storage パスに置き換えます。例: gs://mybucket/somefolder
  • [FILENAME_PREFIX] は、Avro ファイル名の接頭辞に置き換えます。例: output-
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "outputDirectory": "[OUTPUT_DIRECTORY]",
       "filenamePrefix": "[FILENAME_PREFIX]",
   },
   "environment": { "zone": "us-central1-f" }
}

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 インスタンスの GCP プロジェクトの 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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの 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-
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],destinationPath=[DESTINATION_PATH],filenamePrefix=[FILENAME_PREFIX]

API

REST API からの実行

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

gs://dataflow-templates/VERSION/

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

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの 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-
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "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" }
}

Cloud Datastore to Cloud Storage Text

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

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

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

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

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

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

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Datastore から Cloud Storage へのテキスト テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
  • YOUR_DATASTORE_KIND を Datastore エンティティのタイプに置き換えます。
  • YOUR_DATASTORE_NAMESPACE を Datastore エンティティの名前空間に置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM YOUR_DATASTORE_KIND",\
datastoreReadProjectId=YOUR_PROJECT_ID,\
datastoreReadNamespace=YOUR_DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/

API

REST API からの実行

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

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
  • YOUR_DATASTORE_KIND を Datastore エンティティのタイプに置き換えます。
  • YOUR_DATASTORE_NAMESPACE を Datastore エンティティの名前空間に置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM YOUR_DATASTORE_KIND"
       "datastoreReadProjectId": "YOUR_PROJECT_ID",
       "datastoreReadNamespace": "YOUR_DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Spanner to Cloud Storage Avro

Cloud Spanner to 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 バケットが存在すること。
  • Cloud Dataflow ジョブの実行に必要な Cloud IAM の役割に加え、Cloud Spanner データの読み取りと Cloud Storage バケットへの書き込みに対応できる Cloud IAM の役割も必要です。

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

パラメータ 説明
instanceId エクスポートする Cloud Spanner データベースのインスタンス ID。
databaseId エクスポートする Cloud Spanner データベースのデータベース ID。
outputDir Avro ファイルのエクスポート先にする Cloud Storage パス。エクスポート ジョブによって、このパスの下にディレクトリが新規作成されます。ここに、エクスポートされたファイルが格納されます。

テンプレートの実行

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから the Cloud Spanner to Cloud Storage Avro template を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

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

  • [DATAFLOW_REGION] を、Cloud Dataflow ジョブを実行するリージョンで置き換えます(たとえば、us-central1)。
  • [YOUR_INSTANCE_ID] は、Cloud Spanner インスタンスの ID に置き換えます。
  • [YOUR_DATABASE_ID] は、Cloud Spanner データベースの ID に置き換えます。
  • [YOUR_GCS_DIRECTORY] を、Avro ファイルがエクスポートされる がインポートされました
  • [JOB_NAME] を任意のジョブ名に置き換えます。
    • ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
    • GCP Console の Cloud Spanner 部分に表示されるジョブ名は、 エクスポート cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] の形式になっている必要があります。
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],outputDir=[YOUR_GCS_DIRECTORY]

API

REST API から実行する

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

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [DATAFLOW_REGION] を、Cloud Dataflow ジョブを実行するリージョンで置き換えます(たとえば、us-central1)。
  • [YOUR_INSTANCE_ID] は、Cloud Spanner インスタンスの ID に置き換えます。
  • [YOUR_DATABASE_ID] は、Cloud Spanner データベースの ID に置き換えます。
  • [YOUR_GCS_DIRECTORY] を、Avro ファイルがエクスポートされる がインポートされました
  • [JOB_NAME] を任意のジョブ名に置き換えます。
    • ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
    • GCP Console の Cloud Spanner 部分に表示されるジョブ名は、 エクスポート cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] の形式になっている必要があります。
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "outputDir": "gs://[YOUR_GCS_DIRECTORY]"
   }
}

Cloud Spanner to Cloud Storage Text

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

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

  • パイプラインを実行する前に、入力された Cloud Spanner テーブルが存在する必要があります。

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

パラメータ 説明
spannerProjectId データを読み取る Cloud Spanner データベースの GCP プロジェクト ID。
spannerDatabaseId 要求されたテーブルのデータベース。
spannerInstanceId 要求されたテーブルのインスタンス。
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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Spanner to Cloud Storage のテキスト テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_DATABASE_ID を Cloud Spanner データベース ID に置き換えます。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
  • YOUR_INSTANCE_ID を Cloud Spanner インスタンス ID に置き換えます。
  • YOUR_TABLE_ID を Cloud Spanner のテーブル ID に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードが含まれている .js ファイルへのクラウド ストレージパスで置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=YOUR_PROJECT_ID,\
spannerDatabaseId=YOUR_DATABASE_ID,\
spannerInstanceId=YOUR_INSTANCE_ID,\
spannerTable=YOUR_TABLE_ID,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION

API

REST API からの実行

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

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_DATABASE_ID を Cloud Spanner データベース ID に置き換えます。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
  • YOUR_INSTANCE_ID を Cloud Spanner インスタンス ID に置き換えます。
  • YOUR_TABLE_ID を Cloud Spanner のテーブル ID に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードが含まれている .js ファイルへのクラウド ストレージパスで置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "YOUR_PROJECT_ID",
       "spannerDatabaseId": "YOUR_DATABASE_ID",
       "spannerInstanceId": "YOUR_INSTANCE_ID",
       "spannerTable": "YOUR_TABLE_ID",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

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 インスタンスの GCP プロジェクトの ID。
bigtableInstanceId テーブルが含まれる Cloud Bigtable インスタンスの ID。
bigtableTableId インポート対象の Cloud Bigtable テーブルの ID。
inputFilePattern データが存在する Cloud Storage パスのパターン。例: gs://mybucket/somefolder/prefix*

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

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Spanner to Cloud Storage のテキスト テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [INPUT_FILE_PATTERN] は、データが存在する Cloud Storage パスのパターンに置き換えます。例: gs://mybucket/somefolder/prefix*
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],inputFilePattern=[INPUT_FILE_PATTERN]

API

REST API からの実行

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

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

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

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [INPUT_FILE_PATTERN] は、データが存在する Cloud Storage パスのパターンに置き換えます。例: gs://mybucket/somefolder/prefix*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "inputFilePattern": "[INPUT_FILE_PATTERN]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro to Cloud Spanner

Cloud Storage Avro files to Cloud Spanner テンプレートは、Cloud Storage から 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 パス。

テンプレートの実行

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Avro to Cloud Spanner テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/ GCS_Avro_to_Cloud_Spanner 

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [INPUT_FILE_PATTERN] は、データが存在する Cloud Storage パスのパターンに置き換えます。例: gs://mybucket/somefolder/prefix*
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/ GCS_Avro_to_Cloud_Spanner ' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],inputDir=[YOUR_GCS_DIRECTORY]'

API

REST API から実行する

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

gs://dataflow-templates/VERSION/ GCS_Avro_to_Cloud_Spanner 

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの ID に置き換えます。
  • [INSTANCE_ID] は、テーブルが含まれる Cloud Bigtable インスタンスの ID に置き換えます。
  • [TABLE_ID] は、エクスポート対象の Cloud Bigtable テーブルの ID に置き換えます。
  • [INPUT_FILE_PATTERN] は、データが存在する Cloud Storage パスのパターンに置き換えます。例: gs://mybucket/somefolder/prefix*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "inputDir": "gs://[YOUR_GCS_DIRECTORY]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

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 インスタンスの GCP プロジェクトの 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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Avro to Cloud Spanner テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/ GCS_Avro_to_Cloud_Spanner 

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの 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*
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ GCS_Avro_to_Cloud_Spanner  \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],sourcePattern=[SOURCE_PATTERN]

API

REST API からの実行

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

gs://dataflow-templates/VERSION/ GCS_Avro_to_Cloud_Spanner 

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

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • [PROJECT_ID] は、データを読み取る Cloud Bigtable インスタンスの GCP プロジェクトの 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*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/ GCS_Avro_to_Cloud_Spanner 
{
   "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" }
}

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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Text to BigQuery テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_JAVASCRIPT_FUNCTION を UDF の名前に置き換えます。
  • PATH_TO_BIGQUERY_SCHEMA_JSON を、スキーマ定義を含む JSON ファイルの Cloud Storage パスに置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
  • PATH_TO_YOUR_TEXT_DATA を、テキスト データセットの Cloud Storage パスに置き換えます。
  • BIGQUERY_TABLE を BigQuery テーブル名に置き換えます。
  • PATH_TO_TEMP_DIR_ON_GCS を、一時ディレクトリへの Cloud Storage パスに置き換えます。
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_YOUR_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

API

REST API からの実行

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

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_JAVASCRIPT_FUNCTION を UDF の名前に置き換えます。
  • PATH_TO_BIGQUERY_SCHEMA_JSON を、スキーマ定義を含む JSON ファイルの Cloud Storage パスに置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
  • PATH_TO_YOUR_TEXT_DATA を、テキスト データセットの Cloud Storage パスに置き換えます。
  • BIGQUERY_TABLE を BigQuery テーブル名に置き換えます。
  • PATH_TO_TEMP_DIR_ON_GCS を、一時ディレクトリへの Cloud Storage パスに置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_YOUR_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text to Cloud Datastore

Cloud Storage Text to Cloud Datastore テンプレートは、Cloud Storage に格納されているテキスト ファイルを読み取って JSON でエンコードし、それらのエンティティを Cloud Datastore に書き込むバッチ パイプラインです。 入力テキスト ファイルの各行は、https://cloud.google.com/datastore/docs/reference/rest/v1/Entity で指定されている 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 Cloud Datastore エンティティを書き込む GCP プロジェクトのプロジェクト ID。
errorWritePath 処理中に発生したエラーを書き込むために使用するエラーログ出力ファイル。例: gs://bucket-name/errors.txt

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

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Text to Datastore テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • PATH_TO_INPUT_TEXT_FILES を、Cloud Storage 上の入力ファイルのパターンに置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
  • ERROR_FILE_WRITE_PATH を、Cloud Storage 上のエラー・ファイルへの必要なパスに置き換えます。
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=YOUR_JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=YOUR_PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

API

REST API からの実行

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

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • PATH_TO_INPUT_TEXT_FILES を、Cloud Storage 上の入力ファイルのパターンに置き換えます。
  • YOUR_JAVASCRIPT_FUNCTION を JavaScript 関数名に置き換えます。
  • PATH_TO_JAVASCRIPT_UDF_FILE を、JavaScript コードを含む .js ファイルへの Cloud Storage パスに置き換えます。
  • ERROR_FILE_WRITE_PATH を、Cloud Storage 上のエラー・ファイルへの必要なパスに置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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": "YOUR_JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "YOUR_PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text to Cloud Pub/Sub (Batch)

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

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

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

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

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

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

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

Console

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Text to Cloud Pub/Sub (Batch) テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_TOPIC_NAME を Cloud Pub/Sub のトピック名に置き換えます。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/files/*.json,\
outputTopic=projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME

API

REST API からの実行

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

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • YOUR_TOPIC_NAME を Cloud Pub/Sub のトピック名に置き換えます。
  • YOUR-BUCKET-NAME を Cloud Storage バケットの名前に置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/files/*.json",
       "outputTopic": "projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

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 として解析されません。

テンプレートの実行

Console

Google Cloud Platform Console での実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから Cloud Storage Text to Cloud Spanner テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

gcloud

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

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

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

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

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

  • [DATAFLOW_REGION] を Cloud Dataflow ジョブを実行するリージョンで置き換えます(たとえば、us-central1)。
  • [YOUR_INSTANCE_ID] は、Cloud Spanner インスタンスの ID に置き換えます。
  • [YOUR_DATABASE_ID] は、Cloud Spanner データベースの ID に置き換えます。
  • [GCS_PATH_TO_IMPORT_MANIFEST] を、インポート マニフェスト ファイルへの Cloud Storage パスに置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],importManifest=[GCS_PATH_TO_IMPORT_MANIFEST]'

API

REST API を使用して実行する

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

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

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

  • [YOUR_PROJECT_ID] を実際のプロジェクト ID に置き換えます。
  • [DATAFLOW_REGION] を Cloud Dataflow ジョブを実行するリージョンで置き換えます(たとえば、us-central1)。
  • [YOUR_INSTANCE_ID] は、Cloud Spanner インスタンスの ID に置き換えます。
  • [YOUR_DATABASE_ID] は、Cloud Spanner データベースの ID に置き換えます。
  • [GCS_PATH_TO_IMPORT_MANIFEST] を、インポート マニフェスト ファイルへの Cloud Storage パスに置き換えます。
  • [JOB_NAME] を任意のジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner

{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "importManifest": "[GCS_PATH_TO_IMPORT_MANIFEST]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Java Database Connectivity (JDBC) to BigQuery

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

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

  • リレーショナル データベース用の JDBC ドライバが使用可能である必要があります。
  • パイプラインの実行前に BigQuery テーブルが存在する必要があります。
  • BigQuery テーブルに互換性のあるスキーマが必要です。
  • リレーショナル データベースは、Cloud 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/sampledbCloud KMS 鍵で暗号化された Base64 エンコード文字列として渡すことができます。
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

Google Cloud Platform Console からの実行
  1. GCP Console の Cloud Dataflow ページに移動します。
  2. Cloud Dataflow ページに移動
  3. [テンプレートからジョブを作成] をクリックします。
  4. Cloud Platform Console の [テンプレートからジョブを作成] ボタン
  5. [Cloud Dataflow テンプレート] プルダウン メニューから JDBC to BigQuery テンプレート を選択します。
  6. [ジョブ名] フィールドにジョブ名を入力します。 ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  7. 表示されるパラメータ フィールドにパラメータ値を入力します。
  8. [ジョブを実行] をクリックします。

GCLOUD

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

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

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

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • DRIVER_PATHS を、カンマで区切った JDBC ドライバの Cloud Storage パスに置き換えます。
  • DRIVER_CLASS_NAME をドライブクラス名に置き換えます。
  • JDBC_CONNECTION_URL を JDBC 接続の URL に置き換えます。
  • SOURCE_SQL_QUERY を、ソース データベースで実行する SQL クエリに置き換えます。
  • YOUR_DATASET を BigQuery データセットに置き換え、YOUR_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 暗号鍵に置き換えます。
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=YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

API

REST API からの実行

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

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

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

このサンプルの次の値は置き換える必要があります。

  • YOUR-PROJECT-ID をプロジェクト ID に置き換えます。
  • JOB_NAME を、選択したジョブ名に置き換えます。ジョブ名は正規表現 [a-z]([-a-z0-9]{0,38}[a-z0-9])? と一致する必要があります。
  • DRIVER_PATHS を、カンマで区切った JDBC ドライバの Cloud Storage パスに置き換えます。
  • DRIVER_CLASS_NAME をドライブクラス名に置き換えます。
  • JDBC_CONNECTION_URL を JDBC 接続の URL に置き換えます。
  • SOURCE_SQL_QUERY を、ソース データベースで実行する SQL クエリに置き換えます。
  • YOUR_DATASET を BigQuery データセットに置き換え、YOUR_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 暗号鍵に置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_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" }
}