背景
Managed Service for TimescaleTimescale Cloud.
サポート対象の Postgres バージョン
論理レプリケーションを有効にする
- マネージドサービスを使用しており、そのプロバイダーがサイドバーに掲載されている場合は、そのプロバイダー向けのガイドに従ってください。
- TimescaleDB を自分でデプロイしている場合は、汎用ガイドに従ってください。
Timescale Cloud では論理レプリケーションの有効化がサポートされておらず、これは CDC モードの Postgres パイプに必要です。
そのため、Timescale Cloud のユーザーは、Postgres ClickPipe でデータの一度だけロード (
Initial Load Only) しか実行できません。設定
_timescaledb_internal スキーマ内にある対応する複数の
「chunk」テーブルに保存されます。ハイパーテーブルに対してクエリを実行するうえでは、これは
問題になりません。しかし、論理レプリケーション中は、ハイパーテーブルの変更ではなく、
chunk テーブルの変更を検出することになります。Postgres ClickPipe には、chunk テーブルから親ハイパーテーブルへの変更を自動的に再マッピングするロジックがありますが、
これには追加の手順が必要です。
データの一度だけロード (
Initial Load Only) のみを実行したい場合は、手順 2 以降をスキップしてください。-
ClickPipes 専用のユーザーを作成します:
-
前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。次の例は
publicスキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返し実行してください: -
ユーザーにレプリケーション権限を付与します:
-
Postgres のスーパーユーザーまたは管理者として、レプリケーションしたいハイパーテーブルを含む publication を作成します。パイプが基盤となる chunk からの変更を受け取れるようにするため、publication には
_timescaledb_internalスキーマ全体も必ず含める必要があります。パフォーマンス上のオーバーヘッドを避けるため、publication には必要なテーブルだけを含めることを強く推奨します。
clickpipes publication には、指定したテーブルで発生した変更イベントの集合が含まれ、後でレプリケーションストリームを取り込むために使用されます。
一部のマネージドサービスでは、管理者ユーザーにスキーマ全体の publication を作成するために必要な権限が付与されていません。その場合は、利用中のプロバイダーにサポートチケットを起票してください。あるいは、この手順 (および以降の手順) をスキップし、代わりにデータを一度だけロードすることもできます。