本番環境では、データベースのサイズは数百ギガバイトです。開発とテストのために、このデータベースのスナップショットを作成する必要があります。スナップショットは機能的には同等ですが、サイズは10または20ギガです。
課題は、ビジネスエンティティのデータが多くのテーブルに分散していることです。一部のエンティティのみがダンプに含まれるように、フィルター処理されたスナップショットを作成する必要があります。そうすれば、開発やテストのために毎月かそこらで新しいスナップショットを取得できます。
たとえば、次のような多対多の関係を持つエンティティがあるとします。
- 会社にはN部門があります
- 部門にはN人の従業員がいます
- 従業員にはN回の出席記録があります
1000社、2500部門、175000人の従業員、そして数千万人の出席記録があります。たとえば、最初の100社とそのすべての構成部門、従業員、および出席記録を引き出す複製可能な方法が必要です。
現在、スキーマにはpg_dumpを使用しています。次に、pg_dumpを--disable-triggersおよび--data-onlyを指定して実行し、小さいテーブルからすべてのデータを取得します。開発サイクルが速く、カスタムスクリプトが壊れやすく、古くなる可能性が高いため、データの一部を取り出すためにカスタムスクリプトを作成する必要はありません。
どうすればこれを行うことができますか?データベースから論理パーティションを引き出すのに役立つサードパーティのツールはありますか?これらのツールは何と呼ばれますか?
一般的なアドバイスも歓迎します!