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