選單

時序資料庫,爆發期將至

要知道,資料庫的開發難度僅次於作業系統,要花上七八年甚至更久的週期,所以將一個數據庫的原型轉變成真正可商業化落地的專案,是一個漫長且充滿困難的過程。然而,周小華做到了。他從華爾街頂級投資銀行發現商機,用四年時間從零開始打造了分散式時序資料庫 DolphinDB 的原型,然後回國創業,將先進的時序資料庫技術引入國內。本文,InfoQ 採訪了浙江智臾科技有限公司(DolphinDB 智臾科技)CEO 周⼩華,以期深入瞭解這個處在爆發前夜的技術。

嘉賓:周小華

編輯:鈺瑩

1

為什麼說這個時代需要分散式時序資料庫?

在國外的金融行業,時序資料庫已經應用了很長一段時間,華爾街上的很多公司在 2000 年之前就開始使用時序資料庫來解決金融行業的問題了。國內金融領域,特別是券商、私募、公募等行業,差不多最近三年在 DolphinDB 的帶動下才開始使用時序資料庫。

在物聯網行業,全球範圍內使用時序資料庫的時間還不到 10 年,國內差不多有 3 到 5 年的時間,基本都停留在第一階段:透過大量使用單機版時序資料庫完成資料採集、資料查詢、監控等簡單工作。周小華預計,在未來 5 年內,時序資料庫會迎來爆發性增長。

在物聯網領域,隨著資料量的爆炸式增長,越來越多的場景每秒超過 50 萬測點甚至 1000 萬測點。對於這個量級的資料,單機版時序資料庫已經無法滿足業務要求了。與此同時,最近幾年,分散式時序資料庫技術越來越成熟和完善,已經進入到大規模落地應用階段。雖然物聯網領域對於時序資料庫的應用還處於比較淺的階段,但是企業逐漸意識到資料的價值,未來會有越來越多的企業希望利用時序資料庫挖掘出更多有價值的資訊。

在金融領域,由於使用時序資料庫的第一批頭部客戶的示範作用,大部分金融機構會很快意識到採用高效能時序資料庫所帶來的競爭優勢。5 年後,時序資料庫會在金融機構成為標配。

當然,任何一項技術的成熟都離不開資本的進入。周小華表示,投資機構今年對時序資料庫賽道的熱情高漲。據周小華介紹,投資機構對時序資料庫的調研,主要關注的是短期內能否在金融領域實現快速增長,以及中長期時序資料庫在物聯網的應用場景的變現能力。

周小華認為,只有當時序資料庫可以根據採集的資料智慧控制裝置,最佳化流程和工藝,或者影響交易和決策,其價值才會被體現,更多的客戶也才會接受這一新型資料庫。這也是未來時序資料庫發展的重要方向。此外,投資機構也比較關注產業的上下游問題。在物聯網領域,時序資料庫的推廣離不開整合廠商的支援。國內有大量做系統整合的軟體企業,如果可以和這些廠商進行深度合作,將會對時序資料庫的未來推廣起到非常重要的作用。

2

以 C++ 歷經十年打磨

在華爾街工作的時候,周小華就發現,很多頂級券商與對沖基金處理高頻資料的一款時序資料庫存在一些非常明顯的缺點。例如,由於其開發時所處時代的侷限,沒有內建分散式功能,無法實現分散式計算;語言晦澀難懂,學習與維護成本極高。周小華敏銳地意識到,如果能解決分散式問題,並且更容易使用,無疑會有廣闊的市場。

在這樣的時代背景下,加之在華爾街的親身所感,周小華與幾位志同道合的旅美博士,從 2012 年開始從事分散式時序資料庫的原型開發。當時資料庫開發的主流程式語言基本都是 C 和 C++。由於 C++ 的開發效率比 C 高很多,所以 DolphinDB 就自然地選擇了 C++。由於 Java 的開發人員比 C++ 還要多一些,也有一些其他的時序資料庫開發選擇的是 Java。

周小華表示,DolphinDB 的開發過程可以分為四個階段。第一個階段是原型開發,主要是單機版原型,包括了時序儲存引擎、程式語言和計算引擎。這個過程大概用了四年時間。花費如此長時間打磨的主要原因是絕大多數單機版資料庫原型不包含程式語言和函式庫,而周小華認為與關係型資料庫不同,對時序資料庫而言,函式庫和程式語言是非常重要的。關係型資料庫要確保業務流程的正常運轉,並保證資料的正確性,這是關係資料庫最主要的可信功能;但是時序資料庫最核心的功能是從海量資料中發掘價值,為業務提供幫助。資料分析的必要條件是程式語言與函式庫,因此周小華在這個階段就主持開發了一門完整的程式語言和非常強大的函式庫。

第二階段,DolphinDB 引入了分散式的功能,包括分散式儲存和分散式計算。

第三階段主要是對流計算的重要支援。專案發展之初主要是為了滿足資料存取和歷史資料分析。到第三階段,整個團隊發現流資料是大量客戶的剛需,所以在流資料分發與計算方面投入大量資源。客戶不需要開發大量程式碼,只要對 DolphinDB 內建的流資料引擎做一些簡單配置,即可進行流資料實時計算,滿足業務上的計算需求。

第四階段也是 DolphinDB 目前的階段,主要是提供對多模資料庫的支援。DolphinDB 希望在時序資料儲存引擎基礎上,提供多個儲存引擎。這是由於 DolphinDB 在開拓市場的過程中,發現眾多企業需要開發資料中臺,整合時序資料、業務資料、半結構化資料等多種型別的資料,因此需要多模資料庫引擎。

最終,經歷了多輪迭代的 DolphinDB 內建了分散式檔案系統、多種流資料引擎,擁有強大的計算能力,並且採用強一致性協議,滿足基本的事務支援,足以支撐超大規模資料量的計算以及 7x24 小時的穩定執行。2018 年初,DolphinDB 首先在國外一些投行、基金公司、量化對沖基金試用。從 2018 年下半年開始,DolphinDB 推向國內金融行業與物聯網行業,並迅速收穫了一大批各領域的頭部客戶。

周小華表示,DolphinDB 希望為使用者輸出四方面的價值:一是希望為客戶提供穩定的分散式叢集,滿足物聯網 24 小時不間斷執行的應用需求,即便是對穩定性要求極高的能源行業、電力行業也可以完美支撐;二是為客戶提供強大的計算引擎,滿足客戶對歷史資料、實時資料計算和建模的需要,從資料中挖掘價值,進而控制裝置,並最佳化流程和工藝,影響交易及決策;三是持續與行業客戶和整合商合作,打造各行業的函式庫,或者說演算法庫,只有這樣才能讓各行各業都用起來,創造更多的價值;四是提供輕量級的一站式解決方案,降低企業使用大資料的綜合應用成本,讓大量的傳統企業也能夠使用大資料。

至關重要的低成本資料儲存

在物聯網時代,資料量日益增大,誰能真正將低成本資料儲存做好,才有希望突出重圍。

在設計思路上,DolphinDB 針對這個問題進行了特別最佳化。周小華表示,除了列式儲存的設計思路之外,DolphinDB 還增加了對多值模型的支援。多值模型可以降低儲存成本,大大縮小資料冗餘。

支援多層資料介質,不對客戶的資料儲存介質進行要求,企業可以按照自己的需求進行選擇。為了降低資料庫延遲,提升吞吐量,DolphinDB 最多是在資料庫日誌和元素程度上使用部分 SSD。但這部分非常小,一個伺服器配一個 256G 的磁碟就足夠。具體的資料儲存都可以使用 HDD 盤,這樣對整個使用者的承租成本可以降到最低。

在壓縮演算法層面,DolphinDB 使用的最主要演算法是 LZ4 演算法及其變種。時間型別上,採用 Delta of Deta 演算法,因為這個演算法對時間的壓縮比非常高。此外,DolphinDB 對字串型別的字典壓縮演算法也做了創新。由於字串的儲存成本與資料查詢成本都非常高,所以團隊自研了壓縮演算法,該演算法對字串型別的壓縮效率和查詢效率都有很大提升。

流批一體

我們應該如何理解流批一體呢?批次計算主要用於研發環境,離線對資料庫中的歷史資料進行分析和建模。流主要用於生產環境,研發階段得到的核心程式碼和模型可以直接用於時序資料進行預測、預警或者交易決策,二者使用同一批程式碼,我們稱之為“流批一體”。

無論是金融行業還是物聯網行業,流批一體都非常重要。一個企業是否能及時響應使用者需求會直接影響企業的價值增長。在很多場景中,實時計算的需求已經高於傳統的計算需求了。

具體來說,在研發階段得到的程式碼直接用於生態環境進行預測,其好處如下:

第一,贏得了先發優勢,因為研發環境結束以後,就可以直接用到生產環境中,不需要在生產環境重新實現,這個已經佔了先發優勢。

第二,解決了 PDO 兩套開發成本的問題;

第三,規避兩套體系可能帶來的不一致風險。如果流計算的結果與批計算的結果不一致,會帶來很多問題。

當下,DolphinDB 的“流批一體”方案已經在金融行業進行了大規模落地,可以將量化回測開發的大量因子用在流資料場景中,只需要很低的延時就可以把這些因子計算出來,這也是金融領域非常高頻的應用場景。未來 3 到 5 年將會是分散式時序資料庫的爆發期除了金融、物聯網等領域的使用者對分散式時序資料庫的需求激增,政策也為整個行業帶來了巨大的機遇,這也是促使周小華毅然放棄海外的工作回到國內創業的原因之一。“如果沒有合適的應用場景,技術將沒有用武之地。中國擁有大量的金融機構,也是製造業大國,存在著大量的應用場景。伴隨著中美之間的科技競爭,整個社會的數字化轉型步伐加快,這是一個非常好的機會。風險投資同樣對基礎軟體非常看好。我認為時序資料庫當下處在最好的發展時代。未來 3 到 5 年,有可能在金融、物聯網等領域迎來爆發性的發展”。

但是,挑戰與機遇並存。首先,當前國內在資料庫領域的人才資源非常匱乏,在尋找資料庫核心研發等相關人才上會比較困難;二是國產化的浪潮下可能會出現一些利用政策紅利而過少參與市場競爭的企業。在周小華看來,過度利用政策紅利並不利於產品質量的持續提升,這是需要企業儘量避免的;三是企業應該走出去,跟國際上最頂尖的產品和團隊去競爭。

對身處其中的時序資料庫廠商而言,周小華認為最大的難點在於如何在物聯網領域持續創造價值。目前很多傳統企業的數字化轉型是因為政府或者公司領導層在推動,而不是看到了專案本身的價值,這是不可持續的。為了解決這個問題,DolphinDB 開始積極與整合商合作,雙方共同建立行業的演算法庫或者函式庫,進而幫助各領域的企業快速利用資料創造價值;對外開放,構建自己的生態,積極與第三方共同合作開發外掛或者演算法,讓其可以更好地與傳統企業內部的其他元件進行適配,真正做到降本增效;多模資料庫支援,做到一門程式語言,一套計算引擎和多個儲存引擎;增強實時流計算功能,包括增量機器學習;進行雲適配,增強伸縮性和易用性。

嘉賓介紹:

周⼩華,浙江智臾科技有限公司(DolphinDB 智臾科技)CEO,上海交通⼤學⼯學學⼠和⼯學碩⼠,美國德雷克塞爾⼤學資訊科學和技術博⼠。2008 年畢業後⾄2016 年 6⽉期間曾先後在 LYZ 基⾦、巴克萊資本、摩根史丹利從事程式化交易策略和⾼頻交易系統的研發。主要研究⽅向為⼤資料、資料庫、⽂本檢索和資料探勘,是⾦融⼤資料儲存、檢索、分析和建模⽅⾯的資深專家。在相關領域的國際頂級期刊和頂級學術會議(TKDE,SIGIR,SIGKDD,CIKM 等)發表論⽂30 餘篇,被來⾃50 多個國家的獨⽴專家學者引⽤1200 多次。

點個在看少個 bug