MySQL から BigQuery へのデータの複製

このチュートリアルでは、変更されたデータを MySQL データベースから BigQuery テーブルに継続的に複製するジョブを作成してデプロイする方法を説明します。

Compute Engine に MySQL をインストールする

  1. MySQL Server Docker イメージをダウンロードします。

  2. Docker イメージを Artifact Registry にアップロードします。

  3. 新しい VM インスタンスに Docker イメージをデプロイします。

  4. Compute Engine の [ディスク] ページで、ディスクサイズを 500 GB に変更して、VM を再起動します。

    [ディスク] に移動

  5. VM インスタンスのファイアウォールを作成します。

  6. Sakila サンプル データベースをインストールします。

MySQL データベースのレプリケーションを有効にする

レプリケーションを有効にするには、MySQL で変更データ キャプチャ(CDC)をセットアップします

Cloud Data Fusion Replication ジョブを作成して実行する

JDBC ドライバをアップロードする

  1. MySQL JDBC ドライバ(バージョン 8 以降)をローカルマシンにダウンロードします。

  2. Cloud Data Fusion ウェブ インターフェースで、JDBC ドライバをアップロードします。

    次の値を使用して、JDBC ドライバを構成します。

    • [名前] フィールドに「mysql」と入力します。
    • [バージョン] フィールドはデフォルトのままにしておきます。
    • [Class Name] フィールドに「com.mysql.jdbc.Driver」と入力します。

ジョブを作成します

  1. Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。

  2. [レプリケーション ジョブを作成する] をクリックします。

  3. [新しいレプリケーション ジョブの作成] ページで、レプリケーション ジョブの [名前] を指定し、[次へ] をクリックします。

  4. ソースを構成します。

    1. ソースとして [MySQL] を選択します。
    2. [Host] に、読み取り元の MySQL のホスト名を入力します。
    3. [Port] に、MySQL サーバーへの接続に使用するポート「3306」を入力します。
    4. [JDBC Plugin Name] に mysql または JDBC ドライバを構成したときに指定した名前を選択します。
    5. [Database Name] に「sakila」と入力します。
    6. [Credentials] セクションで、MySQL サーバーにアクセスするためのユーザー名とパスワードを入力します。
  5. [Next] をクリックします。

  6. ターゲットを構成します。

    1. BigQuery ターゲットを選択します。
    2. プロジェクト IDサービス アカウント キーが自動的に検出されます。デフォルト値をそのまま使用します。
    3. 省略可: [Advanced] セクションで、ステージング バケットの名前、ロケーション、負荷間隔、ステージング テーブルのプレフィックス、テーブルまたはデータベースの削除時の動作を構成します。
  7. [次へ] をクリックします。

  8. 接続に成功すると、Sakila サンプル データベース テーブルのリストが表示されます。このチュートリアルでは、複製するテーブルとイベント(挿入、更新、削除のイベントなど)を選択します。

  9. 省略可: 詳細プロパティを構成します。このチュートリアルでは、デフォルト設定を使用できます。

  10. [Next] をクリックします。

  11. [Review assessment] ページでいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。問題が発生した場合は、処理を進める前に問題を解決する必要があります。このチュートリアルでは、いずれかのテーブルに問題がある場合に、テーブルの選択手順に戻って、問題のないテーブルまたはイベント(挿入、更新、削除)を選択します。

    ソース データベースから BigQuery へのデータタイプの変換の詳細については、レプリケーション データタイプをご覧ください。

  12. [Next] をクリックします。

  13. レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。

ジョブを開始する

  • [レプリケーション ジョブの詳細] ページで、[開始] をクリックします。

レプリケーション ジョブは、プロビジョニング開始実行中の各状態に移行します。実行中の状態では、レプリケーション ジョブによって、選択したテーブルデータの初期スナップショットが BigQuery に読み込まれます。この状態では、テーブルの状態は [スナップショット] として表示されます。最初のスナップショットを BigQuery に読み込むと、テーブルに対する変更はすべて BigQuery に複製され、テーブルの状態は [Replicating] と表示されます。

ジョブをモニタリングする

レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。

[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。

  1. [レプリケーション] ページで、レプリケーション ジョブの [名前] をクリックします。

  2. [モニタリング] をクリックします。

BigQuery で結果を表示する

レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する MySQL データベースとテーブル名を継承します。

  1. Google Cloud コンソールで、[BigQuery] ページに移動します。

    BigQuery に移動

  2. 左側のパネルでプロジェクト名を選択して、データセットのリストを展開します。

  3. 結果を表示するには、sakila データセットを選択してテーブルを選択します。

詳細については、BigQuery のドキュメントをご覧ください。