このチュートリアルでは、変更されたデータを Microsoft SQL Server データベースから BigQuery テーブルに継続的に複製するジョブを作成してデプロイする方法を説明します。
目標
このチュートリアルの内容は次のとおりです。
- SQL Server インスタンスで変更データ キャプチャ(CDC)を有効にします。
- 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 ネットワーク ピアリングを設定します。- インスタンスを作成するときに、[アクセラレータを追加] をクリックし、[レプリケーション] チェックボックスをオンにして、レプリケーションを有効にします。
- 既存のインスタンスで有効にするには、レプリケーションを有効にするをご覧ください。
 
- AdventureWorks2017(OLTP)データベースをダウンロードし、SQL Server インスタンスにデータを読み込みます。 
- ローカルマシンに 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] をクリックします。 
- レプリケーション ジョブの詳細の概要を確認し、[レプリケーション ジョブをデプロイする] をクリックします。 
- [レプリケーション ジョブの詳細] ページで、[開始] をクリックします。
- [レプリケーション] ページで、レプリケーション ジョブの [名前] をクリックします。 
- [モニタリング] をクリックします。 
- Google Cloud コンソールで BigQuery を開きます。 
- 左側のパネルでプロジェクト名をクリックして、データセットのリストを展開します。 
- adventureworks2017データセットを選択して、表示するテーブルを選択します。
- 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.
- 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 へのデータの複製のチュートリアルを実施する。
ネットワークの詳細については、Cloud Data Fusion で HAProxy を使用して複雑なネットワーク トポロジをナビゲートするをご覧ください。
必要なロール
このチュートリアルで必要な権限を取得するには、IAM によるアクセス制御とサービス アカウントにユーザー権限を付与するをご覧ください。
省略可: SQL Server VM インスタンスを設定する
SQL Server データベースで CDC を有効にする
レプリケーションでは、レプリケートするデータベースとテーブルで変更データ キャプチャ(CDC)を有効にします。
Cloud Data Fusion Replication ジョブを作成して実行する
JDBC ドライバをアップロードする
ジョブを作成します
ジョブを開始する
レプリケーション ジョブは、プロビジョニング、開始、実行中の各状態に移行します。レプリケーション ジョブでは、選択したテーブルデータ(たとえば、People テーブル)の初期スナップショットを BigQuery に読み込みます。この状態で People テーブルの状態は [Snapshoting] と表示されます。最初のスナップショットを BigQuery に読み込むと、People テーブルに対する変更はすべて BigQuery に複製されます。テーブルの状態は [複製中] と表示されます。
ジョブをモニタリングする
レプリケーション ジョブの開始と停止、構成とログの確認、レプリケーション ジョブのモニタリングを行うことができます。
[レプリケーション ジョブの詳細] ページから、レプリケーション ジョブ アクティビティをモニタリングできます。
BigQuery で結果を表示する
レプリケーション ジョブは、複製されたデータセットとテーブルを BigQuery に作成し、対応する SQL Server データベースとテーブル名を継承します。
詳細については、BigQuery のドキュメントをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
チュートリアルが終了したら、Google Cloudで作成したリソースを削除します。
VM インスタンスを削除します。
Cloud Data Fusion インスタンスを削除する
手順に従って Cloud Data Fusion インスタンスを削除します。