質問をする前に、私たちの問題について少し背景を説明します。
政府の歳入予測アプリケーションを開発しています。このアプリケーションでは、以前の収益に関するデータを収集し、データベースに保持しながら、いくつかの計量経済学的および政治的予測モデルを (いくつかのフェーズを通じて) 適用します。
つまり、これは投影システムの単純化されたモデルです。
このスキーマを使用した数行 (最初は ~6.000 行) は、過去の収益 (シナリオと呼ばれます) を表します。
+------+------+------+------+------+-------+---------+
| Cat1 | Cat2 | Cat3 | Cat4 | Year | Month | Revenue |
+------+------+------+------+------+-------+---------+
プロジェクション システム全体で、データはいくつかの方法で変換されます (カテゴリの移動、収益値の変更、非定型性の修正など)。各変換はフェーズで行われます。
Initial Scenario (S0) ---(1st transformation phase)--> Transformed Scenario (S1)
S1 ---(2nd t.p.)--> S2 ---> S3 ---...---> SN
各フェーズはシナリオの一部を変換します。この部分のサイズはデータの 2 ~ 100% で変化します。部分的なシナリオの状態は、最終状態 (SN) が達成されるまで保持する必要があります。部分的な状態は、変換された行のみまたは部分的なシナリオ全体にすることができます (部分的な状態を比較できる限り)。
また、ユーザーはプロセスに戻り (たとえば、フェーズ 2 に戻る)、そこからプロジェクションを再開し、以前に行われた作業を無視することができます。
この使用例では、RDBMS の問題に直面しました。書き込み操作が非常に遅い (シナリオの予測を行うのに 30 分もかかる)。
NoSQL DBMS について読んだ後、いくつかの選択肢にたどり着きましたが、私はまだ学習曲線の途中なので、質問したいと思います: このユースケースで使用するのに最適な選択肢は何ですか: VoltDB、Redis、Riak、Cassandra、 MongoDB または HBase?
前もって感謝します。