Google はオープンソースの Dataflow テンプレートを提供しています。テンプレートに関する一般的な情報については、概要ページをご覧ください。Google が提供するすべてのテンプレートのリストについては、Google 提供のテンプレートの概要ページをご覧ください。
このページでは、以下のバッチ テンプレートについて説明します。
- BigQuery to Cloud Storage TFRecords
- BigQuery to Cloud Storage Parquet (Storage API)
- Cloud Bigtable to Cloud Storage Avro
- Cloud Bigtable to Cloud Storage Parquet
- Cloud Bigtable to Cloud Storage SequenceFile
- Datastore to Cloud Storage Text
- Cloud Spanner to Cloud Storage Avro
- Cloud Spanner to Cloud Storage Text
- Cloud Storage Avro to Cloud Bigtable
- Cloud Storage Avro to Cloud Spanner
- Cloud Storage Parquet to Cloud Bigtable
- Cloud Storage SequenceFile to Cloud Bigtable
- Cloud Storage Text to BigQuery
- Cloud Storage Text to Datastore
- Cloud Storage Text to Pub/Sub (Batch)
- Cloud Storage Text to Cloud Spanner
- Java Database Connectivity(JDBC)to BigQuery
- Apache Cassandra to Cloud Bigtable
- Apache Hive to BigQuery
- File Format Conversion
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 ファイル テンプレートの実行
コンソール
Google Cloud Console から実行する- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールから実行する
注: gcloud
コマンドライン ツールを使用してテンプレートを実行するには、Cloud SDK バージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
HTTP リクエストを行うには、次のように値を置き換えます。
[YOUR_PROJECT_ID]
を実際のプロジェクト ID に置き換えます。[JOB_NAME]
は、任意のジョブ名に置き換えます。[READ_QUERY]
は、実行する BigQuery クエリに置き換えます。[OUTPUT_DIRECTORY]
は、出力データセットの Cloud Storage パス接頭辞に置き換えます。[TRAINING_PERCENTAGE]
は、トレーニング データセットの分割割合の小数値に置き換えます。[TESTING_PERCENTAGE]
は、テスト データセットの分割割合の小数値に置き換えます。[VALIDATION_PERCENTAGE]
は、検証データセットの分割割合の小数値に置き換えます。[OUTPUT_SUFFIX]
は、使用する出力 TensorFlow レコードのファイル接尾辞に置き換えます。
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=[FILENAME_SUFFIX]
API
REST API から実行するこのテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
REST API でテンプレートを実行するには、HTTP POST リクエストと一緒にプロジェクト ID を送信します。このリクエストには承認が必要です。
HTTP リクエストを行うには、次のように値を置き換えます。
[YOUR_PROJECT_ID]
を実際のプロジェクト ID に置き換えます。[JOB_NAME]
は、任意のジョブ名に置き換えます。[READ_QUERY]
は、実行する BigQuery クエリに置き換えます。[OUTPUT_DIRECTORY]
は、出力データセットの Cloud Storage パス接頭辞に置き換えます。[TRAINING_PERCENTAGE]
は、トレーニング データセットの分割割合の小数値に置き換えます。[TESTING_PERCENTAGE]
は、テスト データセットの分割割合の小数値に置き換えます。[VALIDATION_PERCENTAGE]
は、検証データセットの分割割合の小数値に置き換えます。[OUTPUT_SUFFIX]
は、使用する出力 TensorFlow レコードのファイル接尾辞に置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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":"[FILENAME_SUFFIX]" }, "environment": { "zone": "us-central1-f" } }
BigQuery to Cloud Storage Parquet (Storage API)
BigQuery 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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the BigQuery to Parquet template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 284.0.0 以降が必要です。
このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/flex/BigQuery_To_Parquet
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- BIGQUERY_TABLE は、BigQuery テーブル名に置き換えます。
- OUTPUT_DIRECTORY は、出力ファイル用の Cloud Storage フォルダに置き換えます。
- NUM_SHARDS は、出力ファイルのシャード数に置き換えます。
- FIELDS は、入力 BigQuery テーブルから選択するフィールドのカンマ区切りのリストに置き換えます。
- LOCATION は、実行リージョンに置き換えます。例:
us-central1
gcloud beta dataflow flex-template run JOB_NAME \ --project=YOUR_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
API
REST API からの実行このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/flex/BigQuery_To_Parquet
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- BIGQUERY_TABLE は、BigQuery テーブル名に置き換えます。
- OUTPUT_DIRECTORY は、出力ファイル用の Cloud Storage フォルダに置き換えます。
- NUM_SHARDS は、出力ファイルのシャード数に置き換えます。
- FIELDS は、入力 BigQuery テーブルから選択するフィールドのカンマ区切りのリストに置き換えます。
- LOCATION は、実行リージョンに置き換えます。例:
us-central1
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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", } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to Avro template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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-
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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-
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 |
出力する Parquet ファイルの数。例: 2 |
Cloud Bigtable to Cloud Storage Parquet ファイル テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to Parquet template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Bigtable to SequenceFile template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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-
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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-
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Datastore to Cloud Storage Text template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- 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 は、任意のジョブ名に置き換えます。
- 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-#####
ファイル。
たとえば、Singers
と Albums
の 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 パス。エクスポート ジョブによって、このパスの下にディレクトリが新規作成されます。ここに、エクスポートされたファイルが格納されます。 |
テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Spanner to Cloud Storage Avro template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、
cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]
の形式になっている必要があります。
- Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定する必要があります。このサンプルでは、次のように値を置き換える必要があります。
[DATAFLOW_REGION]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[YOUR_INSTANCE_ID]
は、Cloud Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、Cloud Spanner データベースの ID に置き換えます。[YOUR_GCS_DIRECTORY]
を、Avro ファイルがエクスポートされる Cloud Storage パスに置き換えます。 がインポートされました[JOB_NAME]
は、任意のジョブ名に置き換えます。- Cloud Console の Cloud Spanner 部分に表示されるジョブ名は、
cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]
というフォーマットに一致させる必要があります。
- Cloud Console の Cloud Spanner 部分に表示されるジョブ名は、
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]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[YOUR_INSTANCE_ID]
は、Cloud Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、Cloud Spanner データベースの ID に置き換えます。[YOUR_GCS_DIRECTORY]
を、Avro ファイルがエクスポートされる Cloud Storage パスに置き換えます。 がインポートされました[JOB_NAME]
は、任意のジョブ名に置き換えます。- Cloud Console の Cloud Spanner 部分に表示されるジョブ名は、
cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]
というフォーマットに一致させる必要があります。
- Cloud Console の Cloud Spanner 部分に表示されるジョブ名は、
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 に書き込むバッチ パイプラインです。
このパイプラインの要件:
- パイプラインを実行する前に、入力用の 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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Spanner to Cloud Storage Text template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- YOUR_DATABASE_ID は、Spanner データベース ID に置き換えます。
- YOUR_BUCKET_NAME は、Cloud Storage バケットの名前に置き換えます。
- YOUR_INSTANCE_ID は、Spanner インスタンス ID に置き換えます。
- YOUR_TABLE_ID は、Spanner テーブル ID に置き換えます。
- PATH_TO_JAVASCRIPT_UDF_FILE は、JavaScript コードを含む
.js
ファイルの Cloud Storage パスに置き換えます。 - 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 は、任意のジョブ名に置き換えます。
- YOUR_DATABASE_ID は、Spanner データベース ID に置き換えます。
- YOUR_BUCKET_NAME は、Cloud Storage バケットの名前に置き換えます。
- YOUR_INSTANCE_ID は、Spanner インスタンス ID に置き換えます。
- YOUR_TABLE_ID は、Spanner テーブル ID に置き換えます。
- PATH_TO_JAVASCRIPT_UDF_FILE は、JavaScript コードを含む
.js
ファイルの Cloud Storage パスに置き換えます。 - 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 インスタンスの 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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Spanner to Cloud Storage Text template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Avro to Spanner template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、
cloud-spanner-import-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]
の形式になっている必要があります。
- Cloud Console の Cloud Spanner 部分に表示するため、ジョブ名は、
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
- (API のみ)
[YOUR_PROJECT_ID]
は、実際のプロジェクト ID に置き換えます。 [DATAFLOW_REGION]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[JOB_NAME]
は、任意のジョブ名に置き換えます。[YOUR_INSTANCE_ID]
は、データベースを含む Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、インポート先の Spanner データベースの ID に置き換えます。- (gcloud のみ)
[YOUR_GCS_STAGING_LOCATION]
は、一時ファイルを書き込むパスに置き換えます。例:gs://mybucket/temp
[YOUR_GCS_DIRECTORY]
は、Avro ファイルのインポート元となる Cloud Storage パスに置き換えます。例:gs://mybucket/somefolder
gcloud dataflow jobs run [JOB_NAME] \ --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner' \ --region=[DATAFLOW_REGION] \ --staging-location=[YOUR_GCS_STAGING_LOCATION] \ --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
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
- (API のみ)
[YOUR_PROJECT_ID]
は、実際のプロジェクト ID に置き換えます。 [DATAFLOW_REGION]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[JOB_NAME]
は、任意のジョブ名に置き換えます。[YOUR_INSTANCE_ID]
は、データベースを含む Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、インポート先の Spanner データベースの ID に置き換えます。- (gcloud のみ)
[YOUR_GCS_STAGING_LOCATION]
は、一時ファイルを書き込むパスに置き換えます。例:gs://mybucket/temp
[YOUR_GCS_DIRECTORY]
は、Avro ファイルのインポート元となる Cloud Storage パスに置き換えます。例:gs://mybucket/somefolder
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 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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Avro to Spanner template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the SequenceFile Files on Cloud Storage to Cloud Bigtable template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
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]
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定してください。このサンプルでは、次のように値を置き換える必要があります。
[YOUR_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*
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Text to BigQuery template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- 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 は、任意のジョブ名に置き換えます。
- 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 Datastore
Cloud Storage Text to Datastore テンプレートは、Cloud Storage に保存されたテキスト ファイルを読み取り、JSON にエンコードされたエンティティを 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 |
Datastore エンティティを書き込む Google Cloud プロジェクト ID |
errorWritePath |
処理中に発生したエラーを書き込むために使用するエラーログ出力ファイル。例: gs://bucket-name/errors.txt |
Cloud Storage Text to Datastore テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Text to Datastore template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- 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 は、任意のジョブ名に置き換えます。
- 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 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)テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Text to Pub/Sub (Batch) template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
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 は、任意のジョブ名に置き換えます。
- YOUR_TOPIC_NAME は、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 は、任意のジョブ名に置き換えます。
- YOUR_TOPIC_NAME は、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 Console で実行する- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Cloud Storage Text to Cloud Spanner template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールでの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
REST API の使用で記述されているように、このサンプル リクエストを使用します。このリクエストには承認が必要です。書き込み権限がある場合は tempLocation
を指定する必要があります。このサンプルでは、次のように値を置き換える必要があります。
[DATAFLOW_REGION]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[YOUR_INSTANCE_ID]
は、Cloud Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、Cloud Spanner データベースの ID に置き換えます。[GCS_PATH_TO_IMPORT_MANIFEST]
を、インポート マニフェスト ファイルへの Cloud Storage パスに置き換えます。[JOB_NAME]
は、任意のジョブ名に置き換えます。
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]
は、Dataflow ジョブを実行するリージョンに置き換えます(たとえば、us-central1
)。[YOUR_INSTANCE_ID]
は、Cloud Spanner インスタンスの ID に置き換えます。[YOUR_DATABASE_ID]
は、Cloud Spanner データベースの ID に置き換えます。[GCS_PATH_TO_IMPORT_MANIFEST]
を、インポート マニフェスト ファイルへの Cloud Storage パスに置き換えます。[JOB_NAME]
は、任意のジョブ名に置き換えます。
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 テーブルに互換性のあるスキーマが必要です。
- リレーショナル データベースは、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/sampledb Cloud 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 の実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the JDBC to BigQuery template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID を実際のプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- 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 は、任意のジョブ名に置き換えます。
- 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" } }
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 に定期的に複製する。
このパイプラインの要件:
- パイプラインを実行する前に、ターゲットの Bigtable テーブルが存在している。
- Dataflow ワーカーと Apache Cassandra ノードの間のネットワーク接続。
型変換
Apache Cassandra to Cloud Bigtable テンプレートでは、Apache Cassandra のデータ型が Cloud Bigtable のデータ型に自動的に変換されます。
ほとんどのプリミティブは Cloud Bigtable と Apache Cassandra で同じように表現されますが、次のプリミティブは異なる方法で表現されます。
Date
とTimestamp
はDateTime
オブジェクトに変換されます。UUID
はString
に変換されます。Varint
はBigDecimal
に変換されます。
Apache Cassandra は、Tuple
、List
、Set
、Map
などの複雑な型もネイティブにサポートしています。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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Apache Cassandra to Cloud Bigtable template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID は、Cloud Bigtable が配置されているプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- YOUR_BIGTABLE_INSTANCE_ID は、Cloud Bigtable インスタンス ID に置き換えます。
- YOUR_BIGTABLE_TABLE_ID は、Cloud Bigtable テーブル名に置き換えます。
- YOUR_CASSANDRA_HOSTS は、Apache Cassandra ホストリストに置き換えます。複数のホストを指定する場合は、カンマをエスケープする方法の手順に従ってください。
- YOUR_CASSANDRA_KEYSPACE は、テーブルがある Apache Cassandra キースペースに置き換えます。
- YOUR_CASSANDRA_TABLE は、移行する必要がある Apache Cassandra テーブルに置き換えます。
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable \ --parameters\ bigtableProjectId=YOUR_PROJECT_ID,\ bigtableInstanceId=YOUR_BIGTABLE_INSTANCE_ID,\ bigtableTableId=YOUR_BIGTABLE_TABLE_ID,\ cassandraHosts=YOUR_CASSANDRA_HOSTS,\ cassandraKeyspace=YOUR_CASSANDRA_KEYSPACE,\ cassandraTable=YOUR_CASSANDRA_TABLE
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_PROJECT_ID は、Cloud Bigtable が配置されているプロジェクト ID に置き換えます。
- JOB_NAME は、任意のジョブ名に置き換えます。
- YOUR_BIGTABLE_INSTANCE_ID は、Cloud Bigtable インスタンス ID に置き換えます。
- YOUR_BIGTABLE_TABLE_ID は、Cloud Bigtable テーブル名に置き換えます。
- YOUR_CASSANDRA_HOSTS は、Apache Cassandra ホストリストに置き換えます。複数のホストを指定する場合は、カンマをエスケープする方法の手順に従ってください。
- YOUR_CASSANDRA_KEYSPACE は、テーブルがある Apache Cassandra キースペースに置き換えます。
- YOUR_CASSANDRA_TABLE は、移行する必要がある Apache Cassandra テーブルに置き換えます。
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "YOUR_PROJECT_ID", "bigtableInstanceId": "YOUR_BIGTABLE_INSTANCE_ID", "bigtableTableId": "YOUR_BIGTABLE_TABLE_ID", "cassandraHosts": "YOUR_CASSANDRA_HOSTS", "cassandraKeyspace": "YOUR_CASSANDRA_KEYSPACE", "cassandraTable": "YOUR_CASSANDRA_TABLE" }, "environment": { "zone": "us-central1-f" } }
Apache Hive to BigQuery
Apache Hive to BigQuery テンプレートは、Apache Hive テーブルから読み取り、BigQuery テーブルに書き込むバッチ パイプラインです。
このパイプラインの要件:
- パイプラインを実行する前に、ターゲットの Bigtable テーブルが存在している。
- 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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the Apache Hive to BigQuery template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 138.0.0 以降が必要です。
このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Hive_To_BigQuery
次のように置き換えます。
PROJECT_ID
: BigQuery が配置されているプロジェクト ID。JOB_NAME
: 任意のジョブ名。DATASET
: BigQuery データセットTABLE_NAME
: BigQuery テーブル名METASTORE_URI
: Apache Thrift サーバー URIHIVE_DATABASE_NAME
: エクスポートするテーブルを含む Apache Hive データベース名。HIVE_TABLE_NAME
: エクスポートする Apache Hive テーブル名。HIVE_PARTITION_COLS
: Apache Hive パーティション列のカンマ区切りのリスト。FILTER_STRING
: Apache Hive 入力テーブルのフィルタ文字列。PARTITION_TYPE
: BigQuery のパーティション タイプ。PARTITION_COL
: 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
API
REST API からの実行このテンプレートを実行する場合、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/Hive_To_BigQuery
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには認可が必要です。
次のように置き換えます。
PROJECT_ID
: BigQuery が配置されているプロジェクト ID。JOB_NAME
: 任意のジョブ名。DATASET
: BigQuery データセットTABLE_NAME
: BigQuery テーブル名METASTORE_URI
: Apache Thrift サーバー URIHIVE_DATABASE_NAME
: エクスポートするテーブルを含む Apache Hive データベース名。HIVE_TABLE_NAME
: エクスポートする Apache Hive テーブル名。HIVE_PARTITION_COLS
: Apache Hive パーティション列のカンマ区切りのリスト。FILTER_STRING
: Apache Hive 入力テーブルのフィルタ文字列。PARTITION_TYPE
: BigQuery のパーティション タイプ。PARTITION_COL
: BigQuery パーティション列の名前。
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" } }
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 テンプレートの実行
コンソール
Google Cloud Console からの実行- Cloud Console の [Dataflow] ページに移動します。 Dataflow ページに移動
- [テンプレートからジョブを作成] をクリックします。
- [Dataflow テンプレート] プルダウン メニューから the File Format Conversion template を選択します。
- [ジョブ名] フィールドにジョブ名を入力します。
- 表示されるパラメータ フィールドにパラメータ値を入力します。
- [ジョブを実行] をクリックします。
![Cloud Platform Console の [テンプレートからジョブを作成] ボタン](https://cloud.google.com/dataflow/images/console_run_job_button.png?hl=ja)
gcloud
gcloud
コマンドライン ツールからの実行
注: テンプレートを実行する gcloud
コマンドライン ツールを使用するには、Cloud SDK のバージョン 284.0.0 以降が必要です。
このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/flex/File_Format_Conversion
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_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
gcloud beta dataflow flex-template run JOB_NAME \ --project=YOUR_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
API
REST API からの実行このテンプレートを実行するときは、テンプレートへの Cloud Storage パスが必要です。
gs://dataflow-templates/VERSION/flex/File_Format_Conversion
REST API リクエストでこのテンプレートを実行するには、プロジェクト ID を指定して HTTP POST リクエストを送信します。このリクエストには承認が必要です。
このサンプルでは、次のように値を置き換える必要があります。
- YOUR_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
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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", } }