1

私はかなり大量のデータ (~ 400 mio データポイント) を持っており、これは ~ 100,000 のタイムコースのセットで編成されています。このデータは毎日変更される可能性があり、リビジョンの安全性のために毎日アーカイブする必要があります。

明らかに、効率的に処理するには多すぎるデータについて話しているので、サンプル データを分析しました。約。コースの 60 ~ 80% は 2 日間でまったく変更がなく、残りのコースは非常に限られた要素の変更のみです。全体として、10 mio 未満のデータポイントの変更が予想されます。

問題は、この知識をどのように活用するかです。SVN で使用される Delta-Trees や類似の手法などの概念は認識していますが、データベース自体がそのようなセマンティック圧縮を処理できる場合は、より好ましいと思います。ストレージに Oracle 11g を使用していますが、自作ソリューションよりも優れた方法はありますか?

明確化

私は時間ごとのエネルギーの流れを表す経時変化について話している。このようなタイムコースは、過去 (2005 年など) に始まり、年間 8760 個の要素を含み、2020 年 (現在) までの任意の時点で終了する可能性があります。各タイムコースは、1 つの一意の文字列によって識別されます。

コース自体は多かれ少なかれ退屈です。

私の仕事は、これらのコースの日々の変化を可視化することです。そのためには、毎日特定の時間にスナップショットを作成する必要があります。私の希望は、損失のないセマンティック圧縮により、1 日あたり最大 20 GB のアーカイブを省けることです。

4

1 に答える 1

0

基本的に、ソース データは次のようになります。

Key | Value0 | ... | Value23

そのデータをアーカイブするには、データがソースシステムからロードされた時間を直接的または間接的に伝える追加のディメンションを追加する必要があるため、アーカイブデータベースは

Key | LoadID | Value0 | ... | Value23

LoadIDソースDBがアクセスされた時間はどこですか。

さて、私のシナリオでの圧縮は簡単です。LoadID は実行ごとに増加しており、範囲を指定できます。つまり、

Key | LoadID1 | LoadID2 | Value0 | ... | Value23

ここで、LoadID1 は、24 の値が観測された最初のロードの ID を示し、LoadID2 は、24 の値が観測された最後の連続したロードの ID を示します。

私のシナリオでは、これによりデータベースに格納されるデータ量が 1/30 に減少します

于 2013-05-09T19:33:15.537 に答える