このチュートリアルでは、変更されたデータを Microsoft SQL Server データベースから BigQuery テーブルに継続的に複製するジョブを作成してデプロイする方法を説明します。
目標
このチュートリアルの内容は次のとおりです。
- SQL Server インスタンスで変更データ キャプチャ(CDC)を有効にします。
- Cloud Data Fusion Replication ジョブを作成して実行します。
- BigQuery で結果を表示します。
料金
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
複製が実行されると、Dataproc クラスタに対して課金され、BigQuery の処理料金が発生します。これらの費用を最適化するには、BigQuery 定額料金を適用することを強くおすすめします。
準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
- バージョン 6.3.0 以降でパブリック Cloud Data Fusion インスタンスを作成します。プライベート インスタンスを作成する場合は、VPC ネットワーク ピアリングを設定します。
- インスタンスを作成するときに、[アクセラレータを追加] をクリックし、[レプリケーション] チェックボックスをオンにして、レプリケーションを有効にします。
- 既存のインスタンスで有効にするには、レプリケーションを有効にするをご覧ください。
ネットワークの詳細については、Cloud Data Fusion で HAProxy を使用して複雑なネットワーク トポロジをナビゲートするをご覧ください。
必要なロール
このチュートリアルで必要な権限を取得するには、IAM によるアクセス制御とサービス アカウントにユーザー権限を付与するをご覧ください。
省略可: SQL Server VM インスタンスを設定する
AdventureWorks2017(OLTP)データベースをダウンロードし、SQL Server インスタンスにデータを読み込みます。
SQL Server データベースで CDC を有効にする
レプリケーションの場合は、複製するデータベースとテーブルで変更データ キャプチャ(CDC)を有効にします。
Cloud Data Fusion Replication ジョブを作成して実行する
JDBC ドライバをアップロードする
ローカルマシンに SQL Server JDBC ドライバをダウンロードします。
Cloud Data Fusion ウェブ インターフェースで、JDBC ドライバをアップロードします。次の値を使用して、JDBC ドライバを構成します。
- [名前] フィールドに「
sqlserver
」と入力します。 - [Class Name] フィールドに「
com.microsoft.sqlserver.jdbc.SQLServerDriver
」と入力します。 - [バージョン] フィールドはデフォルトのままにしておきます。
- [名前] フィールドに「
ジョブを作成します
Cloud Data Fusion ウェブ インターフェースで、[レプリケーション] をクリックします。
[レプリケーション ジョブを作成する] をクリックします。
[新しいレプリケーション ジョブの作成] ページで、レプリケーション ジョブの [名前] を指定し、[次へ] をクリックします。
ソースを構成します。
- ソースとして [Microsoft SQL Server] を選択します。
- [Host] に、読み取り元の SQL Server のホスト名を入力します。
- [Port] に、SQL Server への接続に使用するポート「
1433
」を入力します。 - [JDBC Plugin Name] に
sqlserver
または JDBC ドライバを構成したときに指定した名前を選択します。 - [Database name] に「
AdventureWorks2017
」と入力します。 - [Credentials] セクションで、SQL Server にアクセスするためのユーザー名とパスワードを入力します。
[Next] をクリックします。
ターゲットを構成します。
- BigQuery ターゲットを選択します。
- プロジェクト ID とサービス アカウント キーが自動的に検出されます。デフォルト値をそのまま使用します。
- 省略可: [Advanced] セクションで、Cloud Storage バケットの名前とロケーション、負荷間隔、ステージング テーブルのプレフィックス、テーブルまたはデータベースの削除時の動作を構成できます。
[次へ] をクリックします。
接続に成功すると、
AdventureWorks2017
テーブルのリストが表示されます。このチュートリアルでは、いくつかのテーブルとイベント(Insert
、Update
、Delete
のイベントなど)を選択します。省略可: 詳細プロパティを構成します。このチュートリアルでは、デフォルト設定を使用できます。
[Next] をクリックします。
[Review assessment] ページでいずれかのテーブルの横にある [View mappings] をクリックすると、スキーマの問題、欠損している機能、接続性に関する、複製中に発生する可能性のある問題の評価を取得できます。問題を解決してから、手続きを進めてください。このチュートリアルでは、いずれかのテーブルに問題がある場合に、テーブルの選択手順に戻って、問題のないテーブルまたはイベントを選択します。
ソース データベースから BigQuery へのデータタイプの変換の詳細については、レプリケーション データタイプをご覧ください。
[Back] をクリックします。
[Next] をクリックします。
レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。
ジョブを開始する
- [レプリケーション ジョブの詳細] ページで、[開始] をクリックします。
レプリケーション ジョブは、プロビジョニング、開始、実行中の各状態に移行します。レプリケーション ジョブでは、選択したテーブルデータ(たとえば、People テーブル)の初期スナップショットを BigQuery に読み込みます。この状態で People テーブルの状態は [Snapshoting] と表示されます。最初のスナップショットを BigQuery に読み込むと、People テーブルに対する変更はすべて BigQuery に複製されます。テーブルの状態は [複製中] と表示されます。
ジョブをモニタリングする
レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。
[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。
[レプリケーション] ページで、レプリケーション ジョブの [名前] をクリックします。
[モニタリング] をクリックします。
BigQuery で結果を表示する
レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する SQL Server データベースとテーブル名を継承します。
Google Cloud コンソールで BigQuery を開きます。
左側のパネルでプロジェクト名をクリックして、データセットのリストを展開します。
adventureworks2017
データセットを選択して、表示するテーブルを選択します。
詳細については、BigQuery のドキュメントをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
チュートリアルが完了したら、Google Cloud で作成したリソースを削除します。
VM インスタンスを削除します。
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Cloud Data Fusion インスタンスを削除する
手順に従って Cloud Data Fusion インスタンスを削除します。
プロジェクトを削除する
- 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 リファレンスを確認する。
- MySQL から BigQuery へのデータの複製のチュートリアルを実施する。
- Oracle から BigQuery へのデータの複製のチュートリアルを実施する。