このチュートリアルでは、変更されたデータを MySQL データベースから BigQuery テーブルに継続的に複製するジョブを作成してデプロイする方法を説明します。
目標
このチュートリアルの内容は次のとおりです。
- MySQL データベースを Compute Engine にデプロイします。
- MySQL データベースをセットアップして、複製を有効にします。
- Cloud Data Fusion Replication ジョブを作成して実行します。
- BigQuery で結果を表示します。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
 
  
 
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
複製が実行されると、Dataproc クラスタに対して課金され、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
      (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 ネットワーク ピアリングを設定します。- インスタンスを作成するときに、[アクセラレータを追加] をクリックし、[レプリケーション] チェックボックスをオンにして、レプリケーションを有効にします。
- 既存のインスタンスで有効にするには、レプリケーションを有効にするをご覧ください。
 
- MySQL Server Docker イメージをダウンロードします。 
- Docker イメージを Artifact Registry にアップロードします。 
- 新しい VM インスタンスに Docker イメージをデプロイします。 
- Compute Engine の [ディスク] ページで、ディスクサイズを - 500 GBに変更して、VM を再起動します。
- VM インスタンスのファイアウォールを作成します。 
- Sakila サンプル データベースをインストールします。 
- 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] セクションで、ステージング バケットの名前、ロケーション、負荷間隔、ステージング テーブルのプレフィックス、テーブルまたはデータベースの削除時の動作を構成します。
 
- [次へ] をクリックします。 
- 接続に成功すると、Sakila サンプル データベース テーブルのリストが表示されます。このチュートリアルでは、複製するテーブルとイベント(挿入、更新、削除のイベントなど)を選択します。 
- 省略可: 詳細プロパティを構成します。このチュートリアルでは、デフォルト設定を使用できます。 
- [Next] をクリックします。 
- [Review assessment] ページでいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。問題が発生した場合は、処理を進める前に問題を解決する必要があります。このチュートリアルでは、いずれかのテーブルに問題がある場合に、テーブルの選択手順に戻って、問題のないテーブルまたはイベント(挿入、更新、削除)を選択します。 - ソース データベースから BigQuery へのデータタイプの変換の詳細については、レプリケーション データタイプをご覧ください。 
- [Next] をクリックします。 
- レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。 
- [レプリケーション ジョブの詳細] ページで、[開始] をクリックします。
- [レプリケーション] ページで、レプリケーション ジョブの [名前] をクリックします。 
- [モニタリング] をクリックします。 
- Google Cloud コンソールで、[BigQuery] ページに移動します。 
- 左側のパネルでプロジェクト名を選択して、データセットのリストを展開します。 
- 結果を表示するには、 - sakilaデータセットを選択してテーブルを選択します。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Cloud Data Fusion のレプリケーションについて学習する。
- Replication API リファレンスを確認する。
- SQL Server から BigQuery へのデータの複製のチュートリアルを実施する。
- Oracle から BigQuery へのデータの複製のチュートリアルを実施する。
必要なロール
このチュートリアルで必要な権限を取得するには、IAM によるアクセス制御とサービス アカウントにユーザー権限を付与するをご覧ください。
Compute Engine に MySQL をインストールする
MySQL データベースのレプリケーションを有効にする
レプリケーションを有効にするには、MySQL で変更データ キャプチャ(CDC)をセットアップします。
Cloud Data Fusion Replication ジョブを作成して実行する
JDBC ドライバをアップロードする
ジョブを作成します
ジョブを開始する
レプリケーション ジョブは、プロビジョニング、開始、実行中の各状態に移行します。実行中の状態では、レプリケーション ジョブによって、選択したテーブルデータの初期スナップショットが BigQuery に読み込まれます。この状態では、テーブルの状態は [スナップショット] として表示されます。最初のスナップショットを BigQuery に読み込むと、テーブルに対する変更はすべて BigQuery に複製され、テーブルの状態は [Replicating] と表示されます。
ジョブをモニタリングする
レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。
[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。
BigQuery で結果を表示する
レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する MySQL データベースとテーブル名を継承します。
詳細については、BigQuery のドキュメントをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
チュートリアルが終了したら、Google Cloud で作成したリソースをクリーンアップして、割り当てを使い果たしたり、今後料金が発生しないようにします。次のセクションで、このようなリソースを削除または無効にする方法を説明します。
Cloud Data Fusion インスタンスを削除する
手順に従って Cloud Data Fusion インスタンスを削除します。