コンテンツに移動
デベロッパー

変更データ キャプチャ(CDC)を使って Google Cloud 上の SQL Server の変更をトラッキング

2021年5月7日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 4 月 23 日に、Google Cloud blog に投稿されたものの抄訳です。

Cloud SQL for SQL Server で変更データ キャプチャ(CDC)がサポートの対象となったことで、Google Cloud 上の SQL Server データベースに加えた変更を正確に把握できるようになりました。以下の SQL Server のバージョンで、Cloud SQL の CDC がサポート対象になりました。

  • SQL Server 2017 Standard

  • SQL Server 2017 Enterprise

このブログ投稿では、CDC を有効にするために必要な手順と、キャプチャした変更を表示するクエリの例をご紹介します。

まず、Cloud SQL に SQL Server インスタンスを作成する必要があります。これは、Google Cloud Console から行えます。

SQL Server インスタンスの作成方法や Azure Data Studio を使ってそのインスタンスに接続する方法について詳しくは、以前の投稿 Try out SQL Server on Google Cloud at your own pace(自分のペースで Google Cloud 上の SQL Server を使ってみる)をご覧ください。

データベースとテーブルを作成

まず、SQL Server インスタンスに新しいデータベースを作成します。Azure Data Studio と SQL Server インスタンスを接続したまま、Azure Data Studio でサーバーを右クリックし、[New Query] を選択します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_1nCfcw6.max-900x900.max-900x900.png

以下の SQL ステートメントを入力し、連動する新しいデータベースを作成します。

読み込んでいます...

[Run] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image5_d7sKVk5.max-1200x1200.max-1200x1200.png

次に、「leaderboard」という名前の新しいテーブルを作成します。次のクエリを入力します。

読み込んでいます...

[Run] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image6_c47ifB1.max-1200x1200.max-1200x1200.png

データベースとテーブルで変更データ キャプチャ(CDC)を有効にする

次にいよいよ今回の投稿のメインである、変更データ キャプチャを有効にする手順に移ります。これには 2 つのステップがあり、まずデータベースで CDC を有効にしてから次にテーブルで有効にします。まず、以下の SQL ステートメントを入力し、「demo」という名前のデータベースで CDC を有効にします。

読み込んでいます...

[Run] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image4_Tj6nV6G.max-900x900.max-900x900.png

次に、以下の SQL ステートメントを入力し、「leaderboard」という名前のテーブルで CDC を有効にします。

読み込んでいます...

[Run] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image7_ak3PtcG.max-1200x1200.max-1200x1200.png

CDC が想定どおりに機能していることを確認する

 さて、データベースとテーブルで CDC を有効にできたので、いくつかクエリを実行してデータを挿入し、CDC クエリをテストしてみて、CDC でテーブルへの変更を想定どおりにトラッキングできているかどうか確認します。CDC では、INSERT、UPDATE、DELETE の各ステートメントの実行など、テーブルに対して行われたすべての変更操作をキャプチャします。ここでは、INSERT ステートメントをいくつか実行して、CDC でこの操作がどのようにキャプチャされるかを見てみましょう。

次の SQL ステートメントを入力して、「leaderboard」という名前のテーブルに 2 つのレコードを挿入します。

読み込んでいます...

[Run] ボタンをクリックします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3_hQfq9IK.max-1100x1100.max-900x900.png

テーブルにいくつかの変更を加えたので、最後に、CDC でキャプチャしたすべての結果を「<schema>_<table_name>_CT」という名前の変更用テーブルに取り込むクエリを実行してみましょう。ここでは、作成したテーブルの名前を「dbo_leaderboard_CT」としています。

次のクエリを入力します。

読み込んでいます...

[Run] ボタンをクリックします。必要な操作は以上です。INSERT 操作は CDC メタデータとともにキャプチャされています。これを使って SQL Server のデータベース テーブルに変更が加えられた時間と変更内容を正確にトラッキングできます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_IoIILvb.max-800x800.max-800x800.png

今度は、Cloud SQL の CDC サポートに関するドキュメントを参照し、Cloud SQL で SQL Server インスタンスを作成しましょう。これは、Google Cloud Console から行えます。

-Google Cloud 担当デベロッパー プログラム エンジニア Jonathan Simon

投稿先