このチュートリアルでは、変更されたデータを MySQL データベースから BigQuery テーブルに継続的に複製するジョブを作成してデプロイする方法を説明します。
目標
このチュートリアルの内容は次のとおりです。
- MySQL データベースを Compute Engine にデプロイします。
- MySQL データベースをセットアップして、複製を有効にします。
- Cloud Data Fusion Replication ジョブを作成して実行します。
- BigQuery で結果を表示します。
費用
このドキュメントでは、課金対象である次のコンポーネントを使用します。 Google Cloud
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
複製が実行されると、Managed Service for Apache Spark クラスタに対して課金され、BigQuery の処理料金が発生します。これらの費用を最適化するには、BigQuery 定額料金を適用することを強くおすすめします。
始める前に
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- バージョン 6.3.0 以降でパブリック
Cloud Data Fusion インスタンスを作成します。プライベート インスタンスを作成する場合は、VPC ネットワーク ピアリングを設定します。
- インスタンスを作成するときに、[アクセラレータを追加] をクリックし、[レプリケーション] チェックボックスをオンにして、レプリケーションを有効にします。
- 既存のインスタンスで有効にするには、レプリケーションを有効にするをご覧ください。
必要なロール
このチュートリアルで必要な権限を取得するには、IAM によるアクセス制御とサービス アカウントにユーザー権限を付与するをご覧ください。
Compute Engine に MySQL をインストールする
ダウンロード MySQL Server Docker イメージをダウンロードします。
Docker イメージを Artifact Registry にアップロードします。
新しい VM インスタンスに Docker イメージをデプロイします。
Compute Engine の [ディスク] ページで、ディスクサイズを
500 GBに変更して、VM を再起動します。VM インスタンスのファイアウォールを作成します。
Sakila サンプル データベースをインストールします。
MySQL データベースのレプリケーションを有効にする
レプリケーションを有効にするには、MySQL で変更データ キャプチャ(CDC)をセットアップします。
Cloud Data Fusion Replication ジョブを作成して実行する
JDBC ドライバをアップロードする
MySQL JDBC ドライバ (バージョン 8 以降)をローカルマシンにダウンロードします。
Cloud Data Fusion ウェブ インターフェースで、JDBC ドライバをアップロードします。
次の値を使用して、JDBC ドライバを構成します。
- [名前] フィールドに「
mysql」と入力します。 - [バージョン] フィールドはデフォルトのままにしておきます。
- [Class Name] フィールドに「
com.mysql.jdbc.Driver」と入力します。
- [名前] フィールドに「
ジョブを作成します
Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。
[レプリケーション ジョブを作成する] をクリックします。
[新しいレプリケーション ジョブの作成] ページで、レプリケーション ジョブの [名前] を指定し、[次へ] をクリックします。
ソースを構成します。
- ソースとして [MySQL] を選択します。
- [Host] に、読み取り元の MySQL のホスト名を入力します。
- [Port] に、MySQL サーバーへの接続に使用するポート「
3306」を入力します。 - [JDBC Plugin Name] に
mysqlまたは JDBC ドライバを構成したときに指定した名前を選択します。 - [Database Name] に「
sakila」と入力します。 - [Credentials] セクションで、MySQL サーバーにアクセスするためのユーザー名とパスワードを入力します。
[Next] をクリックします。
ターゲットを構成します。
- BigQuery ターゲットを選択します。
- プロジェクト ID とサービス アカウント キーが自動的に検出されます。デフォルト値をそのまま使用します。
- 省略可: [Advanced] セクションで、ステージング バケットの名前、ロケーション、負荷間隔、ステージング テーブルのプレフィックス、 テーブルまたはデータベースの削除時の動作を構成します。
[Next] をクリックします。
接続に成功すると、Sakila サンプル データベース テーブルのリストが表示されます。このチュートリアルでは、複製するテーブルとイベント(挿入、更新、削除のイベントなど)を選択します。
省略可: 詳細プロパティを構成します。このチュートリアルでは、デフォルト設定を使用できます。
[Next] をクリックします。
[Review assessment] ページでいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。問題が発生した場合は、処理を進める前に問題を解決する必要があります。このチュートリアルでは、テーブルに問題がある場合は、テーブルを選択したステップに戻り、問題のないテーブルまたはイベント(挿入、更新、削除)を選択します。
ソース データベースから BigQuery へのデータタイプの変換の詳細については、レプリケーション データタイプをご覧ください。
[Next] をクリックします。
レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。
ジョブを開始する
- [レプリケーション ジョブの詳細] ページで、[開始] をクリックします。
レプリケーション ジョブは、プロビジョニング、開始、実行中の各状態に移行します。実行中の状態では、レプリケーション ジョブによって、選択したテーブルデータの初期スナップショットが BigQuery に読み込まれます。この状態では、テーブルの状態は [スナップショット] として表示されます。最初のスナップショットを BigQuery に読み込むと、テーブルに対する変更はすべて BigQuery に複製され、テーブルの状態は [Replicating] と表示されます。
ジョブをモニタリングする
レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。
[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。
[レプリケーション] ページで、レプリケーション ジョブの [名前] をクリックします。
[モニタリング] をクリックします。
BigQuery で結果を表示する
レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する MySQL データベースとテーブル名を継承します。
コンソールで、[BigQuery] ページに移動します。 Google Cloud
左側のパネルでプロジェクト名を選択して、データセットのリストを展開します。
結果を表示するには、
sakilaデータセットを選択して、テーブルを選択します。
詳細については、BigQuery のドキュメントをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
チュートリアルが終了したら、 Google Cloud で作成したリソースをクリーンアップして、割り当てを消費せず、今後料金が発生しないようにします。次のセクションで、このようなリソースを削除または無効にする方法を説明します。
Cloud Data Fusion インスタンスを削除する
手順に従って Cloud Data Fusion インスタンスを削除します。
プロジェクトの削除
- コンソールで [**リソースの管理**] ページに移動します。 Google Cloud
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、 [Shut down] をクリックしてプロジェクトを削除します。
次のステップ
- Cloud Data Fusion のレプリケーションについて学習する。
- Replication API リファレンスを確認する。
- SQL Server から BigQuery へのデータの複製のチュートリアルを実施する。
- Oracle から BigQuery へのデータの複製のチュートリアルを実施する。