同じ PostgreSQL 9.3 サーバー (Windows 上で実行) で 2 つのデータベースを実行しています。2 つのデータベースの構造はまったく同じです。同じテーブル、同じキー、同じ制約などです。唯一の違いは、データが定期的に一方から他方に移動されることです。顧客と注文に関する情報を含むデータベースのようなものだと考えてください。たとえば、2 年以上前の顧客に関連するデータが毎週移動されます。
新しいデータベースと古いデータベースのデータを組み合わせたテーブルを簡単に作成する方法はありますか? 何かのようなもの:
select * from NewDatabase.MyTable
UNION
select * from OldDatabase.MyTable
データベースの 170 のテーブルのうち約 25 で実行されます。
私が見る2つの重要な問題は次のとおりです。
1) PostgreSQL は実際にはクロス データベース クエリを許可していません。外部データ ラッパーまたは db リンク (ここで述べたように: Postgres でクロスデータベース クエリを実行できますか? ) は、アクセスするテーブルの構造全体を事前に宣言する必要があるため、使用するのが非常に面倒です。
2) これを自動化する方法を見つけて、必要な 25 個のテーブルごとに自動的にコーディングできるようにする必要があります。これは毎週実行されます。
効率的に自動化できる限り、これがどのように行われるか (Pentaho-Kettle、コマンド スクリプト、SQL スクリプトなど) には何の好みもありません。
ありがとう!