Open6
Datastream で CloudSQLのPostgreSQLとBigQueryを同期する際の注意

CloudSQL側にフラグの設定が必要
cloudsql.logical_decoding
DBが再起動するので注意

パブリケーションを作成
alter user postgres with replication;
create publication "mypublication" for all tables;

レプリケーションスロットを作成
select PG_CREATE_LOGICAL_REPLICATION_SLOT('myslot', 'pgoutput');

Datastream側に接続プロファイル作成
Postgres側
外部IPを指定する場合は、CloudSQLのデータベースインスタンスの接続設定からパブリックIPの承認ネットワークを追加する必要あり。
IPは、接続プロファイルのウィザードを進むと表示されます
BigQuery側

CloudSQLとDatastreamをプライベートネットワークに繋ぐ
Datastreamのプライベート接続を使うが、直接繋ぐことはできない。
リバースプロキシ(CloudSQL Auth Proxy) を経由する必要がある。
結果ComputeEngineのコストかかるんかい~
CloudSQLのプライベート接続はCloudSQL内のVPC(Google側管理)と、自分が設定したVPCは別であり、VPCピアリング接続をしている。
Datastreamもおなじ構成で、自分が設定したVPCは別で、VPCピアリング接続をしている。
VPCピアリングを複数使い接続を行うこと(推移的に接続すること)は制約できない。

パブリック接続の注意点
暗号化されない
SSHトンネル使うとコストかかる
Cloud SQLを、SSL接続にして、クライアント証明書は使わないなら最低限は暗号化される?