金融市場L1/L2的報價和交易資料是量化交易研究非常重要的資料,随着數字業務快速演進,具有時序特征的交易資料激增,對底層資料庫和量化分析系統提出了更高的要求。傳統的關系資料庫支撐這樣的資料量級,即便分庫分表,查詢性能也遠遠無法達到要求。常用列存NoSQL資料庫可以解決這個資料量級的存儲,但是這類通用的存儲引擎缺乏對時序資料的友好支援,在查詢和計算方面都存在嚴重的不足,且無法支援對量化金融場景實時業務計算、流批一體分析、多源資料融合分析。

方案優勢能力
資料庫存儲
- 高吞吐低延遲的列式記憶體引擎。
- 列式混合引擎(基于記憶體和磁盤)為存儲海量資料的資料倉庫提供了優越性能。
- 靈活的分區方案:支援值分區、範圍分區、清單分區、哈希分區群組合分區。
- 支援單表百萬級别的分區數,大大縮減對海量資料的檢索響應時間。
- 庫内分析:可在資料庫中進行複雜的程式設計和運算,避免資料遷移的耗時。
- 提供多種SQL功能的擴充,包括非同時連接配接、視窗連接配接、透視表、複合列等。
- 支援同一個分區資料庫内多表快速聯結。
- 資料壓縮。
- 支援多使用者并發通路。每個使用者以給定的權限在獨立的會話中工作。
- 中繼資料高可用:多個控制節點使用Raft協定實作強一緻性。
- 分區資料高可用:一個資料庫可以包含上百萬個分區,分區的多副本之間使用改良的二階段送出協定實作分區副本的強一緻性。
- 運維高可用:線上增加伺服器節點,線上平衡節點間資料,線上為分區資料表增加字段。
- 資料庫的增量備份機制:當分區副本數為N的時候,在N-1個節點當機的情況下,保證系統仍可以持續寫入和讀取。
- 使用内嵌的分布式檔案系統自動管理分區資料及其副本,為分布式計算提供負載均衡和容錯能力。
資料庫内資料分析
- 程式設計語言功能強大且表達能力豐富。支援指令式程式設計、函數式程式設計、向量程式設計、SQL程式設計和RPC(遠端函數調用)程式設計。
- 程式設計語言的文法與SQL和Python非常相似,易上手易使用。
- 内置1000多個函數,涵蓋絕大多數常用的資料處理、資料分析、機器學習等功能,以及檔案調用與資料庫管理等功能。
- 通過記憶體引擎、資料本地化、細粒度資料分區和并行計算實作高速的分布式計算。
- 提供即時編譯版本,極大加速for-loop, while-loop與if-else等語句的執行速度。
- 支援多種計算模型,包括pipeline、map-reduce和疊代計算。
- 為動态資料分布式計算提供快照隔離。
- 通過在多任務中共享記憶體的資料副本來提高系統吞吐量。
- 可便捷地分析分布式資料。在單個節點上編寫腳本後,無需編譯和部署即可在整個叢集上執行。
流資料
- 無縫內建流資料和資料庫表。可以使用SQL查詢本地流資料或分布式流資料。
- 内置時間序列、橫截面、異常檢測以及響應式狀态引擎等多種流資料聚合引擎。
- 可使用DolphinDB中的使用者自定義函數處理資訊。
- 亞毫秒級的資訊延遲。
- 使用實時資料更新曆史資料倉庫隻有亞秒級延遲。
- 可以從任意偏移量重制曆史資訊。
- 提供可配置的選項(如分區、工作線程、隊列)用于流量控制和性能調優。
生态
- 提供多種程式設計API,包括C++、Python、Java、C#、Go和Excel等。
- 已有的pandas程式隻需做少量改動即可通過pandas API (orca) 在DolphinDB中運作。
- 提供多種插件,包括MySQL、ODBC、HDF5、Parquet等。
- 内置Web伺服器,用于叢集管理、性能監控和資料通路。
- 提供DolphinDB GUI與VS Code插件等IDE(內建開發環境)用于資料分析。
- 通過内置函數、Web接口或Prometheus實作系統監控。