問題タブ [foreign-data-wrapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
483 参照

postgresql - 外部データ ラッパー、ogr_fwd レイヤー Postgresql

このようにして、外部データを含むサーバーを正しく作成しました(接続します):

次に、次のような外部テーブルを作成します。

Select to pt_test を作成すると、次のエラーが表示されます。

レイヤーとは何かわかりません。何か助けはありますか?

0 投票する
1 に答える
195 参照

postgresql - (方法) Postgres でテーブルを外部テーブルに変換することはできますか?

Postgres 本番データベースに大きなテーブルがあり、外部テーブルと継承を使用して「シャーディング」を開始したいと考えています。

望ましいアーキテクチャは、スキーマを定義する 1 つの (空の) テーブルと、空の「親」テーブルから継承するいくつかの外部テーブルを持つことです。(Postgres 9.5 で可能)

このよく書かれた記事https://www.depesz.com/2015/04/02/waiting-for-9-5-allow-foreign-tables-to-participate-in-inheritance/を見つけました。最初からやりなさい。私の質問は、必要なデータの移行を最小限に抑える方法です。

現在、この 100 GB 以上のテーブルがあり、これが最初の「シャード」になります。そして将来的には、新しい「シャード」を定期的に追加する予定です。ある時点で、古いシャードは別のテーブルスペースに移動されます (重要性が低くなるため、安価なハードウェア上で)。

私の質問: 既存のテーブルを "ALTER" して外部テーブルにする方法はありますか?

0 投票する
1 に答える
266 参照

postgresql - 圧縮された csv ファイルにアクセスする postgreSQL 外部テーブル ラッパーはありますか?

データベースの外部に長期の静的データを保存することに興味があります。理想的には、アクセス時に動的に圧縮解除される圧縮ファイルに保存します。現在、何らかの目的で既存の file_fdw を使用していますが、データを圧縮できるようにしたいと考えています。

現在、9.3 を使用しています。

0 投票する
2 に答える
2389 参照

postgresql - oracle_fdw のライブラリをロードできませんでした

oracle_fdw の作成中に問題が発生しました。

oracle_fdw.dll を postgres lib フォルダーにコピーしました * .sql ファイルと制御ファイルの両方を shrared/extension にコピーしました

今、スーパー管理者ユーザーでpsqlに接続してクエリを作成すると

私は応答を得ています

0 投票する
0 に答える
524 参照

postgresql - 外部データラッパーelasticsearch postgresql

Foreign Data Wrapper を使用して、postgresql と Elasticsearch を一緒に実行しようとしました。私はこれに従いました: https://github.com/Mikulas/pg-es-fdw

新しい記事を挿入すると、すべてが機能しますが、更新または削除しようとすると、いくつかのエラーが表示されます:

誰でも私を助けることができますか?ありがとう!

0 投票する
2 に答える
6092 参照

oracle - Postgres で oracle_fdw 拡張機能を作成できない

ここの手順に従って、Oracle 外部データ ラッパーoracle_fdwを PostgreSQL サーバーにインストールします。

Oracle バージョン: Oracle Database 12c Enterprise Edition リリース 12.1.0.2.0 - Red Hat Linux 7.2 で動作する 64 ビット製品

PostgreSQL バージョン: x86_64-unknown-linux-gnu 上の PostgreSQL 9.4.4、gcc でコンパイル (Debian 4.7.2-5) 4.7.2、64 ビット、Debian 7 (wheezy) で実行。

sqlplus をインストールし、sqlplus を使用して PostgreSQL サーバーから Oracle サーバーに正常に接続できたので、接続は問題ありません。

しかし、拡張機能を作成しようとすると、次のエラーが発生します。

次に、https: //github.com/dalibo/pg_qualstats/issues/1 からヒントを得て、postgresql.conf の shared_preload_libraries に oracle_fdw を次のように追加しました。

しかし、今はPostgresを再起動できません:

/var/log/postgresql/postgresql-9.4-main.log を見ると、次の 2 行しか表示されません。

shared_preload_libraries から oracle_fdw を削除すると、postgres を再起動できるため、これが再起動の失敗の原因となっています。そこで、shared_preload_libraries から oracle_fdw を削除し、postgresql.conf に次のように保存しました。

その後、Postgres を再起動できました。


正確な手順は次のとおりです。

PostgreSQL サーバーの OS バージョン

Oracle Instant Client のインストール

ここに記載されている手順を使用してインストール: https://help.ubuntu.com/community/Oracle%20Instant%20Client

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlから次の rpm ファイルをダウンロードしました。

  • oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
  • oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

次のコマンドを使用して、それらを PostgreSQL サーバーにインストールしました。

インストールの確認:

sqlplus を使用して Oracle サーバーに接続する

したがって、これは正常に機能します。

oracle_fdw のインストール

http://pgxn.org/dist/oracle_fdw/から oracle_fdw バージョン 1.4.0 ie ファイル oracle_fdw-1.4.0.zip をダウンロードしました 。

次に、解凍​​して次のようにインストールします。

Postgres で拡張機能を作成する


スタックトレース

Laurenz Albe の回答で推奨されているように、GNU デバッガー (gdb) をインストールし、次のスタック トレースを取得しました (今のところデバッグ シンボルはありません)。


更新:debian 8(8.6、jessie)で実行されているPostgres 9.4.9に拡張機能をインストールできました。私は Oracle Instant Client バージョン 12.1.0.2.0-1 と oracle_fdw バージョン 1.5 を使用しました。

0 投票する
1 に答える
3019 参照

sql - リモート クエリは、インデックスを使用して postgres_fdw で実行します

ここで 述べたpostgres_fdwように、インデックスにはアクセスできません。

回避策は、リモート サーバーでビューを作成してから、ローカル サーバーでこのビューの外部テーブル ラッパーを作成することです。

しかし、ビューにパラメーターを渡したい場合はどうすればよいでしょうか? 通常、私はそれを作成function(myparam)RETURNS TABLE()ます。しかし、どのように呼び出すのpostgres_fdwですか?

この状況を解決するためのアイデアはありますか (dblink必要ない場合は使用しないことをお勧めします)。

リモートデータベースで実行する次のようなクエリがあります。

ご覧のとおり、_my_date内部にパラメーターがあります。

だから私は外部テーブルを作成my_remote_server_public.my_remote_server_public_fooし、次のようなローカルデータベースから実行しました:

しかし、これを行うと、インデックスpostgres_fdwにアクセスできないため、2〜3分続きます。foo

リモートデータベースで関数get_foo_by_date(_my_date date)を作成し、ローカルデータベースから呼び出すことを考えましたpostgres_fdwが、それが可能かどうかはわかりません...

アップデート

通常のビューを、内部に一定の日付を持つ外部テーブルとして処理すると仮定しましょう。

このビューは、リモート テーブルから ID のリストを返します。

リストされた行をリモート テーブルから削除し、これらをローカル テーブルにアーカイブしたいと考えています。

次のように呼び出すと:

5分間続きます...DELETEクエリはインデックスにアクセスできないため...dblinkここでも関数の呼び出しを使用する必要がありますか? 他の回避策はありますか?

0 投票する
1 に答える
1777 参照

postgresql - CSV ファイルからの PostgreSQL テーブルの更新

PostgreSQL テーブルの csv ファイルからデータを自動的に更新する方法を見つけようとしています。

csv ファイルには LabVIEW テスト データが含まれており、実行ごとに更新され、ローカル コンピュータに保存されます。

これまでのところ、2 つの方法を使用して csv からテーブル 'test1' にデータをインポートできます。

  1. COPY コマンド

    /li>
  2. 外部データ ラッパー (file_fdw)

    /li>

そこから、次を使用して test1 にデータを挿入できます

これは 1 回の更新では問題ありませんが、このプロセスを自動化する必要があります。トリガとトリガ関数を使用してみましたが、外部テーブルにトリガを作成できましたが、新しい LabVIEW テストを実行してもテーブルが更新されません。

file_fdw がトリガー機能をサポートしていないというフォーラムの投稿を読みましたが、最新バージョンの PostgreSQL (9.6) でこれを確認できる人はいますか?

外部テーブルまたは .csv ファイルから直接テーブルを自動的に更新する方法を知っている人はいますか?

0 投票する
2 に答える
1062 参照

sql - Postgresql、外部テーブルから新しいテーブルにデータをコピーする

スキーマ「nathalia」の「m_aduana」という外部テーブルからスキーマ「publico」とテーブル「mae_aduana」にデータをコピーするジョブを実行しようとしています。

重複を避けてテーブル「m_aduana」からすべての値をコピーするクエリを実行する必要があります。

今のところこのようなものを取得しましたが、結果は Insert 0 0 を送信します。これは、何も挿入されていないことを意味します。