引言
星環科技于2021年3月發布了星環極速大數據平臺TDH的8.0版本。相信很多用戶都對這款新產品非常感興趣。
我們將用一系列文章,會向您逐一介紹最新發布的TDH8.0全新功能和技術創新。幫助企業級數據平臺用戶更全面、深入地了解最新的大數據技術,更好地技術選型。
【視頻號視頻】
您也可以在星環科技官方視頻號、星環社區服務號、以及bilibili、騰訊視頻等站點看到我們的視頻。
存算一體VS存算解耦
1983年甲骨文公司推出了第一代數據庫產品。同一年,IBM公司推出了第二代數據庫產品DB2。這些產品不局限于大型機上使用,也可以部署在小型機甚至PC上。當時的服務器硬件成本高昂,提供的算力和存儲有限,網絡互連的帶寬十分有限。數據庫產品集中在關系型數據庫,集中處理高價值的數據。
為了及時響應事務和查詢的需求,軟件性能優化時,需要極致的壓榨硬件性能。由于網絡帶寬的限制,多服務器間的信息交換十分受限。
因此,重點考慮單服務器的CPU、內存、磁盤等計算和存儲硬件在幾種典型的固定配置下,進行針對性的極致優化。軟件架構和算法,是存儲與計算耦合在一起的。存算一體由此得名,其核心思想是通過存算一體達到性能上的極致優化。
接下來就來說說存算解耦。顧名思義,存算解耦將存儲和計算解耦合,使存儲和計算有各自相對的獨立性。隨著信息技術的發展,服務器的硬件成本逐漸下降,算力和存儲容量不斷增加,網絡帶寬增大,服務器間的數據交換效率不斷提高。
存算解耦在軟件架構上使用分布式的計算、分布式存儲,確保計算和存儲任務都能拆解成保持獨立的小任務。在硬件方面,存算解耦對計算和存儲單元的配置要求限制少,可以根據需要進行靈活的擴展。因此,存算解耦追求集群總體的高性價比。
計算機硬件、數據規模、用戶需求的演變和存算解耦的主流化
回顧一下計算機硬件與網絡的歷史變遷。從二十世紀七八十年代到今天,計算機硬件的發展速度有目共睹。從1982年英特爾推出286 CPU,到現在的多核至強CPU,相同成本下的算力提升了百萬倍以上。內存從幾十幾百KB,到兆B,到現在256G、512G,容量也有了百萬倍的提升。永久存儲從機械硬盤HDD,到固態硬盤SSD,再到閃存Flash Memory,容量和速度也有了大幅提升。網絡速度和帶寬也從幾十KB每秒,提升到了今天服務器內網的千兆網、萬兆網。
硬件成本的大幅降低,網絡帶寬的大幅提升,促使大家通過集群化部署,分布式的架構,集合多臺服務器的計算和存儲能力來解決復雜問題。一臺服務器很難解決的問題,就考慮用多臺服務器來解決,成為一種必然的趨勢。
隨著“大數據”概念被提出與實踐,現在的一個企業或機構,往往要處理幾十、幾百TB數據,甚至PB級的數據也不罕見。
在數據規模指數級增長的同時,數據的價值密度也有了分級分層的趨勢。不同價值密度的數據,選用的數據存儲和計算方案會有差異。核心的數據,往往選用成本較高,但高性能、高可靠的方案。而外圍的數據,往往選用成本較低,性能與可靠性稍弱一些的高性價比的方案。
在業務需求方面。早期,由于硬件成本和硬件性能的限制,客戶理所當然的希望優先解決高價值核心場景。以“交易”為代表的擅長處理事務型的關系型數據庫,首先取得了成功。
而到2010年前后,以Hadoop為代表的開源大數據極大的推動了新技術的發展。處理的數據從單一的結構化數據,到半結構化、非結構化數據也處理。場景方面,從交易型OLTP單一場景,到現在分析型OLAP場景,數據倉庫,數據集市,實施計算,綜合搜索,圖計算圖分析等多場景的聯合。業務需求越來越多樣化,就要求我們的方案能靈活的按需增減數據模型,按需增減分配計算和存儲資源。
小結
由于硬件成本的降低,網絡帶寬的提高,數據量的指數級增長,數據按價值密度分層管理,以及業務場景的多樣化發展等一系列市場趨勢,用戶對大數據和數據庫平臺在靈活擴展縮減資源,靈活增減數據模型等方面提出了更高的要求。用戶從追求單一場景、單機數據庫的極致性能,向著總擁有成本更低、總體方案更靈活高效,集群整體性價比更高的方向發展。
存算解耦方案相比與存算一體方案而言,雖然在單機性能方面稍弱一些,但是在硬件的通用性、硬件資源配置的靈活性、按需擴容縮容能力、數據存儲均勻性自動化管理等多個方面有明顯優勢。因此,我們認為存算解耦技術是大勢所趨,會成為技術的主流。
怎樣的存算解耦能夠滿足當今用戶的需求?
使用過開源產品的觀眾或多或少有這樣的體會。面對明確單一場景數據量合適場景時,使用開源感覺也挺好。但到了需要多產品協同支持復雜的復合場景時,技術難度就大大增加。而如果業務還市場變化時,大數據平臺的整體配置調優就更是一門技術活,一不小心就出妖蛾子,讓人頭暈腦漲。
正是看到了這種不便,我們星環大數據平臺定位在服務多種客戶場景和業務需求,支持的數據量從幾十G、幾百G到超過幾百T、上PB的非常廣泛的業務上。所以,靈活性是我們的存算解耦技術的核心目標。
首先,我們要能靈活的進行垂直擴展。用戶升級換代服務器時,無論是升級CPU、GPU等計算硬件,還是擴展內存、磁盤等存儲硬件,或是計算存儲同時升級擴展,我們的平臺都能支持。
第二,我們要能靈活的進行水平擴展。不同的業務場景,數據量會因市場的變動,出現不同的增長和萎縮。從性價比而言,用戶希望能按需進行水平擴容或縮容。有些MPP架構平臺需要兩個或三個節點一組為最小單位擴容縮容。我們的平臺支持一個節點、一個節點的擴容縮容,方案更靈活。此外,我也支持異構操作系統、異構硬件的服務器在同一個集群中工作,讓用戶的水平擴展有更多的選擇。
第三,我們要能靈活的增加減少數據模型,從而應對復雜多變的業務需求。在創新型的業務中,經常需要靈活的選擇不同的查詢字段和條件,探索性的進行跨項目、跨不明數據的關聯分析和計算,再根據初步的結果決定是否要進一步的深入研究。
由于創新業務無法事先預測,讓每個單一數據庫預留足量存儲和計算資源的方式顯然不可取。根據業務按需擴展數據模型,統一在公共資源池中獲取存對應的儲計算資源,在業務結束后再將資源釋放回公共資源池中。這種彈性的按需獲取資源的方式顯然更貼近業務復雜多變的用戶需求。
有了明確的目標,接下來我們看看星環TDH?8.0是如何在技術實現存算解耦的。
TDH 8.0 的存算解耦實現路徑
先來說說產品定位。星環?TDH 8.0 是企業級一站式大數據綜合平臺。
它提供了大數據存儲、大數據分析、實時計算、綜合搜索、數據挖掘等基礎能力。能處理結構化、半結構化、非結構化數據,能處理實時數據和批量數據。
為企業建設數據湖、數據倉庫、數據中臺提供平臺支撐,為企業數字化轉型提供助力。客戶進行數字化運營、數字化決策、數字營銷等創新業務時,更為便捷。
星環TDH采用了分布式計算、分布式存儲技術。平臺創造性的采用了簡明的五層技術架構來實現存算解耦。
這五層架構從下而上依次是資源調度層、存儲管理層、存儲引擎層、計算引擎層和計算接口層。每一層設計中都考慮了存算解耦的目標要求。
資源調度層 星環云原生操作系統TCOS
資源調度層,我們采用了統一的星環云原生操作系統TCOS(Transwarp ?Cloud Operating System)。這款生產級的云原生操作系統,基于容器技術Kubernetes構建。
提供了調度服務、網絡服務、存儲服務、負載管理、GPU管理以及多云管理等服務,滿足了大數據分布式存儲等有狀態工作負載在編排、彈性、隔離、異構計算、多云等方面的多種需求。
在擴縮容方面,得益于?TCOS 強大的編排技術,我們平臺的計算引擎和存儲引擎都可以獨立的彈性擴縮容。
在調度方面,原生的?Kubernetes 調度器無法滿足我們平臺的應用需求,因此關系型分析引擎Inceptor,使用大數據負載調度策略;實時流計算Slipstream,使用智能負載調度策略;分布式文件系統 TDFS,則使用存儲負載調度策略。
此外,TCOS隔離了因服務器硬件架構、操作系統的異構帶給計算、存儲層的不必要麻煩。通過TCOS對硬件和操作系統的適配和優化,就可以讓存儲、計算代碼工作在異構的服務器上。目前,我們支持X86、ARM、MIPS、Alipha等不同CPU架構的服務器,也支持CentOS、統信UOS、銀河麒麟、中標麒麟等不同操作系統。客戶可以將異構的服務器和操作系統部署在同一個集群中,擴展更加靈活,選擇更加多樣化。
存儲管理層 統一的分布式文件系統和分布式數據管理系統
先來說說星環分布式文件系統,Transwarp Distributed File System,TDFS。
與開源方案相比,我們的方案充我們基于RAFT協議解決高可用問題,不再依賴Zookeeper等協調組件。同時,充分利用NVME存儲介質的高性能,構建自己的元數據服務,解決HDFSNameNode的元數據規模瓶頸等相關問題。從而保障集群水平擴展能力向幾百、幾千節點規模演進。
再來說說星環分布式數據管理系統,Transwarp Distributed Data Management System,TDDMS。
如右下角圖片所示,它分為Master和Tablet Server兩部分。
Master采用3、5、7節點的RAFT?Group保障高可用性。負責元信息管理,讀寫分離管理。Tablet Server負責數據分片與均勻分布管理,支持范圍分片,哈希分片,支持分割與合并操作。
與開源方案筆,它也提高了節點上限到幾百幾千。讀寫分離保障了數據分布變動時,不會影響集群總體服務。而自動化的分布管理,在水平擴展時,無需數據重分布操作,也會影響集群服務,保障了持續服務能力。
存儲引擎層,用8種存儲引擎,支持10種數據模型
我們選擇使用多種異構存儲引擎,是因為統一的存儲引擎并不能滿足不同場景對高性能的要求。不同的場景的高性能保障仍然需要使用不同的數據結構,因此需要多種存儲引擎。
我們也與多個數據庫簡單對接不同,將文件管理和分布式數據管理等公共部分進行了統一。這樣做的好處是,一方面我們通過多種存儲引擎保障了高性能,另一方面我們通過統一的存儲管理,使得擴展不同的數據模型變得容易。
從用戶的角度,一份數據,可能一開始只用來做批量分析,后來根據業務需要增加全文搜索,這時用戶只需要操作同一個平臺,增加一下搜索模型,產品就會擴展相應的計算、存儲資源支持搜索。感受上一個產品擁有了多模型彈性擴展的能力,十分便捷。資源也是按需增減而不是長期預留,十分的經濟高效。
統一的分布式計算引擎 Transwarp Nucleon
計算引擎方面,市場上許多方案使用針對不同場景使用不同計算引擎。而我們星環使用統一的計算引擎,各類算法都遵從一致的計算框架,從邏輯計劃、邏輯優化,到物理計劃、物理優化,再到執行引擎。
我們也使用了許多優化技術,包括:基于規則的優化、基于物化的優化、基于代價的優化、向量化執行引擎等等,不再一一詳述。
之所以選用統一的計算引擎,就是讓產品根據數據模型,自動選擇最優算法、算子,保障高性能。而不是由用戶人憑經驗進行優化。
另一個好處,就是讓跨庫關聯分析與計算變得十分方便,不再需要數據從一個庫導入導出到另一個庫。用戶也不用擔心數據模型切換影響計算,最大程度保障了計算彈性。
統一的SQL編譯器 Transwarp Quark
最后,我們介紹一下計算接口層。星環開發了統一的SQL編譯器Transwarp Quark,確保星環平臺中的各個數據庫產品遵從一致的SQL規范。支持標準SQL語法;支持標準JDBC、ODBC連接;支持標準Oracle、IBM DB2、Teradata語法方言;
客戶即使切換了業務場景、切換了數據庫,也不用擔憂開發接口、編程語言不兼容的問題。使用統一的SQL,開發的代碼可移植性強,技術對接成本低,開發人員學習成本低,能更好的應對復雜多變的業務需求。
總結
TDH8.0 使用了簡明的5層架構,包括:資源調度層、存儲管理層、存儲引擎層、計算引擎、計算接口層。
在技術實現上,架構中每個層次的技術,都重點考慮了存算解耦的技術目標,允許計算和存儲獨立擴展,允許用戶靈活的進行水平擴展和垂直擴展。此外,還支持按需增減數據模型,使用統一SQL降低學習和遷移成本等。讓用戶應對各類業務變動時,輕松自如。