引言
星環(huán)科技于2021年3月發(fā)布了星環(huán)極速大數(shù)據(jù)平臺(tái)TDH的8.0版本屏歹。相信很多用戶都對(duì)這款新產(chǎn)品非常感興趣蝙眶。
我們將用一系列文章械馆,會(huì)向您逐一介紹最新發(fā)布的TDH8.0全新功能和技術(shù)創(chuàng)新霹崎。幫助企業(yè)級(jí)數(shù)據(jù)平臺(tái)用戶更全面境析、深入地了解最新的大數(shù)據(jù)技術(shù)劳淆,更好地技術(shù)選型。
【視頻號(hào)視頻】
您也可以在星環(huán)科技官方視頻號(hào)默赂、星環(huán)社區(qū)服務(wù)號(hào)沛鸵、以及bilibili、騰訊視頻等站點(diǎn)看到我們的視頻缆八。
存算一體VS存算解耦
1983年甲骨文公司推出了第一代數(shù)據(jù)庫產(chǎn)品曲掰。同一年,IBM公司推出了第二代數(shù)據(jù)庫產(chǎn)品DB2奈辰。這些產(chǎn)品不局限于大型機(jī)上使用栏妖,也可以部署在小型機(jī)甚至PC上奖恰。當(dāng)時(shí)的服務(wù)器硬件成本高昂吊趾,提供的算力和存儲(chǔ)有限,網(wǎng)絡(luò)互連的帶寬十分有限瑟啃。數(shù)據(jù)庫產(chǎn)品集中在關(guān)系型數(shù)據(jù)庫论泛,集中處理高價(jià)值的數(shù)據(jù)。
為了及時(shí)響應(yīng)事務(wù)和查詢的需求蛹屿,軟件性能優(yōu)化時(shí)孵奶,需要極致的壓榨硬件性能。由于網(wǎng)絡(luò)帶寬的限制蜡峰,多服務(wù)器間的信息交換十分受限。
因此朗恳,重點(diǎn)考慮單服務(wù)器的CPU湿颅、內(nèi)存、磁盤等計(jì)算和存儲(chǔ)硬件在幾種典型的固定配置下粥诫,進(jìn)行針對(duì)性的極致優(yōu)化油航。軟件架構(gòu)和算法,是存儲(chǔ)與計(jì)算耦合在一起的怀浆。存算一體由此得名谊囚,其核心思想是通過存算一體達(dá)到性能上的極致優(yōu)化怕享。
接下來就來說說存算解耦。顧名思義镰踏,存算解耦將存儲(chǔ)和計(jì)算解耦合函筋,使存儲(chǔ)和計(jì)算有各自相對(duì)的獨(dú)立性。隨著信息技術(shù)的發(fā)展奠伪,服務(wù)器的硬件成本逐漸下降跌帐,算力和存儲(chǔ)容量不斷增加,網(wǎng)絡(luò)帶寬增大绊率,服務(wù)器間的數(shù)據(jù)交換效率不斷提高谨敛。
存算解耦在軟件架構(gòu)上使用分布式的計(jì)算、分布式存儲(chǔ)滤否,確保計(jì)算和存儲(chǔ)任務(wù)都能拆解成保持獨(dú)立的小任務(wù)脸狸。在硬件方面,存算解耦對(duì)計(jì)算和存儲(chǔ)單元的配置要求限制少藐俺,可以根據(jù)需要進(jìn)行靈活的擴(kuò)展炊甲。因此,存算解耦追求集群總體的高性價(jià)比紊搪。
計(jì)算機(jī)硬件蜜葱、數(shù)據(jù)規(guī)模、用戶需求的演變和存算解耦的主流化
回顧一下計(jì)算機(jī)硬件與網(wǎng)絡(luò)的歷史變遷耀石。從二十世紀(jì)七八十年代到今天牵囤,計(jì)算機(jī)硬件的發(fā)展速度有目共睹。從1982年英特爾推出286 CPU滞伟,到現(xiàn)在的多核至強(qiáng)CPU揭鳞,相同成本下的算力提升了百萬倍以上。內(nèi)存從幾十幾百KB梆奈,到兆B野崇,到現(xiàn)在256G、512G亩钟,容量也有了百萬倍的提升乓梨。永久存儲(chǔ)從機(jī)械硬盤HDD,到固態(tài)硬盤SSD清酥,再到閃存Flash Memory扶镀,容量和速度也有了大幅提升。網(wǎng)絡(luò)速度和帶寬也從幾十KB每秒焰轻,提升到了今天服務(wù)器內(nèi)網(wǎng)的千兆網(wǎng)臭觉、萬兆網(wǎng)。
硬件成本的大幅降低,網(wǎng)絡(luò)帶寬的大幅提升蝠筑,促使大家通過集群化部署狞膘,分布式的架構(gòu),集合多臺(tái)服務(wù)器的計(jì)算和存儲(chǔ)能力來解決復(fù)雜問題什乙。一臺(tái)服務(wù)器很難解決的問題挽封,就考慮用多臺(tái)服務(wù)器來解決,成為一種必然的趨勢(shì)稳强。
隨著“大數(shù)據(jù)”概念被提出與實(shí)踐场仲,現(xiàn)在的一個(gè)企業(yè)或機(jī)構(gòu),往往要處理幾十退疫、幾百TB數(shù)據(jù)渠缕,甚至PB級(jí)的數(shù)據(jù)也不罕見。
在數(shù)據(jù)規(guī)模指數(shù)級(jí)增長的同時(shí)褒繁,數(shù)據(jù)的價(jià)值密度也有了分級(jí)分層的趨勢(shì)亦鳞。不同價(jià)值密度的數(shù)據(jù),選用的數(shù)據(jù)存儲(chǔ)和計(jì)算方案會(huì)有差異棒坏。核心的數(shù)據(jù)燕差,往往選用成本較高,但高性能坝冕、高可靠的方案徒探。而外圍的數(shù)據(jù),往往選用成本較低喂窟,性能與可靠性稍弱一些的高性價(jià)比的方案测暗。
在業(yè)務(wù)需求方面。早期磨澡,由于硬件成本和硬件性能的限制碗啄,客戶理所當(dāng)然的希望優(yōu)先解決高價(jià)值核心場(chǎng)景。以“交易”為代表的擅長處理事務(wù)型的關(guān)系型數(shù)據(jù)庫稳摄,首先取得了成功稚字。
而到2010年前后,以Hadoop為代表的開源大數(shù)據(jù)極大的推動(dòng)了新技術(shù)的發(fā)展厦酬。處理的數(shù)據(jù)從單一的結(jié)構(gòu)化數(shù)據(jù)胆描,到半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)也處理仗阅。場(chǎng)景方面昌讲,從交易型OLTP單一場(chǎng)景,到現(xiàn)在分析型OLAP場(chǎng)景霹菊,數(shù)據(jù)倉庫,數(shù)據(jù)集市,實(shí)施計(jì)算旋廷,綜合搜索鸠按,圖計(jì)算圖分析等多場(chǎng)景的聯(lián)合。業(yè)務(wù)需求越來越多樣化饶碘,就要求我們的方案能靈活的按需增減數(shù)據(jù)模型目尖,按需增減分配計(jì)算和存儲(chǔ)資源。
小結(jié)
由于硬件成本的降低扎运,網(wǎng)絡(luò)帶寬的提高瑟曲,數(shù)據(jù)量的指數(shù)級(jí)增長,數(shù)據(jù)按價(jià)值密度分層管理豪治,以及業(yè)務(wù)場(chǎng)景的多樣化發(fā)展等一系列市場(chǎng)趨勢(shì)洞拨,用戶對(duì)大數(shù)據(jù)和數(shù)據(jù)庫平臺(tái)在靈活擴(kuò)展縮減資源,靈活增減數(shù)據(jù)模型等方面提出了更高的要求负拟。用戶從追求單一場(chǎng)景烦衣、單機(jī)數(shù)據(jù)庫的極致性能,向著總擁有成本更低掩浙、總體方案更靈活高效花吟,集群整體性價(jià)比更高的方向發(fā)展。
存算解耦方案相比與存算一體方案而言厨姚,雖然在單機(jī)性能方面稍弱一些衅澈,但是在硬件的通用性、硬件資源配置的靈活性谬墙、按需擴(kuò)容縮容能力今布、數(shù)據(jù)存儲(chǔ)均勻性自動(dòng)化管理等多個(gè)方面有明顯優(yōu)勢(shì)。因此芭梯,我們認(rèn)為存算解耦技術(shù)是大勢(shì)所趨险耀,會(huì)成為技術(shù)的主流。
怎樣的存算解耦能夠滿足當(dāng)今用戶的需求玖喘?
使用過開源產(chǎn)品的觀眾或多或少有這樣的體會(huì)甩牺。面對(duì)明確單一場(chǎng)景數(shù)據(jù)量合適場(chǎng)景時(shí),使用開源感覺也挺好累奈。但到了需要多產(chǎn)品協(xié)同支持復(fù)雜的復(fù)合場(chǎng)景時(shí)贬派,技術(shù)難度就大大增加。而如果業(yè)務(wù)還市場(chǎng)變化時(shí)澎媒,大數(shù)據(jù)平臺(tái)的整體配置調(diào)優(yōu)就更是一門技術(shù)活搞乏,一不小心就出妖蛾子,讓人頭暈?zāi)X漲戒努。
正是看到了這種不便请敦,我們星環(huán)大數(shù)據(jù)平臺(tái)定位在服務(wù)多種客戶場(chǎng)景和業(yè)務(wù)需求镐躲,支持的數(shù)據(jù)量從幾十G、幾百G到超過幾百T侍筛、上PB的非常廣泛的業(yè)務(wù)上萤皂。所以,靈活性是我們的存算解耦技術(shù)的核心目標(biāo)匣椰。
首先裆熙,我們要能靈活的進(jìn)行垂直擴(kuò)展。用戶升級(jí)換代服務(wù)器時(shí)禽笑,無論是升級(jí)CPU入录、GPU等計(jì)算硬件,還是擴(kuò)展內(nèi)存佳镜、磁盤等存儲(chǔ)硬件僚稿,或是計(jì)算存儲(chǔ)同時(shí)升級(jí)擴(kuò)展,我們的平臺(tái)都能支持邀杏。
第二贫奠,我們要能靈活的進(jìn)行水平擴(kuò)展。不同的業(yè)務(wù)場(chǎng)景望蜡,數(shù)據(jù)量會(huì)因市場(chǎng)的變動(dòng)唤崭,出現(xiàn)不同的增長和萎縮。從性價(jià)比而言脖律,用戶希望能按需進(jìn)行水平擴(kuò)容或縮容谢肾。有些MPP架構(gòu)平臺(tái)需要兩個(gè)或三個(gè)節(jié)點(diǎn)一組為最小單位擴(kuò)容縮容。我們的平臺(tái)支持一個(gè)節(jié)點(diǎn)小泉、一個(gè)節(jié)點(diǎn)的擴(kuò)容縮容芦疏,方案更靈活。此外微姊,我也支持異構(gòu)操作系統(tǒng)酸茴、異構(gòu)硬件的服務(wù)器在同一個(gè)集群中工作,讓用戶的水平擴(kuò)展有更多的選擇兢交。
第三薪捍,我們要能靈活的增加減少數(shù)據(jù)模型,從而應(yīng)對(duì)復(fù)雜多變的業(yè)務(wù)需求配喳。在創(chuàng)新型的業(yè)務(wù)中酪穿,經(jīng)常需要靈活的選擇不同的查詢字段和條件,探索性的進(jìn)行跨項(xiàng)目晴裹、跨不明數(shù)據(jù)的關(guān)聯(lián)分析和計(jì)算被济,再根據(jù)初步的結(jié)果決定是否要進(jìn)一步的深入研究。
由于創(chuàng)新業(yè)務(wù)無法事先預(yù)測(cè)涧团,讓每個(gè)單一數(shù)據(jù)庫預(yù)留足量存儲(chǔ)和計(jì)算資源的方式顯然不可取只磷。根據(jù)業(yè)務(wù)按需擴(kuò)展數(shù)據(jù)模型经磅,統(tǒng)一在公共資源池中獲取存對(duì)應(yīng)的儲(chǔ)計(jì)算資源,在業(yè)務(wù)結(jié)束后再將資源釋放回公共資源池中钮追。這種彈性的按需獲取資源的方式顯然更貼近業(yè)務(wù)復(fù)雜多變的用戶需求馋贤。
有了明確的目標(biāo),接下來我們看看星環(huán)TDH?8.0是如何在技術(shù)實(shí)現(xiàn)存算解耦的畏陕。
TDH 8.0 的存算解耦實(shí)現(xiàn)路徑
先來說說產(chǎn)品定位。星環(huán)?TDH 8.0 是企業(yè)級(jí)一站式大數(shù)據(jù)綜合平臺(tái)仿滔。
它提供了大數(shù)據(jù)存儲(chǔ)惠毁、大數(shù)據(jù)分析、實(shí)時(shí)計(jì)算崎页、綜合搜索鞠绰、數(shù)據(jù)挖掘等基礎(chǔ)能力。能處理結(jié)構(gòu)化飒焦、半結(jié)構(gòu)化蜈膨、非結(jié)構(gòu)化數(shù)據(jù),能處理實(shí)時(shí)數(shù)據(jù)和批量數(shù)據(jù)牺荠。
為企業(yè)建設(shè)數(shù)據(jù)湖翁巍、數(shù)據(jù)倉庫、數(shù)據(jù)中臺(tái)提供平臺(tái)支撐休雌,為企業(yè)數(shù)字化轉(zhuǎn)型提供助力灶壶。客戶進(jìn)行數(shù)字化運(yùn)營杈曲、數(shù)字化決策驰凛、數(shù)字營銷等創(chuàng)新業(yè)務(wù)時(shí),更為便捷担扑。
星環(huán)TDH采用了分布式計(jì)算恰响、分布式存儲(chǔ)技術(shù)。平臺(tái)創(chuàng)造性的采用了簡明的五層技術(shù)架構(gòu)來實(shí)現(xiàn)存算解耦涌献。
這五層架構(gòu)從下而上依次是資源調(diào)度層胚宦、存儲(chǔ)管理層、存儲(chǔ)引擎層洁奈、計(jì)算引擎層和計(jì)算接口層间唉。每一層設(shè)計(jì)中都考慮了存算解耦的目標(biāo)要求。
資源調(diào)度層 星環(huán)云原生操作系統(tǒng)TCOS
資源調(diào)度層利术,我們采用了統(tǒng)一的星環(huán)云原生操作系統(tǒng)TCOS(Transwarp ?Cloud Operating System)呈野。這款生產(chǎn)級(jí)的云原生操作系統(tǒng),基于容器技術(shù)Kubernetes構(gòu)建印叁。
提供了調(diào)度服務(wù)被冒、網(wǎng)絡(luò)服務(wù)军掂、存儲(chǔ)服務(wù)、負(fù)載管理昨悼、GPU管理以及多云管理等服務(wù)蝗锥,滿足了大數(shù)據(jù)分布式存儲(chǔ)等有狀態(tài)工作負(fù)載在編排、彈性率触、隔離终议、異構(gòu)計(jì)算、多云等方面的多種需求葱蝗。
在擴(kuò)縮容方面穴张,得益于?TCOS 強(qiáng)大的編排技術(shù),我們平臺(tái)的計(jì)算引擎和存儲(chǔ)引擎都可以獨(dú)立的彈性擴(kuò)縮容两曼。
在調(diào)度方面皂甘,原生的?Kubernetes 調(diào)度器無法滿足我們平臺(tái)的應(yīng)用需求,因此關(guān)系型分析引擎Inceptor悼凑,使用大數(shù)據(jù)負(fù)載調(diào)度策略偿枕;實(shí)時(shí)流計(jì)算Slipstream,使用智能負(fù)載調(diào)度策略户辫;分布式文件系統(tǒng) TDFS渐夸,則使用存儲(chǔ)負(fù)載調(diào)度策略。
此外渔欢,TCOS隔離了因服務(wù)器硬件架構(gòu)捺萌、操作系統(tǒng)的異構(gòu)帶給計(jì)算、存儲(chǔ)層的不必要麻煩膘茎。通過TCOS對(duì)硬件和操作系統(tǒng)的適配和優(yōu)化桃纯,就可以讓存儲(chǔ)、計(jì)算代碼工作在異構(gòu)的服務(wù)器上披坏。目前态坦,我們支持X86、ARM棒拂、MIPS伞梯、Alipha等不同CPU架構(gòu)的服務(wù)器,也支持CentOS帚屉、統(tǒng)信UOS谜诫、銀河麒麟、中標(biāo)麒麟等不同操作系統(tǒng)攻旦∮骺酰客戶可以將異構(gòu)的服務(wù)器和操作系統(tǒng)部署在同一個(gè)集群中,擴(kuò)展更加靈活牢屋,選擇更加多樣化且预。
存儲(chǔ)管理層 統(tǒng)一的分布式文件系統(tǒng)和分布式數(shù)據(jù)管理系統(tǒng)
先來說說星環(huán)分布式文件系統(tǒng)槽袄,Transwarp Distributed File System,TDFS锋谐。
與開源方案相比遍尺,我們的方案充我們基于RAFT協(xié)議解決高可用問題,不再依賴Zookeeper等協(xié)調(diào)組件涮拗。同時(shí)乾戏,充分利用NVME存儲(chǔ)介質(zhì)的高性能,構(gòu)建自己的元數(shù)據(jù)服務(wù)三热,解決HDFSNameNode的元數(shù)據(jù)規(guī)模瓶頸等相關(guān)問題歧蕉。從而保障集群水平擴(kuò)展能力向幾百、幾千節(jié)點(diǎn)規(guī)模演進(jìn)康铭。
再來說說星環(huán)分布式數(shù)據(jù)管理系統(tǒng),Transwarp Distributed Data Management System赌髓,TDDMS从藤。
如右下角圖片所示,它分為Master和Tablet Server兩部分锁蠕。
Master采用3夷野、5、7節(jié)點(diǎn)的RAFT?Group保障高可用性荣倾。負(fù)責(zé)元信息管理悯搔,讀寫分離管理。Tablet Server負(fù)責(zé)數(shù)據(jù)分片與均勻分布管理舌仍,支持范圍分片妒貌,哈希分片,支持分割與合并操作铸豁。
與開源方案筆灌曙,它也提高了節(jié)點(diǎn)上限到幾百幾千。讀寫分離保障了數(shù)據(jù)分布變動(dòng)時(shí)节芥,不會(huì)影響集群總體服務(wù)在刺。而自動(dòng)化的分布管理,在水平擴(kuò)展時(shí)头镊,無需數(shù)據(jù)重分布操作蚣驼,也會(huì)影響集群服務(wù),保障了持續(xù)服務(wù)能力相艇。
存儲(chǔ)引擎層颖杏,用8種存儲(chǔ)引擎,支持10種數(shù)據(jù)模型
我們選擇使用多種異構(gòu)存儲(chǔ)引擎坛芽,是因?yàn)榻y(tǒng)一的存儲(chǔ)引擎并不能滿足不同場(chǎng)景對(duì)高性能的要求输玷。不同的場(chǎng)景的高性能保障仍然需要使用不同的數(shù)據(jù)結(jié)構(gòu)队丝,因此需要多種存儲(chǔ)引擎。
我們也與多個(gè)數(shù)據(jù)庫簡單對(duì)接不同欲鹏,將文件管理和分布式數(shù)據(jù)管理等公共部分進(jìn)行了統(tǒng)一机久。這樣做的好處是,一方面我們通過多種存儲(chǔ)引擎保障了高性能赔嚎,另一方面我們通過統(tǒng)一的存儲(chǔ)管理膘盖,使得擴(kuò)展不同的數(shù)據(jù)模型變得容易。
從用戶的角度尤误,一份數(shù)據(jù)侠畔,可能一開始只用來做批量分析,后來根據(jù)業(yè)務(wù)需要增加全文搜索损晤,這時(shí)用戶只需要操作同一個(gè)平臺(tái)软棺,增加一下搜索模型,產(chǎn)品就會(huì)擴(kuò)展相應(yīng)的計(jì)算尤勋、存儲(chǔ)資源支持搜索喘落。感受上一個(gè)產(chǎn)品擁有了多模型彈性擴(kuò)展的能力,十分便捷最冰。資源也是按需增減而不是長期預(yù)留瘦棋,十分的經(jīng)濟(jì)高效。
統(tǒng)一的分布式計(jì)算引擎 Transwarp Nucleon
計(jì)算引擎方面暖哨,市場(chǎng)上許多方案使用針對(duì)不同場(chǎng)景使用不同計(jì)算引擎赌朋。而我們星環(huán)使用統(tǒng)一的計(jì)算引擎,各類算法都遵從一致的計(jì)算框架篇裁,從邏輯計(jì)劃沛慢、邏輯優(yōu)化,到物理計(jì)劃达布、物理優(yōu)化颠焦,再到執(zhí)行引擎。
我們也使用了許多優(yōu)化技術(shù)往枣,包括:基于規(guī)則的優(yōu)化伐庭、基于物化的優(yōu)化、基于代價(jià)的優(yōu)化分冈、向量化執(zhí)行引擎等等圾另,不再一一詳述。
之所以選用統(tǒng)一的計(jì)算引擎雕沉,就是讓產(chǎn)品根據(jù)數(shù)據(jù)模型集乔,自動(dòng)選擇最優(yōu)算法、算子,保障高性能扰路。而不是由用戶人憑經(jīng)驗(yàn)進(jìn)行優(yōu)化尤溜。
另一個(gè)好處,就是讓跨庫關(guān)聯(lián)分析與計(jì)算變得十分方便汗唱,不再需要數(shù)據(jù)從一個(gè)庫導(dǎo)入導(dǎo)出到另一個(gè)庫宫莱。用戶也不用擔(dān)心數(shù)據(jù)模型切換影響計(jì)算,最大程度保障了計(jì)算彈性哩罪。
統(tǒng)一的SQL編譯器 Transwarp Quark
最后授霸,我們介紹一下計(jì)算接口層。星環(huán)開發(fā)了統(tǒng)一的SQL編譯器Transwarp Quark际插,確保星環(huán)平臺(tái)中的各個(gè)數(shù)據(jù)庫產(chǎn)品遵從一致的SQL規(guī)范碘耳。支持標(biāo)準(zhǔn)SQL語法;支持標(biāo)準(zhǔn)JDBC框弛、ODBC連接辛辨;支持標(biāo)準(zhǔn)Oracle、IBM DB2瑟枫、Teradata語法方言斗搞;
客戶即使切換了業(yè)務(wù)場(chǎng)景、切換了數(shù)據(jù)庫力奋,也不用擔(dān)憂開發(fā)接口、編程語言不兼容的問題幽七。使用統(tǒng)一的SQL景殷,開發(fā)的代碼可移植性強(qiáng),技術(shù)對(duì)接成本低澡屡,開發(fā)人員學(xué)習(xí)成本低猿挚,能更好的應(yīng)對(duì)復(fù)雜多變的業(yè)務(wù)需求。
總結(jié)
TDH8.0 使用了簡明的5層架構(gòu)驶鹉,包括:資源調(diào)度層绩蜻、存儲(chǔ)管理層、存儲(chǔ)引擎層室埋、計(jì)算引擎办绝、計(jì)算接口層。
在技術(shù)實(shí)現(xiàn)上姚淆,架構(gòu)中每個(gè)層次的技術(shù)孕蝉,都重點(diǎn)考慮了存算解耦的技術(shù)目標(biāo),允許計(jì)算和存儲(chǔ)獨(dú)立擴(kuò)展腌逢,允許用戶靈活的進(jìn)行水平擴(kuò)展和垂直擴(kuò)展降淮。此外,還支持按需增減數(shù)據(jù)模型搏讶,使用統(tǒng)一SQL降低學(xué)習(xí)和遷移成本等佳鳖。讓用戶應(yīng)對(duì)各類業(yè)務(wù)變動(dòng)時(shí)霍殴,輕松自如。