Datastream の自動ストリーム設定フローを使用して、AlloyDB for PostgreSQL クラスタの概要ページから BigQuery にデータを直接複製できます。Datastream は、Virtual Private Cloud(VPC)接続、ソース データベース設定、ストリーム リソースを自動的に構成することで、設定を簡素化します。
デプロイにセカンダリ クラスタまたはインスタンスが含まれている場合でも、Datastream はプライマリ AlloyDB クラスタのプライマリ インスタンスからストリームを作成します。自動フローを使用するには、プライマリ インスタンスでプライベート サービス アクセスが有効になっていて、Private Service Connect インターフェースを使用している必要があります。
無料枠
Datastream では、無料枠を使用して AlloyDB for PostgreSQL から BigQuery にストリーミングできます。毎月最大 100 GiB の変更データ キャプチャ データを無料で利用できます。詳細については、Datastream の料金をご覧ください。
始める前に
- Datastream API、Network Connectivity API、Compute Engine API を有効にします。
- Datastream リソースの作成と管理に必要な Identity and Access Management(IAM)権限があることを確認します。詳しくは、後述の説明をご覧ください。
- レプリケーション用のソース AlloyDB for PostgreSQL クラスタを作成して構成します。詳細については、CDC 用に AlloyDB for PostgreSQL データベースを構成するをご覧ください。
ストリームを作成する前に、クラスタの論理レプリケーションを有効にすることをおすすめします。論理レプリケーションを有効にしない場合、Datastream によって有効にされ、移行元インスタンスが再起動されます。
AlloyDB for PostgreSQL クラスタの論理レプリケーションを有効にする方法については、CDC 用に AlloyDB for PostgreSQL データベースを構成するをご覧ください。
ソースクラスタがプライベート サービス アクセスを使用するように構成されていることを確認します。
必要な権限
自動ストリーム作成フローを使用するには、次の Identity and Access Management(IAM)ロールまたは権限が必要です。
serviceusage.services.enable、compute.networkAdmin。必要な API を有効にして、ネットワーク構成タスクを実行します。alloydb.admin: クラスタとインスタンスの構成タスク。datastream.admin。Datastream が代行する管理タスクに使用します。
選択したデータベース内のすべてのスキーマとテーブルが postgres ロールまたは alloydbsuperuser ロールに付与されていることを確認します。自動フローには、デフォルトでデータベース内のすべてのスキーマとテーブルが含まれるため、自動的に作成されたユーザーにスキーマまたはテーブルに対する権限がない場合、ストリームの作成は失敗します。
ストリーム設定をカスタマイズする場合は、データベース管理者ユーザーに、複製するスキーマに対する GRANT 権限と、ソース データベース内の管理タスクと構造タスクに対する追加の権限も必要です。ソース データベースに接続して、次のコマンドを実行します。
GRANT alloydbsuperuser TO "USER_NAME"; ALTER ROLE "USER_NAME" CREATEROLE; GRANT SELECT on ALL TABLES IN SCHEMA "SCHEMA_NAME" to"USER_NAME" WITH GRANT OPTION; ALTER DEFAULT PRIVILEGES IN SCHEMA "SCHEMA_NAME" GRANT SELECT ON TABLES TO "USER_NAME" WITH GRANT OPTION; GRANT CREATE ON DATABASE "DATABASE_NAME" TO "USER_NAME";
将来のテーブル
将来のテーブルがストリームに自動的に追加されるのは、自動フロー中に認証に使用するアカウントの詳細を提供するユーザーによって作成された場合のみです。将来のテーブルが別のユーザーによって作成された場合、そのユーザーは Datastream リーダー ユーザーにテーブルに対する SELECT 権限を明示的に付与する必要があります。
ストリームを作成して開始する
ストリームを作成して開始する手順は次のとおりです。
コンソール
ソース AlloyDB for PostgreSQL クラスタの概要ページに移動します。
データをストリーミングするプライマリ クラスタをクリックします。
次のいずれかの方法で、ストリームを自動的に作成して開始します。
- [クラスタの詳細] ページの [データ レプリケーション] で、[ストリームを開始] をクリックします。
- [統合] セクションで、[BigQuery にデータを複製する] の [ストリームを開始] をクリックします。
- [Launchpad] タブの [他のGoogle Cloud プロダクトとシームレスに統合する] で、[BigQuery にデータを複製する] をクリックします。
[データを複製するストリームの開始] ペインが開きます。
[ストリームの設定] で、作成するストリームのデフォルト設定を確認します。
ソース データベースを変更するには、対応するプルダウンを開いて別の値を選択します。
ストリームを作成して開始する準備ができたら、[ストリームを開始] をクリックします。
ストリームの設定を変更する必要がある場合は、[カスタマイズ] をクリックします。
ストリーム設定のカスタマイズ
[カスタマイズ] をクリックすると、[ストリーム設定のカスタマイズ] ページが表示されます。ストリーム設定をカスタマイズするために必要な権限があることを確認します。
使ってみる
- [開始する] ページの [ストリーム名] フィールドに、ストリームの名前を入力します。[ストリーム ID] フィールドが自動的に入力されます。
[インスタンスのユーザー アカウントの詳細を指定する] セクションで、認証方法を選択します。
IAM データベース認証: このオプションは、ユーザーに Identity and Access Management(IAM)プリンシパル ID が割り当てられている場合に使用できます。詳細については、IAM プリンシパルをご覧ください。このオプションを選択した場合は、
alloydbsuperuserロールとCREATEROLE権限をユーザーに手動で付与する必要があります。- Google Cloud コンソールで、[AlloyDB for PostgreSQL クラスタ] ページに移動します。
- AlloyDB for PostgreSQL クラスタを選択します。
- ナビゲーション メニューで [AlloyDB for PostgreSQL Studio] をクリックしてログインします。
- [エクスプローラ] ペインで、ユーザーに対して次のクエリを実行します。
GRANT alloydbsuperuser TO "USER_NAME"; ALTER ROLE "USER_NAME" CREATEROLE;
- 組み込みデータベース認証:
alloydbsuperuserロールを持つユーザーのユーザー名とパスワードを指定します。ユーザーにalloydbsuperuserロールがない場合は、IAM データベース認証セクションの手順に沿って手動で付与します。組み込みデータベース認証を選択する場合は、複製するテーブルに対するGRANT権限がユーザーに付与されていることも確認してください。
リージョン、暗号化、ラベルなど、ストリームの詳細を確認します。必要に応じて、[その他のストリームの詳細] セクションを開いて変更を適用します。
[続行] をクリックします。
ソースの構成
[ソースの構成] ページで、データを複製するデータベースを選択します。
[選択したオブジェクト] リストでは、デフォルトですべての使用可能なオブジェクトが選択されています。リストに表示されるオブジェクトは、ストリーミングに必要な権限を持つオブジェクトです。選択したオブジェクトを変更するには、リストで選択内容を変更します。
バックフィル モードやバックフィルの同時接続数の最大値など、高度なストリーム構成を確認します。必要に応じて、[高度なストリーム構成] セクションを開いて変更を適用します。
[続行] をクリックします。
宛先の構成
- [宛先を構成する] ページで、必要に応じて BigQuery の宛先の設定を調整します。詳細については、ストリームの宛先に関する情報の構成をご覧ください。
ストリームを作成して開始する
[作成して開始] をクリックしてストリームを作成して開始するか、[開始せずに作成] をクリックしてストリームを作成し、後で Datastream で開始します。
自動的に実行されるタスクに関する通知が届きます。
- Datastream は、内部 IP アドレス範囲、サブネットワーク、ネットワーク アタッチメントなど、必要な Virtual Private Cloud リソースを作成します。
- Datastream は、CDC 用のテーブルを構成し、レプリケーション スロットを設定し、データベース内のすべてのテーブルのパブリケーションを設定して、専用の Datastream ユーザーを作成します。
- Datastream は、プライベート接続構成と、ソースと宛先の接続プロファイルを作成します。
ストリームを作成して開始することを確認します。
ストリームをモニタリングする
Google Cloud コンソールのソース インスタンスの概要ページで、基本的なストリームの詳細をモニタリングできます。このページには、ストリームのステータス、ストリーム名、宛先 BigQuery データセット、宛先プロジェクト ID などの情報が表示されます。
概要ページから、ストリームの開始や一時停止などの操作を行うこともできます。より詳細なモニタリング情報を確認するには、ストリーム名をクリックして Datastream に移動します。
ストリームの削除
自動フローを使用して作成したストリームを削除すると、PostgreSQL レプリケーション スロットなどの一部のリソースが自動的に削除されます。ただし、手動で削除する必要があるリソースもあります。
- パブリケーション。パブリケーションはデータベース管理者ユーザーを使用して作成され、そのオーナー(デフォルトでは作成したユーザー)のみが削除できます。
- Datastream リーダー ユーザー。
- Datastream のソースと宛先の接続プロファイル
- プライベート接続リソース。
- 自動フロー中に作成されたすべてのネットワーク リソース(サブネットワーク、ネットワーク アタッチメントなど)。
次のステップ
- ストリームを手動で作成する方法を学習する。
- AlloyDB for PostgreSQL ソースを構成する方法を学習する。
- ストリームをモニタリングする方法を確認する。