9 月 6 日,“以實時,見未來”2024 DolphinDB 年度峰會在杭州舉辦。DolphinDB 創始人、CEO 周小華博士為大家帶來了主題為“跨越數據邊界:企業級實時計算平臺構想”的精彩演講。
從最初的一站式大數據平臺,到高性能時序數據庫,再到如今的實時計算平臺,DolphinDB 的發展之路充滿了創新與突破。演講中,周博士回顧了 DolphinDB 如何從時序數據庫,逐步演進為一個涵蓋多模態存儲、流批計算、GPU 計算、豐富的業務中間件等等的全方位基礎軟件的歷程。未來,DolphinDB 將致力于構建一個支持多部門協同作戰的企業級實時計算平臺——Orca。這不僅僅是技術上的進化,更是一種全新的開發模式的探索,可以為金融機構提供更高效、敏捷的解決方案。
以下是周博士在峰會分享的全文內容:
很高興又和大家見面了。再次歡迎各位的到來。以實時,見未來。這是我們這次大會的主題。也呼應了我們對 DolphinDB 的定位。未來我們希望將 DolphinDB 打造成一個企業級的實時計算平臺。
01DolphinDB發展歷程
我記得,DolphinDB 的第一個商業化版本剛剛推出的時候。公司的主要成員都是研發崗位。我作為公司的研發兼第一個銷售,開始了我的路演生涯。那時,每天的兩件核心事情:第一,為下一個版本繼續寫代碼。第二,就是不停的向不同的客戶解釋同一個問題:DolphinDB 是什么。我們最初的定位叫做一站式大數據平臺。試了一段時間之后發現不太靈。精準的踩中了那個年份產品流行語的每一個雷點。一站式,大數據,平臺。搜索引擎一檢索,能出來上百個同類產品。辨識度非常低。完全不能體現出我們的優勢。
我們就琢磨了一下,要換個說法。那個時候,時序數據庫的應用還不是特別廣泛,基本是國外的開源產品InfluxDB 占據市場。所以我們決定用國產高性能時序數據庫這個概念,作為DolphinDB的標簽。20 年的時候,snowflake 在紐交所成功上市,市值超330億美元。緊接著,另一家國產數據庫廠商 PingCap 完成了創歷史的 2.7 億美元融資。一下子,國產數據庫這個概念被點燃了,我們也收獲了很多自然流量的客戶。可能到現在,一小部分客戶還是以一個數據庫、一個時序數據庫的視角,來理解來認識 DolphinDB。
但是時序數據庫這個定位,還是沒法講清楚 DolphinDB。這是6年前,DolphinDB的架構圖。
6 年前 DolphinDB 架構圖
可以看到,DolphinDB 其實在設計之初,就已經與傳統的數據庫有了很大的區別。在分布式存儲之上,我們開發了自己的腳本語言,豐富的專業函數庫。這些能力融合在一起,形成了一個非常擅長實時數據分析的一站式產品。
這是今天 DolphinDB 的架構圖。
現在的DolphinDB 架構圖
DolphinDB 在每一個能力板塊都得到了增強。一個個新功能見證了 DolphinDB 向一個實時計算平臺不斷演進的過程。我們逐漸完善了多模態存儲的概念,從單一的 olap 引擎擴展到現在 olap,tsdb,pkey,imoltp,vector 等5個引擎。計算層面增加了流計算和 GPU 計算 Shark。業務中間件能力得到了極大的提升和擴充,函數個數從 600+ 提升到了 2000+,大量的插件,計算引擎和腳本模塊從無到有覆蓋了諸多的金融業務。
02企業級實時計算平臺構想
近幾年,隨著 DolphinDB 在金融機構的使用越來越深入,一個機構擁有多個 DolphinDB 集群的現象越來越普遍。多集群的數據訪問、計算、運維的需求越來越迫切。與此同時,用戶的計算越來越復雜,任務之間的依賴關系,事件之間的依賴關系,如何簡單清晰的表達,越來越成為一個瓶頸。一個企業級的實時計算平臺的呼聲日益高漲。
企業級實時計算平臺——Orca
順便提一下,我們將企業級實時計算平臺這個產品命名為 Orca 虎鯨,這是繼單集群版本 Dolphin 海豚,GPU 版本 Shark 鯊魚,復雜事件處理引擎 Octopus 章魚之后的又一個海洋家族 logo。虎鯨力量大,速度快,聰明,特別擅長家族協同作戰,這個跟多集群多部門協同工作非常類似。我們內部在討論命名這個產品的時候,說到虎鯨 orca 時,全票一致通過。
大家對企業級實時計算平臺,可能都有自己的看法。深入問題之前,我想分享一下自己樸素的理解。這也是跟我們很多用戶溝通之后形成的概念。企業級平臺首先是能夠協同支持金融機構多部門的業務,尤其在表達復雜批計算或流計算的任務或數據的依賴關系時,非常簡單高效。其次,數據訪問需要變得非常簡單,只要給一個全局唯一的標識,就可以得到需要的數據,用戶不用去操心是不是最新的版本,不用去操心存儲在哪個集群哪個服務器,是不是跟我的計算服務器在同一個集群,不用去操心是不是要避開使用高峰。最后,運維監控和資源管控也必須是企業級的,可以對整個機構的全部集群進行管理。
03企業級實時計算平臺特性
首先實時計算平臺對金融業務的支持必須有足夠的深度和寬度。
這是傳統的數據倉庫不能直接拿過來作為企業級實時計算平臺的重要原因。金融行業,尤其是跟量化投資相關的領域,對于數據分析的應用、數據價值的挖掘,程度之深、維度之廣、投入之大,幾乎可以說是其他所有行業加起來的總和。我身為曾經的從業者,現在的服務者,深以為然。這從側面反應出一個問題,那就是金融領域的業務開發,是專業性極高,非常復雜的。
普通策略開發流程
以普通的策略開發為例,一個有效的策略上線,要經歷特征工程、因子評價、策略回測、代碼轉寫、結果校驗等多個階段,才能最終上到實盤去運行。這個實現的過程,首先業務人員要具備較好的數學、統計、金融理論等學科知識的儲備。通過這些能力將業務邏輯整理出來,通過計算機工程來進行落地實現。而在落地的過程中,為了追求業務運行的效率,又對業務人員的計算機工程能力有較高的要求。計算平臺如果在業務支持上沒有深度,這項工作的落地會非常耗時耗力,失去了平臺建設的意義,還不如讓策略研發人員自己去用Python。
DolphinDB 對金融業務的支持
一個稍具規模的金融機構,業務線通常有很多。從權益到 FICC,從行情、投研、交易、風控到合規,每一個都需要相應的 IT 系統支持。雖然,不能要求一個平臺十八般武藝樣樣精通,但至少在核心能力上有足夠寬度的支持。否則各個業務部門的各個系統極易演變成一個個孤立的煙囪系統或信息孤島。
對金融業務的友好支持,一直是 DolphinDB 引以為傲的一個點,也是 DolphinDB 區別于其它基礎軟件最顯著的一個點。我想,在座的 DolphinDB 的用戶對這一點也深有體會。前面初總也介紹了 DolphinDB 這幾年在不斷拓展金融業務的邊界,從最初的權益量化投研這個單一場景,到現在已經覆蓋十余個場景。今后,我們會繼續堅持這個特色,把底層技術和金融業務融合起來,讓大家落地業務更快更方便。
04新型開發模式--鋸齒模型
現在我們具體來看一看基于 DolphinDB 的金融業務開發模式。DolphinDB 軟件用一句話概括就是 多模態存儲 + 批計算 + 流計算 + 編程語言 + 業務中間件。與金融業務的融合體現在業務中間件這個模塊上。具體我們可以通過內置函數庫,內置引擎,插件和模塊 4 種方式來實現業務中間件。
這種新的開發模式與傳統的煙囪模式最大的區別是不同的業務系統共享一個由存儲,計算和業務中間件構成的一個強大的底座。讓真正懂業務的人寫腳本或調 API 進行快速的二次開發,實現業務快速落地。因為業務的開發非常敏捷,成本占比較小,整個形狀看起來像一把鋸子上的鋸齒,我們稱之為鋸齒開發模型。鋸齒開發模式可以大大提升金融業務的開發效率,降低投入成本。
DolphinDB 鋸齒開發模型
談到業務中間件,不得不提一下我們客戶的一個擔憂。很多客戶表示,開發業務中間件很好,功能很強大,也方便業務落地,但會不會攤子鋪得太大,造成系統復雜度增加,最終導致系統失控?我這兒回應一下。首先非常感謝我們的客戶對我們產品的關切。但是單純從技術和架構的角度來看,業務中間件并非系統的核心,它只是基礎設施暴露的一個框架,允許橫向的去拓展業務邏輯。不論開發一個中間件,還是 100,1000個中間件,DolphinDB 的基礎架構保持不變,也不會增加系統的復雜度。另外,業務中間件這一塊,我們也會更加開放,把標準接口暴露出來,更多的中間件將交由我們的客戶或第三方去開發。
05解決數據一致性問題
企業級實時計算平臺,第二個需要解決的核心問題,就是數據一致性的問題。
簡單說,就是一個金融機構內部,在任何一個時間點上,有一個全局的唯一數據視圖。我們的核心業務部門可以在這個數據視圖上,開展行情,投研,交易,績效,風控,合規等業務的數據寫入,查詢和計算,得到正確可靠的結果。這與資管領域的 IBOR 數據模型一直在倡導的數據一致性,或黃金單一數據源標準,講的是同一個事情。
那為什么在一個金融機構中數據的一致性這么難?為什么同一份數據非得有多個不同版本的拷貝?這兒有很多因素,有非技術的原因,譬如某些行業中的廠商不愿意開放數據接口,又譬如因為合規性的問題部門之間必須有防火墻隔離數據。這些非技術原因,DolphinDB 也無能為力。還有很多技術原因導致的數據不一致的問題,這將會是我們重點要攻克的目標。
針對同一個數據節點上的計算任務太重,不得不創建多個數據拷貝來分擔計算壓力的場景,DolphinDB 會采用存算分離的技術,通過對用戶無感的緩存來解決數據不一致的問題,第一個版本會在 10 月初發布。針對異地距離太遠,不得不創建本地拷貝來提升性能的問題,可以使用 DolphinDB已發布的集群間異步數據復制的能力來解決,或者用 Raft Learner 這樣的分布式復制協議來解決。針對因跨集群,權限管理不便導致數據拷貝的問題,DolphinDB 會在年底的版本推出更為全面的單點登錄方案。針對不能跨集群計算而導致數據拷貝的問題,DolphinDB 正在推出跨集群的 SQL 計算能力。最后對于企業級的數據管理來說,一個全局的數據目錄至關重要,可以用全局唯一的地址來標識每一個數據資源,便于數據訪問。DolphinDB 正在推出一個集群 + 集群內目錄的二級數據目錄管理方法。
企業級數據的一致性建模是一個非常基礎,復雜,但又十分重要問題。這個問題搞好了,系統的可用性,易用性,正確性就能上來了。讓大家在用數據的時候,非常的便捷,非常的絲滑,非常的放心,真正做到只需要知道數據的唯一標識和數據字典,就可以去操作數據了。
06解決計算依賴問題
企業級實時計算平臺另一個有挑戰性的問題是計算依賴的問題。
一個金融機構中各業務部門之間,一個部門里的多個計算任務之間,一個計算任務內的各模塊之間,都存在依賴關系。如果用一幅圖來表示,我們稱之為計算依賴圖。譬如我們需要計算一個持有各類金融資產的機構的風險指標,無論是事后風控的批處理計算,還是事中風控的的流式計算,都會呈現一幅復雜的計算依賴圖。
計算依賴圖
在這個風險計算的依賴圖中,任何一個模塊,譬如行情和頭寸的變化,都會觸發后續的模型或計算指標的變化,最終算出整個機構的風險指標。這種鏈式的實時計算模型正是我們這個平臺名稱的由來。在業務上,對處于高度市場競爭的金融機構來講,企業級實時計算模式是非常有價值的,可以大大提升一家機構對市場反應的靈敏度。
DolphinDB 已經具備非常強大靈活的批計算能力和流計算能力,我們暴露了大量的引擎,模塊,函數和算子給最終用戶,可以用這些底層的能力去靈活實現各類計算任務。但是這些底層的 API 接口并不擅長表達復雜的依賴關系。我們的用戶嘗試用這些底層接口去編寫具有復雜依賴關系的任務時,發現代碼過于復雜,并且難以后期維護和管理。如果再跟分布式計算和高可用結合起來,代碼愈加晦澀難懂。
我們已經意識到了這個問題。我們準備引入一種新的聲明式的 API來描述金融業務的需求邏輯,來表達任務之間的依賴關系。后臺系統負責將這些 high level 的業務邏輯轉化成底層的 API 接口調用。
這種方式的好處是業務描述與具體實現完全分開。這樣業務人員開發會更加簡單,聚焦于業務場景的描述,不用陷于實現的諸多細節之中。另一個好處是便于系統做優化。譬如計算資源怎么分配,任務怎么調度安排,狀態管理怎么實現,數據源的副本如何選擇,高可用怎么實現,計算執行的邏輯計劃和物理計劃的優化,可以做很多工作。當系統復雜時,自動的優化可能比用戶人為的選擇更有效。
07運維、監控及資源管控的需求
當一個企業級的實時計算平臺具備的功能有足夠的寬度和深度,能滿足各部門業務拓展的需要,具備扎實的一致性數據底座,具備描述和優化復雜的業務依賴關系的能力,自然而然就會引出對運維,監控以及資源管控的強力需求。
DolphinDB 目前只具備單一集群的運維能力,而事實上,已經有數十家金融客戶在運行著 2 個以上的 DolphinDB 集群。我們會通過幾個版本的迭代,提供多集群的運維能力。DolphinDB 會增加一種新的節點類型 Master of Master (MoM)。通過 MoM 類型節點,可以便捷的實現多集群運維。
通過全局的數據目錄,計算依賴圖,Dashboard,我們可以對 DolphinDB 集群以及正在運行的計算任務提供可視化的監控手段。用戶可以層層下鉆,去發現和診斷問題。
Orca 中的實時計算任務都做好了狀態管理,可以非常低的代價將任務轉移到其它節點。因此, Orca 的計算資源將具備較好的彈性伸縮能力。
08結語
打造一個企業級的實時計算平臺,是一項艱巨的工程。我們已經預估了工程的難度和復雜性,這將是 DolphinDB 接下來一年最核心的研發工作。我們準備分 4 個版本來實現所有的核心功能,分別是今年的 10 月,明年的 1 月,5 月和 9 月,每個版本要發布的內容,暫時保密。
新版本時間節點
做難而正確的事,這個熟悉的網紅金句,一般用在科技公司年會或峰會的結尾處,彰顯價值。有點俗套,但我覺得用在我們正在做的這件事情上,平心而論,不過分。打造一個企業級的實時計算平臺,國內國外的很多金融機構都想做。但據我所知,至少國內還沒有一家金融機構擁有這樣的計算平臺。所以這個事情的難度肯定比我 2012 年寫 DolphinDB 的第一行代碼時更大,但是我們現在擁有一個更強更穩定的團隊,而且已經打下了 12 年的基礎,我更有信心。退一萬步講,這件事情即便做的不夠好,也可以為后來的研發人員提供更多寶貴的經驗。做好了,則可以大幅提升我們金融乃至其它行業的生產力。正因為這件事情的價值很大,即便在如此惡劣的經濟大環境下,我們仍然愿意放手一搏,去做一家科創企業該做的事情。正因為難,在這個過程中,也更希望得到大家的支持和呵護!也歡迎感興趣的朋友會后做更多技術上和業務上的探討。感謝大家的聆聽,希望大家在今天的會場有收獲!
-
數據庫
+關注
關注
7文章
3794瀏覽量
64362 -
計算平臺
+關注
關注
0文章
52瀏覽量
9622 -
Dolphin
+關注
關注
0文章
6瀏覽量
6923
發布評論請先 登錄
相關推薦
評論