爲什麼說這個時代需要分佈式時序數據庫?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在國外的金融行業,時序數據庫已經應用了很長一段時間,華爾街上的很多公司在 2000 年之前就開始使用時序數據庫來解決金融行業的問題了。國內金融領域,特別是券商、私募、公募等行業,差不多最近三年在 DolphinDB 的帶動下才開始使用時序數據庫。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在物聯網行業,全球範圍內使用時序數據庫的時間還不到 10 年,國內差不多有 3 到 5 年的時間,基本都停留在第一階段:通過大量使用單機版時序數據庫完成數據採集、數據查詢、監控等簡單工作。周小華預計,在未來 5 年內,時序數據庫會迎來爆發性增長。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在物聯網領域,隨着傳感器採集數據量的爆炸式增長,越來越多的場景每秒超過 50 萬測點甚至 1000 萬測點。對於這個量級的數據,單機版時序數據庫已經無法滿足業務要求了。與此同時,最近幾年,分佈式時序數據庫技術越來越成熟和完善,已經進入到大規模落地應用階段。雖然物聯網領域對於時序數據庫的應用還處於比較淺的階段,但是企業逐漸意識到數據的價值,未來會有越來越多的企業希望利用時序數據庫挖掘出更多有價值的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在金融領域,由於使用時序數據庫的第一批頭部客戶的示範作用,大部分金融機構會很快意識到採用高性能時序數據庫所帶來的競爭優勢。5 年後,時序數據庫會在金融機構成爲標配。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然,任何一項技術的成熟都離不開資本的進入。周小華表示,投資機構今年對時序數據庫賽道的熱情高漲。據周小華介紹,投資機構對時序數據庫的調研,主要關注的是短期內能否在金融領域實現快速增長,以及中長期時序數據庫在物聯網的應用場景的變現能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"周小華認爲,只有當時序數據庫可以根據採集的數據智能控制設備,優化流程和工藝,或者影響交易和決策,其價值纔會被體現,更多的客戶也纔會接受這一新型數據庫。這也是未來時序數據庫發展的重要方向。此外,投資機構也比較關注產業的上下游問題。在物聯網領域,時序數據庫的推廣離不開集成廠商的支持。國內有大量做系統集成的軟件企業,如果可以和這些廠商進行深度合作,將會對時序數據庫的未來推廣起到非常重要的作用。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"以 C++ 歷經十年打磨"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在華爾街工作的時候,周小華就發現,很多頂級券商與對沖基金處理高頻數據的一款時序數據庫存在一些非常明顯的缺點。例如,由於其開發時所處時代的侷限,沒有內置分佈式功能,無法實現分佈式計算;語言晦澀難懂,學習與維護成本極高。周小華敏銳地意識到,如果能解決分佈式問題,並且更容易使用,無疑會有廣闊的市場。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這樣的時代背景下,加之在華爾街的親身所感,周小華與幾位志同道合的旅美博士,從 2012 年開始從事分佈式時序數據庫的原型開發。當時數據庫開發的主流編程語言基本都是 C 和 C++。由於 C++ 的開發效率比 C 高很多,所以 DolphinDB 就自然地選擇了 C++。由於 Java 的開發人員比 C++ 還要多一些,也有一些其他的時序數據庫開發選擇的是 Java。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"周小華表示,DolphinDB 的開發過程可以分爲四個階段。第一個階段是原型開發,主要是單機版原型,包括了時序存儲引擎、編程語言和計算引擎。這個過程大概用了四年時間。花費如此長時間打磨的主要原因是絕大多數單機版數據庫原型不包含編程語言和函數庫,而周小華認爲與關係型數據庫不同,對時序數據庫而言,函數庫和編程語言是非常重要的。關係型數據庫要確保業務流程的正常運轉,並保證數據的正確性,這是關係數據庫最主要的可信功能;但是時序數據庫最核心的功能是從海量數據中發掘價值,爲業務提供幫助。數據分析的必要條件是編程語言與函數庫,因此周小華在這個階段就主持開發了一門完整的編程語言和非常強大的函數庫。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二階段,DolphinDB 引入了分佈式的功能,包括分佈式存儲和分佈式計算。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三階段主要是對流計算的重要支持。項目發展之初主要是爲了滿足數據存取和歷史數據分析。到第三階段,整個團隊發現流數據是大量客戶的剛需,所以在流數據分發與計算方面投入大量資源。客戶不需要開發大量代碼,只要對 DolphinDB 內置的流數據引擎做一些簡單配置,即可進行流數據實時計算,滿足業務上的計算需求。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第四階段也是 DolphinDB 目前的階段,主要是提供對多模數據庫的支持。DolphinDB 希望在時序數據存儲引擎基礎上,提供多個存儲引擎。這是由於 DolphinDB 在開拓市場的過程中,發現衆多企業需要開發數據中臺,集成時序數據、業務數據、半結構化數據等多種類型的數據,因此需要多模數據庫引擎。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"最終,經歷了多輪迭代的 DolphinDB 內置了分佈式文件系統、多種流數據引擎,擁有強大的計算能力,並且採用強一致性協議,滿足基本的事務支持,足以支撐超大規模數據量的計算以及 7x24 小時的穩定運行。2018 年初,DolphinDB 首先在國外一些投行、基金公司、量化對沖基金試用。從 2018 年下半年開始,DolphinDB 推向國內金融行業與物聯網行業,並迅速收穫了一大批各領域的頭部客戶。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"周小華表示,DolphinDB 希望爲用戶輸出四方面的價值:一是希望爲客戶提供穩定的分佈式集羣,滿足物聯網 24 小時不間斷運行的應用需求,即便是對穩定性要求極高的能源行業、電力行業也可以完美支撐;二是爲客戶提供強大的計算引擎,滿足客戶對歷史數據、實時數據計算和建模的需要,從數據中挖掘價值,進而控制設備,並優化流程和工藝,影響交易及決策;三是持續與行業客戶和集成商合作,打造各行業的函數庫,或者說算法庫,只有這樣才能讓各行各業都用起來,創造更多的價值;四是提供輕量級的一站式解決方案,降低企業使用大數據的綜合應用成本,讓大量的傳統企業也能夠高效使用大數據。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"至關重要的低成本數據存儲"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在物聯網時代,數據量日益增大,誰能真正將低成本數據存儲做好,纔有希望突出重圍。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在設計思路上,DolphinDB 針對這個問題進行了特別優化。周小華表示,除了列式存儲的設計思路之外,DolphinDB 還增加了對多值模型的支持。多值模型可以降低存儲成本,大大縮小數據冗餘。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"DolphinDB支持多層數據介質,不對客戶的數據存儲介質有特殊要求,企業可以按照自己的需求進行選擇。爲了降低數據庫延遲,提升吞吐量,DolphinDB 最多是在數據庫日誌和元素程度上使用部分 SSD。但這部分非常小,一個服務器配一個 256G 的磁盤就足夠。具體的數據存儲都可以使用 HDD 磁盤,這樣用戶的承租成本可以降到最低。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在壓縮算法層面,DolphinDB 使用的最主要算法是 LZ4 算法及其變種。時間類型上,採用 Delta of Deta 算法,因爲這個算法對時間的壓縮比非常高。此外,DolphinDB 對字符串類型的字典壓縮算法也做了創新。由於字符串的存儲成本與數據查詢成本都非常高,所以團隊自研了壓縮算法,該算法對字符串類型的壓縮效率和查詢效率都有很大提升。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"流批一體"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們應該如何理解流批一體呢?批量計算主要用於研發環境,離線對數據庫中的歷史數據進行分析和建模。流主要用於生產環境,研發階段得到的核心代碼和模型可以直接用於時序數據進行預測、預警或者交易決策,二者使用同一批代碼,我們稱之爲“流批一體”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"無論是金融行業還是物聯網行業,流批一體都非常重要。一個企業是否能及時響應用戶需求會直接影響企業的價值增長。在很多場景中,實時計算的需求已經高於傳統的計算需求了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"具體來說,在研發階段得到的代碼直接用於生態環境進行預測,其好處如下:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一,贏得了先發優勢。研發結束以後,代碼就可以直接用到生產環境中,不需要在生產環境重新實現。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二,解決了 PDO 兩套開發成本的問題;"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三,規避兩套體系可能帶來的不一致風險。如果流計算的結果與批計算的結果不一致,會帶來很多問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當下,DolphinDB 的“流批一體”方案已經在金融行業進行了大規模落地,可以將量化回測開發的大量因子用在流數據場景中,只需要很低的延時就可以把這些因子計算出來,這也是金融領域非常高頻的應用場景。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"未來 3 到 5 年將會是分佈式時序數據庫的爆發期"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"周小華認爲,“如果沒有合適的應用場景,技術將沒有用武之地。中國擁有大量的金融機構,也是製造業大國,存在着大量的應用場景。伴隨着中美之間的科技競爭,整個社會的數字化轉型步伐加快,這是一個非常好的機會。風險投資同樣對基礎軟件非常看好。我認爲時序數據庫當下處在最好的發展時代。未來 3 到 5 年,有可能在金融、物聯網等領域迎來爆發性的發展”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是,挑戰與機遇並存。首先,當前國內在數據庫領域的人才資源非常匱乏,在尋找數據庫內核研發等相關人才上會比較困難;二是國產化的浪潮下可能會出現一些利用政策紅利而過少參與市場競爭的企業。在周小華看來,過度利用政策紅利並不利於產品質量的持續提升,這是需要企業儘量避免的;三是企業應該走出去,跟國際上最頂尖的產品和團隊去競爭。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對身處其中的時序數據庫廠商而言,周小華認爲最大的難點在於如何在物聯網領域持續創造價值。目前很多傳統企業的數字化轉型是因爲政府或者公司領導層在推動,而不是基於項目本身的價值,這是不可持續的。爲了解決這個問題,DolphinDB 開始積極與集成商合作,雙方共同建立行業的算法庫或者函數庫,進而幫助各領域的企業快速利用數據創造價值;對外開放,構建自己的生態,積極與第三方共同合作開發插件或者算法,讓其可以更好地與傳統企業內部的其他組件進行適配,真正做到降本增效;多模數據庫支持,做到一門編程語言,一套計算引擎和多個存儲引擎;增強實時流計算功能,包括增量機器學習;進行雲適配,增強伸縮性和易用性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"嘉賓介紹:"},{"type":"text","text":"周⼩華,浙江智臾科技有限公司(DolphinDB 智臾科技)CEO,上海交通⼤學⼯學學⼠和⼯學碩⼠,美國德雷克塞爾⼤學信息科學和技術博⼠。2008 年畢業後⾄2016 年 6⽉期間曾先後在 LYZ 基⾦、巴克萊資本、摩根史丹利從事程序化交易策略和⾼頻交易系統的研發。主要研究⽅向爲⼤數據、數據庫、⽂本檢索和數據挖掘,是⾦融⼤數據存儲、檢索、分析和建模⽅⾯的資深專家。在相關領域的國際頂級期刊和頂級學術會議(TKDE,SIGIR,SIGKDD,CIKM 等)發表論⽂30 餘篇,被來⾃50 多個國家的獨⽴專家學者引⽤1200 多次。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章