コンテンツに移動
データ分析

BigQuery の MySQL データからより迅速にインサイトを引き出す

2023年8月4日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 7 月 26 日に、Google Cloud blog に投稿されたものの抄訳です。

データ技術者は、リレーショナル データベースが分析クエリ用に設計されていないことを知っています。リレーショナル データベースのインフラストラクチャをデータウェア ハウスに接続することで、データドリブンな組織は、大量の分析クエリに悩まされることのない本番環境のデータベースと、本番環境のアプリケーションが停止することを心配せずに自由にインサイトを引き出すことができるデータウェア ハウスという、両方の長所を活かすことができます。しかしながら、運用上のオーバーヘッドを可能な限り少なくしつつ、2 つの異なるシステム間の接続をどのように確立するかという問題が残ります。

Dataflow テンプレートを使用することで、MySQL データ ウェアハウスと BigQuery の接続を、ウェブフォームに入力するのと同じくらい簡単にできます。カスタムコードを書く必要も、インフラストラクチャを管理する必要もありません。Dataflow は、バッチおよびストリーミング ワークロード向けの Google Cloud のサーバーレス データ処理であり、データ処理の高速化、自動調整、費用対効果の向上を実現します。Dataflow テンプレートは、データ パイプラインを定義する再利用可能なコード スニペットです。テンプレートを使用することで、ユーザーはカスタム Dataflow アプリケーションの作成について心配する必要がなくなります。Google は、一般的なワークフローや ETL ユースケースの自動化に役立つテンプレートのカタログを提供しています。この投稿では、MySQL から BigQuery にデータを複製するための繰り返しのバッチ パイプラインをスケジュール設定する方法について説明します。

MySQL から BigQuery への Dataflow Data Pipelines の起動

パイプラインとして、Dataflow Data Pipelines を起動します。Data Pipelines を使用すると、バッチジョブ1を繰り返しスケジュール設定できます。Data Pipelines は、ストリーミング ジョブ用のライフサイクル管理機能を備えているため、パイプラインの出発点としても最適です。最初に、上部にある [データ パイプラインを作成] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/BbrW9pwgVBQfxXt.max-1400x1400.png

MySQL から BigQuery へのパイプラインを選択します。この図からわかるように、リレーショナル データベースが Postgres や SQL Server の場合、それらのシステム用のテンプレートも用意されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/BRxgXrSxukKR6aY.max-700x700.png

フォームが展開され、パイプラインの実行に役立つパラメータのリストが表示されます。

必須パラメータ

  • スケジュール: パイプラインの繰り返しのスケジュール(時間単位、日単位、週単位でジョブをスケジュール設定するか、unix-cron 形式で独自のスケジュールを定義します)

  • ソース: JDBC ソースに接続する URL 接続文字列。データベースに SSL 証明書が必要な場合は、SSL モードと証明書の GCS ロケーションを有効にするクエリ文字列を追加できます。これらは、Google Cloud Key Management Service を使用してエンコードできます。

  • ターゲット: BigQuery 出力テーブル

  • 一時バケット: ファイルをステージングするための GCS バケット

オプション パラメータ

  • JDBC ソース SQL クエリ(データベースの一部を複製する場合)

  • ユーザー名とパスワード(データベースに認証が必要な場合)。必要に応じて、Google Cloud KMS からエンコードされた文字列を渡すこともできます。

  • パーティショニング パラメータ

  • Dataflow 関連のパラメータ(自動スケーリング、ワーカーの数、ワーカー環境に関連するその他の構成を変更するオプションを含む)。SSL 証明書が必要で、トラストストアと証明書ファイルがある場合は、「extra files to stage」パラメータを使用して、それぞれのロケーションに渡します。

構成を入力したら、[パイプラインを作成] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3XZJVqR5EK5H6zU.max-2000x2000.png

パイプラインを作成すると、[パイプラインの情報] 画面が表示され、パイプラインの実行履歴が表示されます。この情報は、長時間実行されたジョブを探したり、複数の実行にまたがって発生するパターンを特定したりする場合に役立ちます。ページの下部には、パイプラインに関連するジョブのリストが表形式で表示されます。これらのジョブ ID のいずれかをクリックすると、特定の実行についてより詳しく調べることができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8HSZjt7AFi4UiYr.max-2200x2200.png

Dataflow モニタリング エクスペリエンスには、起動したパイプラインを視覚的に表現するジョブグラフがあり、下部のログパネルにはジョブとワーカーから収集されたログが表示されます。右側のパネルにはジョブに関連する情報が表示され、ジョブについての最適化された実行、パフォーマンス指標、費用などを理解するためのタブがいくつかあります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/7JCoGzd7KYzKUjb.max-2200x2200.png

最後に、BigQuery SQL ワークスペースに移動して、最終的な宛先に書き込まれたテーブルを確認できます。このチュートリアルの解説動画をご覧になりたい場合は、こちらをクリックしてください。これで、リレーショナル データベースから価値を引き出す準備は完了です。チーム全体でセットアップを行う必要はありません。

次のステップ

変更の読み取りと書き込みが継続的に行われるユースケースの場合は、変更データ キャプチャとリアルタイム レプリケーションのユースケースに対応する Datastream プロダクトの活用をおすすめします。オープンソース テクノロジーに基づくソリューションをご希望の場合は、変更データ キャプチャ Dataflow テンプレートもご検討ください。このテンプレートでは、Debezium コネクタを使用してメッセージを Pub/Sub に公開し、その後 BigQuery に書き込むことができます。

Dataflow をぜひご活用ください。


1. スケジュールに基づいてジョブを実行する必要がない場合は、[ジョブ] ページにある [テンプレートからジョブを作成] ワークフローを使用することをおすすめします。


- プロダクト マネージャー Mehran Nazir
- プロダクト マーケティング マネージャー Frank Guan

投稿先