0

私は HBase をトレーディング システム データベースとして考えています。その理由の 1 つは、そのファーストクラスのタイムスタンプ ベースの行のバージョン管理です。取引は常に変更されており、通常、SQL データベースを使用する場合、データ モデルで明示的に対処する必要があります。HBase では、取引 (個々の取引バージョンではなく) を行としてモデル化し、HBase に、以前の時点で有効だった取引バージョンへのアクセスを許可するという大変な作業を任せます。

システムのクエリ側は、主に 3 つの方法で取引データにアクセスする必要があります。

  1. すべての取引の現在のバージョン。これは、HBase によって明確にサポートされています。
  2. 特定のタイムスタンプでアクティブだったすべての取引のバージョン。繰り返しますが、HBase からの明確なサポートです。このクエリの目的は、通常、特定の時間帯の取引人口を報告する 1 日の終わりのプロセスです。
  3. 2 つのタイムスタンプ間のアクティビティ。これは、取引システムとすでに同期しており、何が変化したかを知りたいシステムに、一日の終わりに情報を供給するのに役立ちます。また、昨日の日次値からの P&Lの変化を示す毎日の損益 (P&L) 計算の基礎を形成します。

それで、私の質問は次のとおりです。HBase には、2 つのタイムスタンプ間の「差分」を実行するためのサポートが組み込まれていますか? または、データベース レベルでこの要件を満たすベスト プラクティスの方法はありますか? そうでない場合は、データベースから 2 つのタイムスタンプ ベースのクエリをフェッチし、異なる操作を実行するプロセスを構築することを検討する必要があります。

プロセスの出力は次のようになると思います。

  • 古いタイムスタンプ以降に変更された、新しいタイムスタンプでの取引のリスト。
  • 新しいタイムスタンプで廃止された古いタイムスタンプの取引の別のリスト。

これらの情報により、ポジティブな変更を適用し、ネガティブな変更を「取り消す」ことができます。たとえば、取引の想定元本が 100 万米ドルから 200 万米ドルに変更された場合、+2m の変更を適用してから -1m の変更を取り消して、その日の正味の変更を +1m にしたいと考えています。

4

0 に答える 0