BigQuery to MongoDB テンプレートは、BigQuery から行を読み取り、ドキュメントとして MongoDB に書き込むバッチ パイプラインです。現在、各行がドキュメントとして格納されています。
パイプラインの要件
- ソース BigQuery テーブルが存在すること。
- Dataflow ワーカーマシンからターゲット MongoDB インスタンスにアクセスできること。
テンプレートのパラメータ
必須パラメータ
- mongoDbUri: MongoDB 接続 URI。形式は
mongodb+srv://:@
。 - database: コレクションを格納する MongoDB のデータベース。例:
my-db
- collection: MongoDB データベース内のコレクションの名前。例:
my-collection
- inputTableSpec: 読み取り元の BigQuery テーブル。例:
bigquery-project:dataset.input_table
テンプレートを実行する
- Dataflow の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ the BigQuery to MongoDB template] を選択します。
- 表示されたパラメータ フィールドに、パラメータ値を入力します。
- [ジョブを実行] をクリックします。
シェルまたはターミナルで、テンプレートを実行します。
gcloud dataflow flex-template runJOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME /VERSION /flex/BigQuery_to_MongoDB \ --parameters \ inputTableSpec=INPUT_TABLE_SPEC ,\ mongoDbUri=MONGO_DB_URI ,\ database=DATABASE ,\ collection=COLLECTION
次のように置き換えます。
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/)にあります。
INPUT_TABLE_SPEC
: ソース BigQuery テーブル名。MONGO_DB_URI
: MongoDB URI。DATABASE
: MongoDB データベース。COLLECTION
: MongoDB コレクション。
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": { "inputTableSpec": "INPUT_TABLE_SPEC ", "mongoDbUri": "MONGO_DB_URI ", "database": "DATABASE ", "collection": "COLLECTION " }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION /VERSION /flex/BigQuery_to_MongoDB", } }
次のように置き換えます。
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/)にあります。
INPUT_TABLE_SPEC
: ソース BigQuery テーブル名。MONGO_DB_URI
: MongoDB URI。DATABASE
: MongoDB データベース。COLLECTION
: MongoDB コレクション。
テンプレートのソースコード
次のステップ
- Dataflow テンプレートについて学習する。
- Google 提供のテンプレートのリストを確認する。