NoSQL 儲存在財務中的使用
我想知道是否有人使用過 NoSQL(mongodb、cassandra 等)來儲存和分析數據。我嘗試在網上搜尋,但無法查看金融公司是否已經開始使用 nosql 儲存。
到目前為止,即使在這個站點上,我也只看到過關於使用 SQL DB 的討論。我想 NoSQL 會快得多。
有人會闡明金融界中 NoSQL 解決方案的主題嗎?你見過/聽說過有人使用它嗎?如果是這樣,他們為什麼要使用。如果不使用那為什麼不呢。
專門的 NoSQL 數據庫系統被大量用於時間序列儲存,特別是對於刻度數據:
- Kx / Kdb是一種突出的解決方案;來自在摩根士丹利做過A+的Arthur Whitney 等人
- Onetick是另一個較新的進入者,它可以追溯到高盛
- Voltdb是串列數據庫發明者 Michael Stonebreaker 的作品
- SciDB是另一個最近的 Stonebreaker 項目,它嘗試“商業開源”,但更多的是用於科學應用程序(至少目前如此?)
商業產品往往相當昂貴,我還沒有聽說過在交易環境中使用標準 Web 2.0 NoSQL 數據庫。當然,有些人可能會做而不是說話……
“傳統” NoSql 數據庫在金融領域的應用不多的原因是它們旨在解決不同的問題。網路世界中的大多數 NoSql 數據庫都設計有兩個中心設計參數。第一個鍵查找應該非常快。其次,操作在行級別應該是原子的,並且不應該跨越記錄。這允許非常有效地對數據庫進行分片,因為任何操作都不應該跨越多台機器,進而允許它們建構橫向擴展架構。這些數據庫是為編寫繁重的工作負載而建構的,並且能夠進行快速鍵查找以呈現網頁。雖然可以使用它們來儲存刻度數據,但它們並不是真正擅長的。
與大型網路公司數據相比,財務數據往往較小。因此,在金融領域擴大規模並不那麼重要。此外,財務數據往往會很好地分區(在當天、符號或幾乎任何其他鍵上),因此副本放置往往更加明確。
Map reduce 是使用 hadoop (Cassandra) 或內部 map reduce(MongoDB 有一個 java 腳本 MR API)為這些數據儲存建構分析應用程序的典型方法。這通常不是分析時間序列數據的理想範例。
具有集成時間序列分析工具或定制平台的傳統列式儲存將繼續成為儲存和處理時間序列數據的首選方式。我認為為執行超大規模網站而建構的數據庫與為儲存和分析時間序列資訊而建構的數據庫之間不會(或不應該)有太多的融合。
話雖如此,我們將 mongodb 廣泛用於元數據儲存和一種非常大的記憶體。但我們不使用它來儲存或分析財務數據。