Dbクラスターには最大256ノードのシステムがあります。それらの1つから他のすべてにデータを複製する必要があります。ただし、複製するすべての行には、複製する必要のあるノードのリストがありますが、他のノードでは、同じ行が親テーブルキーの1つなしで孤立します。それらを除外するため、またはそれらが不必要に複製されるのを防ぐために、複製するノードを選択するようにSlonyに教える方法を見つけようとしていますが、そのような機能はすぐには利用できません。誰かがそれを試しましたか(その機能のソースコードをカスタマイズするなど)?
_id,_text,_nodes
----------------
1 'one' {1,101}
2 'two' {2,102}
256 '...' {0,256}
次に、行id = 1がノード1や101などに複製されます。
同様の議論 重要なレコードのみを特定のデータベースに複製する ただし、まだ正しい方向を示していません。
これを直接行う方法がわかりません。私が理解しているように、Slonyはレプリケーションの宛先を行レベルではなくテーブルレベルに設定します。
この特定の問題を解決する方法は、レプリケーションの宛先グループに基づいてビューをマテリアライズし、トリガーを使用してそれらを維持することです。その後、Slonyはこれらのテーブルをスレーブに複製できるはずです。メインテーブルにデータを入力するスレーブにトリガーを設定できるかどうかはわかりませんが、そうでない場合は、回避する方法があります。これには、初期テーブルをレプリケーションから切り離す必要があり、もちろん複雑さが増します。
プッシュプルキューイングスキーマを使用したPGQでこれを実現できました。最大の課題は、コンシューマーを正しくプログラミングすることでしたが、今ではうまく機能しています。また、Slonよりも高速です。