私が持っているのは、数千の金融商品のオーダーブックの約 130 GB の時変状態データです。
私が持っているcsvファイルには、オーダーブックの状態の各変更ごとに行が含まれています(実行された取引、挿入された注文などによる)。状態は次のように記述されます: 一般的なオーダーブック情報のいくつかのフィールド (例: 金融商品の isin コード)、状態変化に関する情報のいくつかのフィールド (orderType、時間など)、最後に現在の状態の売買レベル。売り注文と買い注文の両方に最大 20 のレベル (買いレベル 1 は最良の買い価格を表し、売りレベル 1 は最良の売り価格を表すなど) があり、それぞれが 3 つのフィールド (価格、総量、および注文金額)。最後に、買い側と売り側の両方について、20 を超えるレベルの集計データの追加の 3 つのフィールドがあります。これは合計最大 21*2*3 = 州ごとのレベル データの 126 フィールドになります。
問題は、20 近くのレベルが存在することはめったにないため、各レベルにフィールドを予約する意味がないように思われることです。たとえば、3 つの購入レベルがあり、残りのフィールドが空の行があるとします。一方、同じオーダーブックは、しばらくすると 7 つの買いレベルを持つことができます。
一般的なオーダーブック情報を独自のテーブルに正規化することは間違いありませんが、レベルを効率的に処理する方法がわかりません。
どんな助けでも大歓迎です。