問題タブ [citus]

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 に答える
433 参照

postgresql - Citus: 既存のデータベースを citus のワーカー ノードにする

Web アプリで使用されるサーバーの 1 つに既にデータベースがあります。D1としましょう

D1と何らかの関係を持つ他のサーバー上に、新しいデータベースD2を使用して新しい Web アプリを作成したいと考えています。

シタスデータ サーバーを作成し、 D1D2の両方をシャード テーブルとして追加し、ワーカー ノードをそれぞれのサーバーとして追加したいと考えています。

citus のドキュメントで見つけたのは、シャード データベース テーブルがcitusサーバー上に作成され、利用可能なワーカー ノードに自動的に配布されるということです。

既存のデータベースをワーカー ノードおよびシャード テーブルとして新しく新しいcitus サーバーで使用するにはどうすればよいですか。

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

sql - タイムスタンプの違いでグループ化するとパフォーマンスが低下する

列をLEFT JOIN持つ2つのテーブルを作成し、結果をグループ化するクエリがありますtimestamptz

このような手探りでは、クエリのパフォーマンスが 1 秒 (他の列でグループ化する場合) から 40 ~ 60 秒に低下します。これは既知の問題ですか?回避策はありますか? この動作は、ハードウェア構成に依存しません (最適化された Postgres 構成のサーバー マシンでテストされています)。Citus拡張機能も使用しています。テーブルは日付範囲で分割されていますが、これは関連していません (テスト済み)。

テーブル DLL

クエリ

のみでグループ化する場合の計画table_one_day

table_one_dayおよび でグループ化する場合の計画period

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

postgresql - <=結合を使用せずに時系列に対して欠落データをバックフィルしますか?

このスキーマにほぼ従うテーブルがあります。

テーブルはとても大きいです。

次の結果を生成しようとしていますが、フィルタリングにはいくつかの IDS (1 と 2 のみなど) のみが含まれます。

last_value ウィンドウ関数を試してみましたが、表示されるレコードを取得できますが、レコードがテーブルに表示されない場合、データが遅れる必要があるという問題があります。たとえば、月 3 の場合、レコードがないため、これより前の日付の最後に確認されたレコードを取得する必要があると想定されます。

私の現在のソリューションは <= 結合を使用していましたが、これがボトルネックであり、何百万もの ID を試行すると、遅すぎて、必要な速度で実行されません。

私は次のように generate_series に対して参加していました:

これをより効率的に行い、<= 結合を削除する方法についてのアイデアはありますか? これにより、ネストされたループが発生し、オーバーヘッドが大きくなりすぎます。