DolphinDB V3.00.04 & 2.00.17 版本更 - 新聞 詳情

近年來,隨着與國際市場不斷接軌,如何構建一個統一、可靠的數據底座以應對日益豐富的交易類型與持續增長的交易規模,正在成為國內金融機構業務佈局與技術體系建設的重要挑戰。

為了使機構的跨資產分析業務實現真正高效、清晰與可擴展,DolphinDB 在新版本中推出了基於 INSTRUMENT & MKTDATA 類型的多資產統一數據模型。該模型通過將各類交易抽象為統一的“可計算對象”,存儲為庫表中的一列,並提供一致的計算接口,使用户無需關心資產類型與適配規則,即可實現多資產下複雜組合的估值、定價與風險管理。

除了新數據模型的更新,新版本中,DolphinDB 還發布了以增量計算為核心構建的全新流式 SQL 引擎,通過將批算法改為流算法,實現前置計算結果與增量數據的實時更新結果查詢,無需重複掃描數據集,實時數據處理能力再增強。

值得一提的是,新版本推出了 DolphinDB MCP server,實現了不同大模型與各種資源之間的擴展與集成。其他產品方面,ORCA 平台的流計算能力得到了進一步完善;低延時計算引擎 Swordfish 的性能進一步提升;異構計算平台 Shark 也在新版中支持了降頻因子挖掘的能力;Octopus 引擎新增支持了對外部類方法的調用,降低了代碼耦合度,提升了開發靈活性。此外,新版本在運維、安全性、流計算模塊、數據分析能力也均得到增強。本文,將帶領各位一覽 DolphinDB V3.00.04 & 2.00.17 新版本的亮點功能與重要更新!

高效、清晰、可擴展的多資產統一數據模型

新版本構建了以 MKTDATA 與 INSTRUMENT 為核心的全新對象模型,對市場數據(價格、曲線、波動率曲面)與金融工具(債券、期貨、遠期、互換、期權等)進行了抽象與封裝。用户僅需通過 JSON 或 Dict 傳入標準字段,即可通過統一的 parseMktData 及 parseInstrument 接口,快速解析為強類型的內部對象。這些對象可直接無縫應用於曲線構建、曲面構建、定價估值及風險計算等全流程業務場景,極大提升了開發效率與代碼的簡潔性。

參考案例:

bond  = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "version": 0, 
    "instrumentId": "240025.IB",
    "start": 2024.12.25,
    "maturity": 2031.12.25,
    "issuePrice": 100.0,
    "coupon": 0.0149,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISMA"
}
instrument = parseInstrument(bond)
fxSpot = {
    "mktDataType": "Spot",
    "spotType": "FxSpot",
    "version": 0, 
    "referenceDate": 2025.08.18,
    "value": 7.2659,
    "unit": "USDCNY",
    "spotDate": 2025.08.20 //referenceDate + 2buisinessDay
}
mktData = parseMktData(fxSpot)

除了新增數據結構外,新版本 DolphinDB 提供了統一的工具類函數,用户只需傳入標準化對象,系統即可智能匹配模型,完成從單一資產定價到複雜組合風險管理的全流程計算。

  • 統一定價函數 instrumentPricer:用户傳入 instruments + marketData + 定價時間信息,系統會自動根據金融合約的類型去匹配對應的定價模型,批量進行估值定價。
  • 組合定價函數 portfolioPricer:用户傳入 instruments + 對應頭寸信息 + 定價時間信息,系統會自動對一個或多個合約進行組合定價。
  • 金融市場數據預測工具:
    • 利率曲線預測函數 curvePredict: 用户傳入曲線和時間點(日期或年數),系統即可預測特定時間點的利率值。
    • 期權波動率預測函數 optionVolPredict:用户傳入波動率曲面對象 + 時間點 + 行權價,系統即可預測在特定期限和執行價格上的波動率數值。

此外針對不同的資產,DolphinDB 開發了收益率曲線、利率互換曲線和波動率曲面構建函數以及多種資產的定價接口,涵蓋固收、利率、外匯等。例如針對債券,DolphinDB 提供了收益率曲線構建函數 bondYieldCurveBuilder 以及定價函數 bondPricer。

更完整的支持列表參見: https://docs.dolphindb.cn/zh/funcs/funcs_by_topics.html#ariaid-title10

下個版本會同步支持實時市場數據(曲線/曲面)構建、實時定價等流計算相關的接口。

流式 SQL 技術發佈,實時計算再升級

DolphinDB 流式 SQL 讓實時數據服務變得簡單高效。無論是為大量客户提供個性化的實時行情面板,還是構建複雜的實時監控系統,只需一次性註冊業務的 SQL 查詢(支持多表關聯、過濾排序等所有複雜操作),系統就會自動監控數據變化,並實時將最新結果推送給所有客户端。

流式 SQL 與傳統流式計算不同,它採用基於狀態變化的智能增量計算模式,能夠精準感知鍵值表和內存表的數據變更,並僅對發生變化的數據進行高效重算。將包含多層 LEFT JOIN、過濾、排序的完整業務 SQL 一次性註冊,引擎即可開始持續計算。每當底層數據微變,引擎智能計算增量變化並極速推送更新,無需重複執行全量 SQL。該引擎支持查詢語句的熱更新和多語句併發訂閲,為金融實時行情面板、實時監控和低延遲指標計算等場景帶來毫秒級響應體驗。

代碼示例:

// step1: 共享表
t = table(1..10 as id,rand(100,10) as val)
share t as st
// step2:聲明共享表為流式 SQL 的輸入表
declareStreamingSQLTable(st)
// step3:註冊流式 SQL 查詢語句
qId = registerStreamingSQL("select cumavg(val) from st","sql_avg")
// step4:訂閲相應的 StreamingSQL 結果
subscribeStreamingSQL(queryId=qId)
// 此處省略上游數據注入共享表邏輯
// step5:查詢結果表
select * from objByName(qId + "_result")
// step6:環境清理
// 取消訂閲指定流式 SQL 查詢結果,訂閲端停止更新結果表
unsubscribeStreamingSQL(queryId=qId) 
// 註銷已註冊的流式 SQL 查詢
revokeStreamingSQL(queryId=qId)
// 註銷之前聲明的流式 SQL 表
revokeStreamingSQLTable("st")

協同 AI,構建超級外腦 :DolphinDB MCP Server

MCP (Model Context Protocol) 是 AI 大模型與各類應用軟件進行數據交互的協議。通過 MCP 協議,用户可以通過自然語言實現由 AI 代理執行完成各類工作與業務,相比於模型特有的接口,MCP 普適性更強,生態更加豐富。為實現與外部 AI 模型和其他應用系統的通信,新版本推出 DolphinDB MCP server,實現不同的大模型與各種資源之間擴展與集成。

DolphinDB 作為 MCP Server 的優勢在於,為AI模型提供了一個兼具“海量歷史數據深度”和“實時流計算性能”的超級外腦。當你的 AI 應用需要與一個高性能、實時、專精於時序數據的後端深度交互時,選擇 DolphinDB 作為 MCP Server 是一個極具競爭力的技術方案。

當前版本 DolphinDB MCP server 接口支持對用户自定義 tool 和 prompt 的配置和維護,並對不同用户設置不同權限控制對 tools 的管理和調用。

高可用保障再提升,ORCA 升級 Raft Learner

為滿足現代分佈式系統對高可用性和跨地域數據訪問的核心需求,Orca 版本全新推出 Raft Learner 功能,專注於提升高可用流表在跨數據中心或跨集羣場景下的數據同步與訪問能力。該特性通過對 Raft 協議的擴展,允許非投票成員(Learner)異步複製數據,可在不影響主集羣寫入性能的前提下,實現流表數據的異地容災、多活部署與讀寫分離。

典型場景:若用户在北京集羣 A 中部署了一套高可用流表,希望上海集羣 B 能夠就近讀取該流表的數據,只需在上海集羣 B 中配置 Learner 節點,即可自動、異步地複製北京集羣 A 中的數據,從而實現跨地域實時數據訪問與容災備份。

此外,新版本對 Orca 的其他部分也進行了完善和增強:

  • 支持了流表的跨級羣訂閲,通過<流表名稱>@<集羣標識符> 指定其他集羣的 orca 流表;
  • 進一步增強了流圖的運維和管理,支持銷燬流圖、暫停和啓動流圖、重命名全限定名 <name>、 查詢數據表的血源關係等功能;
  • 進一步拓展了流計算接口,包括允許用户更新和刪除規則引擎的規則集、新增自定義流計算引擎等。

跨數據庫聯邦查詢

DolphinDB 推出的跨數據庫聯邦查詢功能,允許用户通過簡單的 createExternalTable 語句將多種異構數據庫和文件格式(如 Oracle、MySQL、SQL Server、S3、Parquet 等)虛擬化為本地表,該表可直接通過 SQL 進行聯合查詢與關聯分析。例如:

loadPlugin("odbc")
oracle_cfg = dict(["connectionString"], ["Dsn=MyOracleDB"])
t = createExternalTable("aka_name", "oracle", oracle_cfg) 
select t.name from t where t.id > 200 limit 50

該功能屏蔽了底層數據庫差異,支持謂詞下推等優化以減少數據傳輸,旨在為用户提供一個統一、簡單且高效的數據訪問入口,輕鬆實現跨源數據整合與查詢分析。

此外,針對 DolphinDB 分佈式集羣和多集羣場景,該功能還能無縫集成,實現對跨節點或跨集羣數據的統一聯邦查詢。 其中跨級羣查詢不需要手動創建外部表。它依賴 Master of Master 架構的全局元數據管理,通過 catalog.database.tb@ClusterCatalog 的語法直接訪問,由系統自動完成虛擬化。

select * from trade, trading.stock2.quote@cluster1 as b
         where b.sym = trade.sym and trade.time = b.time

突破個位數微秒,Swordfish 低延時計算引擎優化

Swordfish 是一個專門為低延時、高性能數據分析開發的計算函數庫。它可以被集成於用户的 C++ 程序之中,用户程序不需要再跨網絡訪問 DolphinDB 就可以進行函數計算, Swordfish 完美繼承了 DolphinDB 的強大計算內核,包括 2000 多個函數、各種數據結構以及流計算引擎。

新版本針對低延時場景進行了專項優化,為響應式狀態引擎 createReactiveStateEngine 、時序引擎 createTimeSeriesEngine 和 createOrderBookSnapshotEngine 增加了 lowLatency 參數,並在開啓後對逐行數據的處理邏輯和數據結構進行了優化,從而提升逐條數據實時計算場景的性能。測試結果表示,在高端處理器等硬件支持下,Swordfish 可以實現十微秒級別的計算延遲,甚至更低。

用户可以將 Swordfish 用於超高頻場景與逐筆訂單級別的的因子計算、實時流計算等任務。目前 Swordfish 已經支持了 C++,Java 和 Python 腳本的 Swordfish 會在後續發佈。

Shark GPLearn 降頻挖掘因子

隨着 AI 浪潮襲來,GPU 算力加速也成為了行業熱點應用之一。

CPU-GPU 異構計算平台 Shark 支持將用户自定義的一個或者多個表達式進行批式並行計算加速,以前在 CPU 上耗時嚴重、擠佔大量資源才能完成的任務,現在可以通過 Shark 無縫切換 GPU 計算大幅提升效率。

腳本語言是 DolphinDB 的一大特色,在 Shark 中,用户只需要在自定義函數上添加“@GPU的標籤,Shark 將自動對該自定義函數進行解析,將用户的計算任務轉化為一個可以在 GPU 上執行的計算圖。Shark Graph可以幫助用户在無需進行任何基於 CUDA 二次開發的基礎上,實現相較於 CPU 10-20 倍以上的性能提高。

Shark 目前已經支持海光 DCU 處理器。在未來,我們會持續基於國產處理器對 DolphinDB 進行安全、性能和易用性方面的建設。

Shark GPLearn 新版本通過引入 dimReduceCol 參數支持降頻因子挖掘,允許使用高頻數據生成低頻因子。系統在計算框架中通過約束聚合算子的使用規則、調整數據分組與拆分邏輯來確保多維數據處理的可行性,同時要求用户保證預測數據的順序與分組排序一致以解決維度匹配問題。

其他功能

數據庫

TextDB

新版本 TextDB 在文本匹配和文本處理方面進行了增強和擴展。新增 matchFuzzy 函數用於文本模糊匹配,scoreColName 參數輸出匹配得分。支持導入外部詞庫,對文本進行分詞分段。

權限管理

新版本加強了對用户權限的管理,增加了對用户創建共享變量的權限控制。

新增配置項 enableSharedVarCreationControl ,用於控制是否允許用户創建共享變量。設置為 true 時,系統將在創建共享變量時檢查用户權限(CREATE_SHARED_VAR),只有具備相應權限的用户才可創建共享變量。

流計算

流計算引擎

新版本新增兩大流計算引擎:

  • 多數據源流式關聯引擎:新版本對流連接引擎進行了拓展,新增支持了 NearestJoin Engine。該引擎在 asof join 關聯最近 1 條數據的基礎上,進一步擴展了功能,支持關聯右表最近的 n 條數據。
  • 訂單還原引擎:新版本新增支持了訂單還原引擎(通過函數 createOrderReconstituteEngine 創建) ,該引擎支持基於上交所逐筆成交和逐筆委託的數據,實時還原缺失的原始委託信息,以確保數據的完整性。

回放

reply 函數可自動記錄回放數據的寫入系統時間,用於管理回放數據和優化回放流程。

Octopus

複雜事件處理引擎(Octopus 引擎)新版本不再限制事件監聽器回調函數 handler 制必須調用 monitor 類的方法,新增支持了對外部類方法的調用,從而提升了開發靈活性與更低的代碼耦合度;此外在運維層面,新增了函數 dropDataViewEngine 用於刪除 DataView 引擎。

函數

新版拓展了字典(dict)與元組(tuple)的雙目計算功能,現已支持元組與標量或其他元組之間的元素級雙目運算。

新版本新增了時序、窗口計算等場景的函數接口:

  • 新增 semiannualBegin 和 semiannualEnd 函數,返回指定時間所在半年期的第一天和最後一天。
  • 新增通用窗口函數 roll,支持用户在 SQL 中自定義滑動窗口的計算規則,相較以前通過 moving、rolling、window 等系列函數進行滑動窗口計算,roll 提供了更通用和便捷的配置。用户可以通過 roll 函數自定義以下配置:
    • 設置窗口類型:支持設置固定時間、行數、交易量滑動的窗口;支持用户自定義窗口起止時間的窗口
    • 支持自定義滑動窗口步長
    • 支持自定義用户空窗口填充、窗口閉合方式、窗口起始時間等
    • 支持設置計算時間區間(如金融場景下僅交易時間段才會發生計算)
//使用時間為步長 60 秒的滑動窗口,計算每個窗口內交易量的平均值和 5 步長移動求和
select roll(X=timestamp, step=60s, stepType='time') as period, avg(vol), msum(vol, 5), symbol as symbol, price as price from t context by symbol

新版本對部分函數的功能進行了擴展:

  • at 函數新增計數展開的功能,具體為根據輸入向量 X,將每個索引下標 i 重複 X[i] 次,生成新向量。該功能可以用在將統計計數轉換為原始序列、數據擴增等場景。如 X = ["Apple", "Banana", "Orange"] [3,2,2] 代表每種水果的數量。則通過 X[at([3,2,2])] 可以迅速生成擴增後的數組 ["Apple","Apple","Apple","Banana","Banana","Orange","Orange"]
  • reverse 新增對內存表、有序字典逆序排序的支持。

新版本對部分函數的功能進行了擴展:

  • at 函數新增計數展開的功能,具體為根據輸入向量 X,將每個索引下標 i 重複 X[i] 次,生成新向量。該功能可以用在將統計計數轉換為原始序列、數據擴增等場景。如 X = ["Apple", "Banana", "Orange"], [3,2,2] 代表每種水果的數量。則通過 X[at([3,2,2])] 可以迅速生成擴增後的數組 ["Apple","Apple","Apple","Banana","Banana","Orange","Orange"]。
  • reverse 新增對內存表、有序字典逆序排序的支持。

運維

新版本重點引入了更精細化的磁盤容量檢查機制,通過在新建分區和已有分區寫入前對每個數據副本所在的獨立磁盤卷(Volume)進行嚴格的空間可用性校驗,取代了過去僅依賴節點整體平均使用率的檢查方式,從而有效預防因單個磁盤寫滿而導致的寫入失敗問題,提升了系統存儲管理的可靠性和穩定性。

故障修復

新版本修復了包括內存泄漏、資源回收、函數計算錯誤、高併發卡頓及元數據管理等在內的多項關鍵故障,顯著提升了系統的穩定性和性能表現。

功能優化

新版本聚焦性能提升,全面優化了分區查詢、剪枝效率與高併發場景下的系統表現,並增強了腳本引擎的表達式處理能力,為用户帶來更快速、更穩定的數據查詢與處理體驗。


以上就是 DolphinDB 3.00.04 & 2.00.17 新版本的功能特性概覽,歡迎大家前往官網更新升級~