ワークロードのオーケストレーション
通常、BigQuery タスクはより大きなワークロードの一部であり、外部タスクによってトリガーされてから、BigQuery オペレーションによってトリガーされます。ワークロードのオーケストレーションは、データ管理者、アナリスト、デベロッパーがこの一連のアクションを整理して最適化し、データリソースとプロセス間でシームレスな接続を作成するうえで役立ちます。オーケストレーション方法とツールは、これらの複雑なデータ ワークロードの設計、構築、実装、モニタリングに役立ちます。
オーケストレーション方法を選択する
オーケストレーション方法を選択するには、ワークロードがイベント ドリブンか、時間主導型か、またはその両方かを特定する必要があります。イベントは、データベース内のデータの変更やストレージ システムへのファイルの追加などの状態変化として定義されます。イベント ドリブンのオーケストレーションでは、ウェブサイトへのアクションがデータ アクティビティのトリガーとなることがあります。また、特定のバケットにランディングしたオブジェクトは、到着後すぐに処理する必要があります。時間ドリブンのオーケストレーションでは、1 日に 1 回、あるいは 1 時間ごとのレポートを作成できるだけの十分な頻度で、新しいデータの読み込みが必要になることがあります。イベント ドリブン オーケストレーションと時間主導型オーケストレーションは、オブジェクトをリアルタイムでデータレイクに読み込む必要がある場合に使用できますが、データレイクのアクティビティ レポートが生成されるのは日単位ごとです。
オーケストレーション ツールを選択する
オーケストレーション ツールは、複数の Google Cloud サービスやサードパーティのサービスと BigQuery ジョブとの組み合わせや、複数の BigQuery ジョブの並列実行など、複雑なデータ ワークロードの管理に関連するタスクを支援します。各ワークロードには、正しいデータを使用して正しい順序でタスクが実行されるようにするための、依存関係とパラメータ管理に関する固有の要件があります。Google Cloud には、オーケストレーション方法とワークロードの要件に基づくいくつかのオーケストレーション オプションが用意されています。
ほとんどの場合、Dataform、Workflows、Cloud Composer、または Vertex AI Pipelines を使用することをおすすめします。比較については、次のチャートをご覧ください。
Dataform | Workflows | Cloud Composer | Vertex AI Pipelines | |
---|---|---|---|---|
焦点 | Data transformation | マイクロサービス | ETL または ELT | 機械学習 |
複雑さ | * | ** | *** | ** |
ユーザー プロファイル | データ アナリストまたは管理者 | データ アーキテクト | データ エンジニア | データ アナリスト |
コードタイプ | JavaScript と SQL | YAML または JSON | Python | Python |
サーバーレス? | あり | あり | フルマネージド | あり |
次の状況には適していない | 外部サービスのチェーン | データの変換と処理 | 低レイテンシまたはイベント ドリブンのパイプライン | インフラストラクチャのタスク |
以降のセクションでは、これらのオーケストレーション ツールとその他のツールについて詳しく説明します。
スケジュールされたクエリ
最も簡単なワークロード オーケストレーションの方法は、BigQuery で直接、繰り返し実行するクエリのスケジュールすることです。これは最も簡単なオーケストレーションの手法ですが、外部依存関係のない単純なクエリチェーンの場合に限定することをおすすめします。この方法でスケジュールするクエリは、GoogleSQL で記述する必要があり、データ定義言語(DDL)と、データ操作言語(DML)ステートメントを含めることができます。
オーケストレーション方法: 時間ドリブン
Dataform
Dataform は、BigQuery で複雑なデータ変換タスクをオーケストレートする、無料の SQL ベースの独自の変換フレームワークです。元データを BigQuery に読み込むと、Dataform を使用してデータセットとテーブルの整理、テスト、バージョン管理されたコレクションを作成できます。BigQuery で Dataform を使用する方法については、SQL ワークフローを作成して実行するをご覧ください。
オーケストレーション方法: イベント ドリブン
Workflows
Workflows は、非常に低いレイテンシで HTTP ベースのサービスをオーケストレートするサーバーレス ツールです。これは、マイクロサービスのチェーン化、インフラストラクチャ タスクの自動化、外部システムとの統合、Google Cloud での一連のオペレーションの作成に最適です。BigQuery で Workflows を使用する方法については、複数の BigQuery ジョブの並列実行をご覧ください。
オーケストレーション メソッド: イベント ドリブンおよび時間主導型
Cloud Composer
Cloud Composer は、Apache Airflow 上に構築されたフルマネージド ツールです。抽出 / 変換 / 読み込み(ETL)ワークロードまたは抽出 / 読み込み / 変換(ELT)ワークロードに適しています。これは、複数の演算子タイプやパターン、他の Google Cloud プロダクトと外部ターゲット間のタスク実行をサポートしています。BigQuery で Cloud Composer を使用する方法については、Google Cloud でデータ分析 DAG を実行するをご覧ください。
オーケストレーション方法: 時間ドリブン
Vertex AI Pipelines
Vertex AI Pipelines は、ML ワークロードのオーケストレーション用に設計された、Kubeflow Pipelines をベースとするサーバーレス ツールです。トレーニング データからコードまで、モデルの開発とデプロイのすべてのタスクを自動化して接続し、モデルの動作状況を完全に把握できます。BigQuery で Vertex AI Pipelines を使用する方法については、予測用の BigQuery 機械学習モデルのエクスポートとデプロイをご覧ください。
オーケストレーション方法: イベント ドリブン
Apigee Integration
Apigee Integration は、コネクタとデータ変換ツールを含む Apigee プラットフォームの拡張機能です。これは、Salesforce などの外部のエンタープライズ アプリケーションと統合する場合に最適です。BigQuery で Apigee Integration を使用する方法については、Apigee Integration と Salesforce トリガーのスタートガイドをご覧ください。
オーケストレーション メソッド: イベント ドリブンおよび時間主導型
Cloud Data Fusion
Cloud Data Fusion は、コーディングが不要な ELT / ETL パイプラインと 150 以上の事前構成済みのコネクタと変換を提供するデータ統合ツールです。BigQuery で Cloud Data Fusion を使用する方法については、MySQL から BigQuery へのデータの複製をご覧ください。
オーケストレーション メソッド: イベント ドリブンおよび時間主導型
Cloud Scheduler
Cloud Scheduler は、バッチストリーミングやインフラストラクチャ オペレーションなど、定義された時間で行われるジョブ用のフルマネージド スケジューラです。BigQuery で Cloud Scheduler を使用する方法については、Cloud Scheduler による Workflows のスケジューリングをご覧ください。
オーケストレーション方法: 時間ドリブン
Cloud Tasks
Cloud Tasks は、メイン ワークロードの外部で個別に実行できる、ジョブの非同期タスク配信用のフルマネージド サービスです。これは時間のかかるバックグラウンド オペレーションの委任や API 呼び出しレートの管理に最適です。BigQuery で Cloud Tasks を使用する方法については、Cloud Tasks キューにタスクを追加するをご覧ください。
オーケストレーション方法: イベント ドリブン
サードパーティ製ツール
CData や SnapLogic などの一般的なさまざまなサードパーティ ツールを使用して、BigQuery に接続することもできます。BigQuery Ready プログラムでは、検証済みパートナー ソリューションの一覧を提供しています。
メッセージング ツール
多くのデータ ワークロードでは、分離されたマイクロサービス間に追加のメッセージ接続が必要で、特定のイベントが発生した場合にのみ有効にする必要があります。Google Cloud には、BigQuery と統合するように設計された 2 つのツールが用意されています。
Pub/Sub
Pub/Sub は、データ統合パイプライン用の非同期メッセージング ツールです。サーバー イベントやユーザー操作などのデータを取り込んで分散するように設計されています。また、IoT デバイスからの並列処理やデータ ストリーミングにも使用できます。BigQuery で Pub/Sub を使用する詳しい方法については、Pub/Sub から BigQuery へのストリーミングをご覧ください。
Eventarc
Eventarc は、データ パイプライン全体の状態変化のフローを管理するイベント ドリブンのツールです。このツールには、自動エラー修正、リソースのラベル付け、画像レタッチなど、さまざまなユースケースがあります。BigQuery で Eventarc を使用する方法については、Eventarc を使用した BigQuery 処理パイプラインの構築をご覧ください。
次のステップ
- BigQuery で繰り返し実行するクエリを直接スケジュール設定する方法を学習する。
- Dataform を使ってみる。
- ワークフローを使ってみる。
- Cloud Composer を使ってみる。
- Vertex AI Pipelines を使ってみる。
- Apigee Integration を使ってみる
- Cloud Data Fusion を使ってみる。
- Cloud Scheduler を使ってみる。
- Pub/Sub を使ってみる。
- Eventarc を使ってみる。