問題タブ [postgres-fdw]
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.
python - redis ハッシュから postgresql テーブルにデータをダンプするより高速な方法
大量のデータ処理を行っています。速度を上げるために、最初にデータを redis に保存してから、2 分間隔で postgresql データベースにダンプします。データを格納するために redis ハッシュを使用しましたが、redis のハッシュ キーでさえ、データベース テーブルの列に対応しています。
redis.scan()
データの行を格納する redis ハッシュのリストを取得するために使用し、ハッシュ内のデータを取得するために使用しredis.hgetall()
ています。そこから、SqlAlchemy で SQL Insert ステートメントを作成し、データベースへの一括データ挿入を実行します。
私が直面している問題は、最初に SCAN を使用してデータを含むキーを抽出する必要があることです。
そこから、各ハッシュのすべてのデータをフェッチします。
row_data は次の形式ですkey:value
が、形式で保存されるbyte
ため、次を使用して各キーと値を手動でデコードするために余分なオーバーヘッドが発生します。
私はこれが多すぎると感じており、よりエレガントな方法が必要です:
- hgetall() を使用して redis からデータを取得し、redis ハッシュのキーが postgresql テーブルの列名に対応するため、そのデータを一括 SQL 挿入にすぐに使用できます。
- 1 が不可能な場合でも、少なくとも hgetall() を使用して redis からデータを取得し、エントリ全体、つまり各キーと値を反復する代わりにハッシュ内のすべてのエントリをオンザフライでデコードするためのより迅速な方法が必要です。
編集:
私はpostgresqlのForeign Data Wrappers、特にredis_fdwについて読んだことがあります.RedisからPostgresqlにデータを移動するためのより高速な方法を可能な限り最小限のトラブルで得るという私の状況を解決するものかどうか疑問に思っています.
google-analytics - Docker と Analytics のインストール
quasar.dockerfile という docker ファイルがあります。docker ファイルをビルドすると、すべてが正常にロードされました。
次に、ドッカーを実行しようとしましたが、jarfile にアクセスできないというエラーが表示されます。
プロセスが殺され続けるのはなぜですか?jarfile を実行できないことに関係しているようですが、ビルドはそのファイルにアクセスする必要があり、正常に実行されました。これはリンクの問題ですか?
mysql - ODBC ドライバーと Postgres 外部データ ラッパー
PostgreSQL の FDW と ODBC ドライバーを理解しようとしています。
私の理解では、FDW は他のデータ ソースを Postgres テーブルのように見せるだけであり、基本的に PostgreSQL と外部データ ソースの間のブリッジです。したがって、独自の FDW を記述して外部テーブルを作成し、外部テーブルを外部データ ソース (データベース) にポイントします。
したがって、テーブル スキーマを持たない NoSQL DB がある場合、FDW を使用してデータを表形式にフラット化する必要がありますか?
これは、ODBC ドライバーが行っていることとどう違うのですか?
jdbc - Postgres JDBC FDW Ubuntu 14 インストール エラー: Makefile:53: ../../src/Makefile.global: Date または Verzeichnis nicht gefunden
FDW wiki ページに記載されている両方の JDBC FDW ( jdbc (atris) と jdbc2 ( heimir sverrisson)) を試し、ソースのインストール手順に従ってみましたが、常に次のエラーが発生します。
Ubuntu の実行14.04.3 LTS
:
これは次のフォルダMakefile.global
にあります。/usr/lib
Makefile
そこを指すように内部の相対パスを調整しましたが、2番目のエラーが残り、contrib-global.mk
見つけることができません:-/
引き続きMySQL FDW を試してみますが、バグのあるOracle FDW を既に使用しているので、汎用の JDBC ドライバーに固執した方がよかったでしょう。
database - postgres_fdw モジュールでの Postgresql の問題
PostgreSQL Maestro ツールを使用して、「ローカル」DB からの外部キーを他の DB 内の他の主キーに参照しようとしています (実際には、両方とも同じリモート マシン上にあります)。リモート DB 内のテーブルのコピーのように機能する外部テーブルを作成する postgres_fdw モジュールについて聞いたことがありますが、クエリを実行しようとすると、次のエラーが発生します。
"SQL エラー: エラー: 参照されたリレーション "foreign_olo" はテーブルではありません".
これは私のSQLコードです:
foreign_olo は、postgres_fdw で作成した外部テーブルです。foreign_olo テーブルで INSERT または単純な SELECT をコミットしようとしましたが、すべてうまくいったので、外部キーの場合にテーブルとして認識できない理由がわかりません。みんなありがとう!
postgresql - 外部テーブル PostgreSQL にインデックスを作成する
postgres_fdw を使用して 2 つのデータベース間のリンクを作成しています。次に、外部テーブルをセットアップし、外部テーブルからライブ テーブルへの挿入を行います。ただし、インデックスがないため、かなり時間がかかることに気付きました。
外部テーブルにインデックスを作成できますか、それは標準ですか
postgresql - Postgres FDW 接続 Linux
Windows と Linux で fdw を積極的に使用しています。
開いたウィンドウの下では、ウィンドウの下のメイン (および読み取り/書き込み) 接続が閉じられると、反対側の fdw 接続がすぐに閉じられます。
ただし、Linux では、開始接続が閉じられていても、パートナーの fdw 接続はアクティブなままで開いたままになります。
例: サーバー 1 (Windows) サーバー 2 (Linux)
サーバー 1 は、自身のローカル データベースに接続します。この接続内で、サーバー 2 上のテーブルであり、fdw によってローカルに表されるテーブルの書き込み/読み取りを行います。サーバー 2 では、サーバー 1 への postgres_fdw 接続が表示されます。サーバー 1 がローカル データベースへの接続を閉じると、サーバー 2 の postgres_fdw 接続が既に閉じられていることがわかります。これは完璧です。
逆に、Linux からこれを行う場合、サーバー 2 のローカル接続が閉じられている場合、サーバー 1 の postgres_fdw 接続はまだ存在するイベントです。
これを設定する可能性はありますか?