關于DolphinDB
DolphinDB 是一個實時分析和流處理平臺,由高性能時間序列數據庫提供支持。它提供了與高效寫入、快速查詢、復雜分析、分布式并行計算和低延遲流計算相關的功能。它還支持高可用性。
DolphinDB系統的架構
分布式架構
自研的分布式存儲機制,數據有序分散存儲在不同的數據節點上,由控制節點統一精準地管理所有分區的元數據信息,包括分區和副本信息、分區版本號等要素,從而確保各節點上分區數據和副本的一致性,以提升集群的容錯性和可擴展性。
提供在線和離線擴展方式、支持橫向(添加更多節點)和縱向(增加單個節點的資源)的擴展系統、并且提供無縫高效的數據遷移和再平衡技術。
提供控制節點、數據節點和客戶端的高可用方案,以確保系統在任何單節點故障下都能提供穩定的服務,從而有力保障業務的連續性。
具備全面靈活的備份與恢復機制,以保障數據安全,為業務保駕護航。
提供高容錯性的異步復制方案,其具有低延遲、高吞吐量的特點,方便實現數據跨節點、跨地域的異步復制,從而增強數據資產的安全性。
多模存儲引擎
支持 TSDB, OLAP, PKEY, IMOLTP、VECTORDB 存儲引擎。分別滿足不同場景需求:
TSDB 引擎采用 PAX 行列混存,提供性能卓越的大數據分析與點查分析。
OLAP 引擎采用列式存儲,與 TSDB 引擎相比,更適合用于對時間跨度較長的某些列數據進行聚合計算。
PKEY 引擎是提供主鍵唯一性保證的,支持實時更新和高效查詢的存儲引擎,能夠有效滿足從 OLTP 數據庫的主鍵表 CDC 到 DolphinDB 中進行數據分析的需求。
IMOLTP 引擎是內存數據庫,以行存的形式來組織數據,不僅支持事務,同時通過創建 B+ 樹索引 (主鍵索引和二級索引) 的方式來應對高頻度、高并發的更新和查詢操作,該引擎將所有數據都存儲在內存中。
VECTORDB 引擎支持對向量數據創建索引,并實現了快速的近似最近鄰搜索,滿足對大規模向量數據高效檢索和響應的需求。
保證事務ACID 特性,提供快照級別的隔離機制。
支持多種無損數據壓縮算法,包括 LZ4, delta-of-delta, zstd, chimp,字典壓縮等,壓縮率可達 4:1~10:1。
支持分級存儲,區分熱數據和冷數據存儲,減少存儲成本。
批計算處理
使用內嵌的分布式文件系統,不僅簡化數據管理流程,還顯著增強了分布式計算環境的負載均衡能力,同時提供了強大的容錯機制,確保數據的高可用性和計算任務的連續執行。
內置 2000+ 多領域、多種類、多功能的函數,覆蓋廣泛的數據處理需求,并開放接口支持用戶自定義函數,幫助用戶輕松應對各類復雜應用場景的挑戰。
分布式計算框架集成了 pipeline、Map-Reduce 和迭代計算等多種計算模型,為用戶提供性能最優的一站式多樣化數據解決方案。
通過 SQL 語言與函數、表達式的無縫結合,以及向量化計算,開拓性地助力用戶直接在數據庫層面進行復雜的數據分析及運算,從而顯著提升數據處理的速度和效率。
充分利用多機多核 CPU 資源,憑借精細的并行處理策略與高效的任務調度算法,實現了對海量數據的快速處理。
流數據處理
支持通過流數據表進行流數據訂閱與發布。
內置時間序列聚合、橫截面處理、響應式狀態處理、異常檢測、會話窗口、多表關聯等流式計算引擎,提供滑動窗口、累計窗口、統計函數等算子。用戶可通過串聯調用計算引擎構建高效強大的計算流水線,或借助流數據引擎解析器(streamEngineParser)自動構建計算流水線,從而滿足復雜多變的業務需求。
支持回放歷史數據,支持 1 對 1,N 對 N,N 對 1 三種回放形式。
支持流批一體,即將研發環境中基于歷史數據建模分析得到的因子或表達式直接應用于生產環境的實時數據中,并保證流計算的結果和批量計算完全一致。該功能可為用戶的測試、驗證和回溯分析提供極大便利。
支持從多種數據源接入實時流數據實時寫入 DolphinDB 中,并自動處理數據格式轉換和同步問題。
內置 CEP 引擎(Complex Event Processing,復雜事件處理),能夠接收實時數據流,定義事件并從事件流中檢測特定事件,進而對滿足指定規則的事件執行預設的操作。
實現亞毫秒級的延遲,確保實時數據處理的極致性能。
多范式編程語言
DolphinDB 內置圖靈完備的編程語言。其支持命令式編程、函數式編程、向量化編程、SQL 編程等多范式編程語言,憑借語言簡潔靈活、表達能力強的優勢,幫助用戶實現開發效率的飛躍式提升。
支持 SQL-92 標準 ,更在此基礎上擴展了如組內計算、透視表等多種功能。同時兼容 Oracle 和 MySQL 等主流 SQL 方言。
Python Parser 支持 Python 的部分原生對象(dict, list ,tuple, set)、語法以及 pandas 庫的部分功能。用戶能夠在 DolphinDB 客戶端中直接使用 Python 語法來訪問和操作 DolphinDB 的數據。(點擊閱讀 Python Parser 在金融量化分析場景的應用)
良好生態
提供豐富全面的 SDK 生態,包括 Python, C++,C#,Go,R 和 JavaScript 等多種主流編程語言。
多種客戶端,包括 Web 集群管理器、DolphinDB VS Code、JAVA GUI、Jupyter Notebook、DolphinDB 終端。
多領域、多種類、多方式的插件,涵蓋數據存取、行情接入、金融相關、消息隊列、數值計算、機器學習、網絡、云存儲、文件等。
提供模塊化設計,為用戶提供便捷的技術分析指標庫、指標庫、因子庫、因子指標庫、運維函數庫、歷史數據導入、行情數據接入模塊、多因子風險模型、交易日歷等,旨在簡化功能代碼的調用流程和優化系統維護效率。
集成專屬的 DataX、Grafana 等第三方工具,可銜接數據傳輸與可視化等多種解決方案。