私は「イベントソーシング」スタイルで組織されたテラバイトのデータを持っています。あるキーに対するすべての更新は、レベルと呼ばれる更新の「時間」とともに格納されます。内部クエリは、特定の時刻またはその前のすべてのキーの最新の値を検索します。次に、外部クエリによって特定のキーが選択されます。グループ内の最新のキーを繰り返し照会する方法は?
私はこのクエリーを特定の時間(多くの場合過去)に100回実行しますが、多くのキーで実行します。 外部クエリのみを繰り返し実行するように内部クエリをキャッシュする方法はありますか?または、このクエリを書くためのよりよい方法がありますか?
LVL KEY VALUE
1 a 10
1 b 11
1 c 12
1 d 13
2 a 20
2 b 21
3 c 32
4 b 41
および表:いくつかの可能な解決策が
create table storage (
lvl integer,
key text,
value text,
primary key (key, lvl)
) ;
「私はどちらかこれらのキャッシュされた値を格納するための補助テーブルを使用して解答し、ユーザー定義関数を書き込むそのテーブルから選択するか、値をゆっくりと道を選択して、テーブルに挿入するつもりだったが、私はドン実現UDFの構文を十分に理解しています。とにかくそれは私が試みるものです。私は、高価なサブクエリを実行することを避ける 'ON CONFLICT'のようなものでこれを行うための文書化された方法はないと思います。 – sudo
テーブルの例には 'time'カラムはありません。 BTW: 'time'は予約語(データ型)です。 – wildplasser
"時間"を削除するために私の例を修正します。実際のクエリは、人々を混乱させる用語を使用します。 – projectshave