概要
この記事は Replicate data to BigQuery in real time with Datastream の内容を翻訳・補間したものです。
Datastream はサーバーレスで簡単に使える変更データキャプチャ(CDC)とレプリケーションのサービスです。
この記事では、Datastream を用いて Cloud SQL の変更データキャプチャ(CDC)を BigQuery に格納する方法をまとめます。
前提
Datastream を利用するには、対象となる Google Cloud プロジェクトが必要です。
Google Cloud Console の プロジェクト セレクタ ページで、Google Cloud プロジェクトを選択または作成してください。
また、対象の Cloud プロジェクトに対して課金が有効になっていることを確認してください。
つぎに、Datastream API を有効化 してください。
さらに、ユーザー アカウントに Datastream 管理者のロールが割り当てられていることを確認します。確認するには、IAM ページを開いてください。
もし、Cloud SQL インスタンスが用意できていない場合は、インスタンスの作成 | Cloud SQL for MySQL や インスタンスの作成 | Cloud SQL for PostgreSQL などに従ってインスタンスをご用意ください。
CMEK の利用
CMEK を利用して、Datastream を暗号化したい場合は、「顧客管理の暗号鍵(CMEK)を使用する」 の手引きに従ってください。
暗号化を必要としない場合はこの手順をスキップしてもよいです。
プライベート接続構成の作成
Datastream が プライベートネットワークを介して Cloud SQL と接続するために必要な設定をします。
「プライベート接続構成の作成」に従って構成を作成してください。
接続プロファイルの作成
ソース接続プロファイルの作成
データベースの種類に応じて以下のいずれかの手順に従い、ソース接続プロファイルを作成してください。
宛先接続プロファイルの作成
Create a connection profile for BigQuery に記載の手順に従い、ソース接続プロファイルを作成してください。具体的には以下の手順に従います。
-
Google Cloud Console の接続プロファイルページに移動します
-
[プロフィールを作成] をクリックします。
-
[接続プロファイルの作成] ページで、 BigQuery プロファイル タイプをクリックします(BigQuery の接続プロファイルを作成するため)。
-
次の表に従って、[BigQuery プロファイルの作成] ページのフィールドに入力します。
フィールド | 説明 |
---|
接続プロファイル名 | BigQuery の宛先データセットへの接続プロファイルの表示名を入力します。これは、ストリームの作成時に既存の接続プロファイルが選択された場合と同様に、接続プロファイル リストで使用されます。 |
接続プロファイル ID | 自動生成値をそのまま使用します。 |
リージョン | 接続プロファイルが保存されている地域を選択します。接続プロファイルは、すべてのリソースと同様に地域に保存され、ストリームはストリームと同じ地域に保存されている接続プロファイルのみを使用することができます。地域の選択は、Datastream がソースまたはデスティネーションに接続できるかどうかに影響しませんが、地域がダウンタイムを経験した場合、可用性に影響する可能性があります。 |
-
オプションとして、ラベルを使用して Datastream リソースを整理することができます。
- ラベルを作成するには、[ラベルを追加]をクリックし、ラベルのキーと値のペアを入力します。
- ラベルを削除するには、ラベルを含む行の右側にあるゴミ箱のアイコンをクリックします。
-
[作成]をクリックします。
ストリームの作成
つぎに、ストリームを作成します。Datastream はここで作成するストリームを使って、ソースデータベースから BigQuery へとデータを転送します。
以下に続く手順で作成したストリームを確認・変更するには、ストリームを表示する、ストリームを変更するの手引きに従ってください。
ストリームの設定を定義する
- Google Cloud Console で Datastream のストリームページに移動します。
- [ストリームを作成] をクリックします。
- [ストリームの作成]ページの [ストリームの詳細を定義] パネルで次の情報を指定します。
- ストリーム名を入力します。
- 自動生成されたストリーム ID をそのまま使用します。
- [リージョン] メニューから、ソース接続プロファイルを作成したリージョンを選択します。
- [ソース タイプ] メニューから、ソース接続プロファイルの作成で選択したプロファイルタイプを選択します。
- [宛先の種類] メニューから、 BigQuery プロファイル タイプを選択します。
- デフォルトでは、データは Google Cloud が管理する鍵で暗号化されます。ご自身で暗号化を管理する場合は、顧客管理の暗号鍵(CMEK)を使用できます。手順は次のとおりです。
- [CMEK を使用する] チェックボックスをオンにします。
- [CMEK を選択] プルダウン メニューから、CMEK を選択します。
- 必要に応じて、ラベルを使用して Datastream のリソースを整理します。
- ラベルを作成するには、[ラベルを追加] をクリックして、ラベルの Key-Value ペアを入力します。
- ラベルを削除するには、そのラベルがある行の右側のゴミ箱アイコンをクリックします。
- ストリームに対して環境をどのように準備する必要があるかを反映するために、自動的に生成される必要な前提条件を確認します。これらの前提条件には、ソース データベースの構成方法と BigQuery の構成方法が含まれます。これらの前提条件の詳細については、移行元 Oracle データベースの構成をご覧ください。
- [続行] をクリックします。ソース データベースのタイプに対して [ストリームの作成] ページの [接続プロファイルの定義] パネルが表示されます。
ソース接続プロファイルに関する情報を指定する
次に、以下の手順に従います。
- Oracle、MySQL または PostgreSQL のソース接続プロファイルを作成した場合は、接続プロファイルのリストから対応するデータベースタイプの接続プロファイルを選択します。
- [テストを実行] をクリックして、移行元データベースと Datastream が相互に通信できることを確認します。
- [続行] をクリックします。[ストリームの作成] ページの [ストリーム ソースの構成] パネルが表示されます。
ストリームのソース データベースに関する情報の構成
つづいて、Configure information about the source database for the streamの手順に従います。
- ソース データベースのレプリケーション スロットとパブリケーション名を指定します。レプリケーション スロットとパブリケーションは、インスタンスの作成 | Cloud SQL for MySQL や インスタンスの作成 | Cloud SQL for PostgreSQL などに従って Cloud SQL インスタンスを構成する際に作成されています。
- [含めるオブジェクト] メニューを使用して、Datastream が BigQuery にレプリケートするソース データベース内のテーブルとスキーマを指定します。たとえば、すべてのテーブルとスキーマを転送する場合は、メニューからすべてのスキーマのすべてのテーブルを選択します。
- [続行]をクリックします。[ストリームの作成] ページの [ BigQuery 接続プロファイルの定義] パネルが表示されます。
宛先接続プロファイルの選択
- [宛先接続プロファイル] メニューから、BigQuery の宛先接続プロファイルを選択します。
- [続行]をクリックします。[ Create stream ] ページの [ Configure stream destination ] パネルが表示されます。
ストリームの宛先に関する情報を構成する
- Datastream がソース データベースのすべてのスキーマに対して BigQuery にデータセットを自動的に作成するように、[各スキーマのデータセット] オプションを選択します。
- BigQuery でデータセットが作成される場所を選択します。この場所は、Datastream ストリームが作成されるリージョンと同じである必要はありません。
- Prefix を設定します。Datastream は、BigQuery で作成するすべてのデータセットの先頭に、この文字列を追加します。
- [データの期限を指定してください]ドロップダウン リストの値を選択します。BigQuery はこの値を使用して、クエリを実行したときにデータがどの程度古いかを判断します。
- [続行]をクリックします。[ストリームの作成] ページの [ストリームの詳細を確認して作成] パネルが表示されます。
ストリームを作成する
- ストリームの詳細と、ストリームがソース PostgreSQL データベースから BigQuery にデータを転送するために使用するソースと宛先の接続プロファイルを確認します。
- [検証を実行] をクリックして、ストリームを検証します。ストリームを検証することにより、Datastream はソースが適切に構成されていることを確認し、ストリームがソースと宛先の両方に接続できることを検証し、ストリームのエンドツーエンドの構成を検証します。
- すべての検証チェックに合格したら、 [作成] をクリックします。
- [ストリームを作成しますか]ダイアログボックスで、[作成]をクリックします。
ストリームを開始する
ストリームの作成の節で作成したストリームを開始します。
ストリームを開始することで、Datastream はソース データベースから宛先にデータ、スキーマ、テーブルを転送できます。
開始するためには以下の手順に従ってください。
- Google Cloud Console で Datastream のストリームページに移動します。
- 開始するストリームの左側にあるチェックボックスをオンにします。
- [START] ボタンをクリックします。
- ダイアログ ボックスで [開始] をクリックします。ストリームのステータスが Not started から Starting、Running に変わります。
ストリームを確認する
Datastream がソースデータベースのすべてのテーブルから BigQuery にデータを転送することを確認します。
- Google Cloud Console で Datastream のストリームページに移動します。
- 作成したストリームをクリックします。
- [ストリームの詳細] ページで、[宛先書き込みパス]フィールドの下に表示されるリンクをクリックします。BigQuery SQL ワークスペースが別のタブで開きます。
- ソースデータベースのスキーマとテーブルを表すデータセットとテーブルが表示されることを確認します。
- いずれかのテーブルをクリックして、データのプレビューを表示します。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
