2017-07-28 25 views
0

外部テーブルを作成してforeign_database_wrapperを使用してOracleデータベースをPostgresに移行しようとしています。Postgres:外部データラッパーを使用して作成している外部テーブルのデータを保持する方法

しかし、外部表はOracleのビューのように動作するので、問合せの実行時に元のソースからフライでデータをフェッチするため、処理時間が長くなります。

現在のところ、Postgresの終了時に物理データを維持するために、私はテーブルを作成し、そのデータをそこに挿入しています。

例:create table employee_details as select * from emp_det; employee_detailsは、物理的なテーブルでありemp_detは、外部テーブル

あるしかし、私は、このプロセスは、我々はこのテーブル(新しい挿入を操作する必要がある時に種類の冗長と時間で感じた

誰かが私がこれらのデータをいくつかの他のモードで保存できる関連する方法を共有することができるならば。

よろしく、

答えて

1

は、同一のGithub issueを参照してください。

oracle_fdwは、OracleデータをPostgreSQL側に格納しません。 外部表への各アクセスは、Oracleデータベースに直接アクセスします。

あなたは物理的にPostgreSQLデータベースにあるデータのコピーをしたい場合は、あなたが説明したように、あなたがそれを行うことができますいずれか、またはマテリアライズド・ビューを使用できます。

CREATE MATERIALIZED VIEW emp_det_mv AS SELECT * FROM emp_det; 

同じことを行います、しかし簡単です。データを更新するには、実行することができます

REFRESH MATERIALIZED VIEW emp_det_mv; 
+0

Laurenz Albeは、これらの作成されたMATERIALIZED VIEWをリフレッシュするために、pgAgentを使用してジョブを作成しました。ジョブは正常に作成されましたが、そのジョブを実行している間は、指定されたSQLコードは処理されません。親切に助けてください。同じ私はチケットを作成した45670622。 – Pooja

関連する問題