BigQuery to Bigtable テンプレートは、BigQuery テーブルから既存の Bigtable テーブルにデータをコピーするバッチ パイプラインです。テンプレートでは、テーブル全体を読み取ることも、クエリを使用して特定のレコードを読み取ることもできます。
パイプラインの要件
- ソースとなる BigQuery テーブルが存在していること。
- Bigtable テーブルが存在していること。
- ワーカー サービス アカウントには
roles/bigquery.datasets.create
権限が必要です。詳細については、IAM の概要をご覧ください。
テンプレートのパラメータ
パラメータ | 説明 |
---|---|
readIdColumn |
行の固有識別子を格納している BigQuery の列の名前。 |
inputTableSpec |
省略可: 読み取り元の BigQuery テーブル。形式:
|
query |
省略可: BigQuery からデータを読み取るために使用する SQL クエリ。BigQuery データセットが Dataflow ジョブとは異なるプロジェクトにある場合は、SQL クエリで
|
useLegacySql |
省略可: レガシー SQL を使用する場合は true に設定します。このパラメータは、query パラメータを使用する場合にのみ適用されます。デフォルト: false 。 |
bigtableWriteInstanceId |
テーブルが含まれている Bigtable インスタンスの ID。 |
bigtableWriteTableId |
書き込み先の Bigtable テーブルの ID。 |
bigtableWriteColumnFamily |
データを書き込む Bigtable テーブルの列ファミリーの名前。 |
bigtableWriteAppProfile |
省略可: エクスポートに使用される Bigtable アプリケーション プロファイルの ID。アプリ プロファイルを指定しないと、Bigtable はインスタンスのデフォルトのアプリ プロファイルを使用します。 |
bigtableWriteProjectId |
省略可: データを書き込む Bigtable インスタンスの Google Cloud プロジェクトの ID。 |
bigtableBulkWriteLatencyTargetMs |
省略可: レイテンシ ベースのスロットリングに対する Bigtable のレイテンシ ターゲット(ミリ秒)。 |
bigtableBulkWriteMaxRowKeyCount |
省略可: Bigtable バッチ書き込みオペレーションの行キーの最大数。 |
bigtableBulkWriteMaxRequestSizeBytes |
省略可: 1 回の Bigtable バッチ書き込みオペレーションに含める最大バイト数。 |
bigtableRpcAttemptTimeoutMs |
省略可: Bigtable RPC の個々の試行のタイムアウト(ミリ秒)。 |
bigtableRpcTimeoutMs |
省略可: Bigtable RPC オペレーションの合計タイムアウト(ミリ秒)。 |
bigtableAdditionalRetryCodes |
省略可: 追加の再試行コード。 |
テンプレートを実行する
コンソール
- Dataflow の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ the BigQuery to Bigtable template] を選択します。
- 表示されたパラメータ フィールドに、パラメータ値を入力します。
- [ジョブを実行] をクリックします。
gcloud
シェルまたはターミナルで、テンプレートを実行します。
gcloud dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/BigQuery_to_Bigtable \ --parameters \ readIdColumn=READ_COLUMN_ID,\ inputTableSpec=INPUT_TABLE_SPEC,\ bigtableWriteInstanceId=BIGTABLE_INSTANCE_ID,\ bigtableWriteTableId=BIGTABLE_TABLE_ID,\ bigtableWriteColumnFamily=BIGTABLE_COLUMN_FAMILY
次のように置き換えます。
PROJECT_ID
: Dataflow ジョブを実行する Google Cloud プロジェクトの IDJOB_NAME
: 一意の任意のジョブ名REGION_NAME
: Dataflow ジョブをデプロイするリージョン(例:us-central1
)VERSION
: 使用するテンプレートのバージョン使用できる値は次のとおりです。
latest
: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。- バージョン名(例:
2023-09-12-00_RC00
)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
READ_COLUMN_ID
: BigQuery の一意の ID の列。INPUT_TABLE_SPEC
: BigQuery テーブル名。BIGTABLE_INSTANCE_ID
: Bigtable インスタンス ID。BIGTABLE_TABLE_ID
: Bigtable テーブル ID。BIGTABLE_COLUMN_FAMILY
: Bigtable テーブルの列ファミリー。
API
REST API を使用してテンプレートを実行するには、HTTP POST リクエストを送信します。API とその認証スコープの詳細については、projects.templates.launch
をご覧ください。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "readIdColumn": "READ_COLUMN_ID", "inputTableSpec": "INPUT_TABLE_SPEC", "bigtableWriteInstanceId": "BIGTABLE_INSTANCE_ID", "bigtableWriteTableId": "BIGTABLE_TABLE_ID", "bigtableWriteColumnFamily": "BIGTABLE_COLUMN_FAMILY" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/BigQuery_to_Bigtable", } }
次のように置き換えます。
PROJECT_ID
: Dataflow ジョブを実行する Google Cloud プロジェクトの IDJOB_NAME
: 一意の任意のジョブ名LOCATION
: Dataflow ジョブをデプロイするリージョン(例:us-central1
)VERSION
: 使用するテンプレートのバージョン使用できる値は次のとおりです。
latest
: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。- バージョン名(例:
2023-09-12-00_RC00
)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
READ_COLUMN_ID
: BigQuery の一意の ID の列。INPUT_TABLE_SPEC
: BigQuery テーブル名。BIGTABLE_INSTANCE_ID
: Bigtable インスタンス ID。BIGTABLE_TABLE_ID
: Bigtable テーブル ID。BIGTABLE_COLUMN_FAMILY
: Bigtable テーブルの列ファミリー。
次のステップ
- Dataflow テンプレートについて学習する。
- Google 提供のテンプレートのリストを確認する。