問題タブ [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.
postgresql - 外部データ ラッパー、ogr_fwd レイヤー Postgresql
このようにして、外部データを含むサーバーを正しく作成しました(接続します):
次に、次のような外部テーブルを作成します。
Select to pt_test を作成すると、次のエラーが表示されます。
レイヤーとは何かわかりません。何か助けはありますか?
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" して外部テーブルにする方法はありますか?
postgresql - 圧縮された csv ファイルにアクセスする postgreSQL 外部テーブル ラッパーはありますか?
データベースの外部に長期の静的データを保存することに興味があります。理想的には、アクセス時に動的に圧縮解除される圧縮ファイルに保存します。現在、何らかの目的で既存の file_fdw を使用していますが、データを圧縮できるようにしたいと考えています。
現在、9.3 を使用しています。
postgresql - oracle_fdw のライブラリをロードできませんでした
oracle_fdw の作成中に問題が発生しました。
oracle_fdw.dll を postgres lib フォルダーにコピーしました * .sql ファイルと制御ファイルの両方を shrared/extension にコピーしました
今、スーパー管理者ユーザーでpsqlに接続してクエリを作成すると
私は応答を得ています
postgresql - 外部データラッパーelasticsearch postgresql
Foreign Data Wrapper を使用して、postgresql と Elasticsearch を一緒に実行しようとしました。私はこれに従いました: https://github.com/Mikulas/pg-es-fdw
新しい記事を挿入すると、すべてが機能しますが、更新または削除しようとすると、いくつかのエラーが表示されます:
誰でも私を助けることができますか?ありがとう!
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 を使用しました。
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
ここでも関数の呼び出しを使用する必要がありますか? 他の回避策はありますか?
postgresql - CSV ファイルからの PostgreSQL テーブルの更新
PostgreSQL テーブルの csv ファイルからデータを自動的に更新する方法を見つけようとしています。
csv ファイルには LabVIEW テスト データが含まれており、実行ごとに更新され、ローカル コンピュータに保存されます。
これまでのところ、2 つの方法を使用して csv からテーブル 'test1' にデータをインポートできます。
COPY コマンド
/li>外部データ ラッパー (file_fdw)
/li>
そこから、次を使用して test1 にデータを挿入できます
これは 1 回の更新では問題ありませんが、このプロセスを自動化する必要があります。トリガとトリガ関数を使用してみましたが、外部テーブルにトリガを作成できましたが、新しい LabVIEW テストを実行してもテーブルが更新されません。
file_fdw がトリガー機能をサポートしていないというフォーラムの投稿を読みましたが、最新バージョンの PostgreSQL (9.6) でこれを確認できる人はいますか?
外部テーブルまたは .csv ファイルから直接テーブルを自動的に更新する方法を知っている人はいますか?
sql - Postgresql、外部テーブルから新しいテーブルにデータをコピーする
スキーマ「nathalia」の「m_aduana」という外部テーブルからスキーマ「publico」とテーブル「mae_aduana」にデータをコピーするジョブを実行しようとしています。
重複を避けてテーブル「m_aduana」からすべての値をコピーするクエリを実行する必要があります。
今のところこのようなものを取得しましたが、結果は Insert 0 0 を送信します。これは、何も挿入されていないことを意味します。