數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):34240669 上傳時(shí)間:2021-10-20 格式:DOC 頁(yè)數(shù):10 大?。?55KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共10頁(yè)
數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共10頁(yè)
數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共10頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、數(shù)據(jù)中臺(tái)之結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)設(shè)計(jì) 一. 前言 任何應(yīng)用系統(tǒng)都離不開(kāi)對(duì)數(shù)據(jù)的處理,數(shù)據(jù)也是驅(qū)動(dòng)業(yè)務(wù)創(chuàng)新以及向智能化發(fā)展最核心的東西。這也是為何目前大多數(shù)企業(yè)都在構(gòu)建數(shù)據(jù)中臺(tái)的原因,數(shù)據(jù)處理的技術(shù)已經(jīng)是核心競(jìng)爭(zhēng)力。在一個(gè)完備的技術(shù)架構(gòu)中,通常也會(huì)由應(yīng)用系統(tǒng)以及數(shù)據(jù)系統(tǒng)構(gòu)成。應(yīng)用系統(tǒng)負(fù)責(zé)處理業(yè)務(wù)邏輯,而數(shù)據(jù)系統(tǒng)負(fù)責(zé)處理數(shù)據(jù)。 傳統(tǒng)的數(shù)據(jù)系統(tǒng)就是所謂的『大數(shù)據(jù)』技術(shù),這是一個(gè)被創(chuàng)造出來(lái)的名詞,代表著新的技術(shù)門(mén)檻。近幾年得益于產(chǎn)業(yè)的發(fā)展、業(yè)務(wù)的創(chuàng)新、數(shù)據(jù)的爆發(fā)式增長(zhǎng)以及開(kāi)源技術(shù)的廣泛應(yīng)用,經(jīng)歷多年的磨煉以及在廣大開(kāi)發(fā)者的共建下,大數(shù)據(jù)的核心組件和技術(shù)架構(gòu)日趨成熟。特別是隨著云的發(fā)展,讓『大數(shù)據(jù)』

2、技術(shù)的使用門(mén)檻進(jìn)一步降低,越來(lái)越多的業(yè)務(wù)創(chuàng)新會(huì)由數(shù)據(jù)來(lái)驅(qū)動(dòng)完成。 『大數(shù)據(jù)』技術(shù)會(huì)逐步向輕量化和智能化方向發(fā)展,最終也會(huì)成為一個(gè)研發(fā)工程師的必備技能之一,而這個(gè)過(guò)程必須是由云計(jì)算技術(shù)來(lái)驅(qū)動(dòng)以及在云平臺(tái)之上才能完成。應(yīng)用系統(tǒng)和數(shù)據(jù)系統(tǒng)也會(huì)逐漸融合,數(shù)據(jù)系統(tǒng)不再隱藏在應(yīng)用系統(tǒng)之后,而是也會(huì)貫穿在整個(gè)業(yè)務(wù)交互邏輯。傳統(tǒng)的應(yīng)用系統(tǒng),重點(diǎn)在于交互。而現(xiàn)代的應(yīng)用系統(tǒng),在與你交互的同時(shí),會(huì)慢慢的熟悉你。數(shù)據(jù)系統(tǒng)的發(fā)展驅(qū)動(dòng)了業(yè)務(wù)系統(tǒng)的發(fā)展,從業(yè)務(wù)化到規(guī)?;?,再到智能化。 業(yè)務(wù)化:完成最基本的業(yè)務(wù)交互邏輯。 規(guī)?;悍植际胶痛髷?shù)據(jù)技術(shù)的應(yīng)用,滿(mǎn)足業(yè)務(wù)規(guī)模增長(zhǎng)的需求以及數(shù)據(jù)的積累。 智能化:人工智能技術(shù)的

3、應(yīng)用,挖掘數(shù)據(jù)的價(jià)值,驅(qū)動(dòng)業(yè)務(wù)的創(chuàng)新。 向規(guī)模化和智能化的發(fā)展,仍然存在一定的技術(shù)門(mén)檻。成熟的開(kāi)源技術(shù)的應(yīng)用能讓一個(gè)大數(shù)據(jù)系統(tǒng)的搭建變得簡(jiǎn)單,同時(shí)大數(shù)據(jù)架構(gòu)也變得很普遍,例如廣為人知的Lambda架構(gòu),一定程度上降低了技術(shù)的入門(mén)門(mén)檻。但是對(duì)數(shù)據(jù)系統(tǒng)的后續(xù)維護(hù),例如對(duì)大數(shù)據(jù)組件的規(guī)?;瘧?yīng)用、運(yùn)維管控和成本優(yōu)化,需要掌握大數(shù)據(jù)、分布式技術(shù)及復(fù)雜環(huán)境下定位問(wèn)題的能力,仍然具備很高的技術(shù)門(mén)檻。 數(shù)據(jù)系統(tǒng)的核心組件包含數(shù)據(jù)管道、分布式存儲(chǔ)和分布式計(jì)算,數(shù)據(jù)系統(tǒng)架構(gòu)的搭建會(huì)是使用這些組件的組合拼裝。每個(gè)組件各司其職,組件與組件之間進(jìn)行上下游的數(shù)據(jù)交換,而不同模塊的選擇和組合是架構(gòu)師面臨的最大的挑戰(zhàn)。

4、 本篇文章主要面向數(shù)據(jù)系統(tǒng)的研發(fā)工程師和架構(gòu)師,我們會(huì)首先對(duì)數(shù)據(jù)系統(tǒng)核心組件進(jìn)行拆解,介紹每個(gè)組件下對(duì)應(yīng)的開(kāi)源組件以及云上產(chǎn)品。之后會(huì)深入剖析數(shù)據(jù)系統(tǒng)中結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)技術(shù),介紹阿里云Tablestore選擇哪種設(shè)計(jì)理念來(lái)更好的滿(mǎn)足數(shù)據(jù)系統(tǒng)中對(duì)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的需求。 二. 數(shù)據(jù)系統(tǒng)架構(gòu) 1. 核心組件 上圖是一個(gè)比較典型的技術(shù)架構(gòu),包含應(yīng)用系統(tǒng)和數(shù)據(jù)系統(tǒng)。這個(gè)架構(gòu)與具體業(yè)務(wù)無(wú)關(guān)聯(lián),主要用于體現(xiàn)一個(gè)數(shù)據(jù)應(yīng)用系統(tǒng)中會(huì)包含的幾大核心組件,以及組件間的數(shù)據(jù)流關(guān)系。應(yīng)用系統(tǒng)主要實(shí)現(xiàn)了應(yīng)用的主要業(yè)務(wù)邏輯,處理業(yè)務(wù)數(shù)據(jù)或應(yīng)用元數(shù)據(jù)等。數(shù)據(jù)系統(tǒng)主要對(duì)業(yè)務(wù)數(shù)據(jù)及其他數(shù)據(jù)進(jìn)行匯總和處理,對(duì)接BI

5、、推薦或風(fēng)控等系統(tǒng)。整個(gè)系統(tǒng)架構(gòu)中,會(huì)包含以下比較常見(jiàn)的幾大核心組件: (1) 關(guān)系數(shù)據(jù)庫(kù):用于主業(yè)務(wù)數(shù)據(jù)存儲(chǔ),提供事務(wù)型數(shù)據(jù)處理,是應(yīng)用系統(tǒng)的核心數(shù)據(jù)存儲(chǔ)。 (2) 高速緩存:對(duì)復(fù)雜或操作代價(jià)昂貴的結(jié)果進(jìn)行緩存,加速訪(fǎng)問(wèn)。 (3) 搜索引擎:提供復(fù)雜條件查詢(xún)和全文檢索。 (4) 隊(duì)列:用于將數(shù)據(jù)處理流程異步化,銜接上下游對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)交換。異構(gòu)數(shù)據(jù)存儲(chǔ)之間進(jìn)行上下游對(duì)接的核心組件,例如數(shù)據(jù)庫(kù)系統(tǒng)與緩存系統(tǒng)或搜索系統(tǒng)間的數(shù)據(jù)對(duì)接。也用于數(shù)據(jù)的實(shí)時(shí)提取,在線(xiàn)存儲(chǔ)到離線(xiàn)存儲(chǔ)的實(shí)時(shí)歸檔。 (5) 非結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ):用于海量圖片或視頻等非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),同時(shí)支持在線(xiàn)查詢(xún)或離線(xiàn)計(jì)算的數(shù)據(jù)訪(fǎng)

6、問(wèn)需求。 (6) 結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ):在線(xiàn)數(shù)據(jù)庫(kù)也可作為結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),但這里提到的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)模塊,更偏在線(xiàn)到離線(xiàn)的銜接,特征是能支持高吞吐數(shù)據(jù)寫(xiě)入以及大規(guī)模數(shù)據(jù)存儲(chǔ),存儲(chǔ)和查詢(xún)性能可線(xiàn)性擴(kuò)展??纱鎯?chǔ)面向在線(xiàn)查詢(xún)的非關(guān)系型數(shù)據(jù),或者是用于關(guān)系數(shù)據(jù)庫(kù)的歷史數(shù)據(jù)歸檔,滿(mǎn)足大規(guī)模和線(xiàn)性擴(kuò)展的需求,也可存儲(chǔ)面向離線(xiàn)分析的實(shí)時(shí)寫(xiě)入數(shù)據(jù)。 (7) 批量計(jì)算:對(duì)非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,批量計(jì)算中又分為交互式分析和離線(xiàn)計(jì)算兩類(lèi),離線(xiàn)計(jì)算需要滿(mǎn)足對(duì)大規(guī)模數(shù)據(jù)集進(jìn)行復(fù)雜分析的能力,交互式分析需要滿(mǎn)足對(duì)中等規(guī)模數(shù)據(jù)集實(shí)時(shí)分析的能力。 (8) 流計(jì)算:對(duì)非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)進(jìn)行流式數(shù)據(jù)分析,

7、低延遲產(chǎn)出實(shí)時(shí)視圖。 對(duì)于數(shù)據(jù)存儲(chǔ)組件我們?cè)龠M(jìn)一步分析,當(dāng)前各類(lèi)數(shù)據(jù)存儲(chǔ)組件的設(shè)計(jì)是為滿(mǎn)足不同場(chǎng)景下數(shù)據(jù)存儲(chǔ)的需求,提供不同的數(shù)據(jù)模型抽象,以及面向在線(xiàn)和離線(xiàn)的不同的優(yōu)化偏向。我們來(lái)看下下面這張?jiān)敿?xì)對(duì)比表: 2. 派生數(shù)據(jù)體系 在數(shù)據(jù)系統(tǒng)架構(gòu)中,我們可以看到會(huì)存在多套存儲(chǔ)組件。對(duì)于這些存儲(chǔ)組件中的數(shù)據(jù),有些是來(lái)自應(yīng)用的直寫(xiě),有些是來(lái)自其他存儲(chǔ)組件的數(shù)據(jù)復(fù)制。例如業(yè)務(wù)關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)通常是來(lái)自業(yè)務(wù),而高速緩存和搜索引擎的數(shù)據(jù),通常是來(lái)自業(yè)務(wù)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步與復(fù)制。不同用途的存儲(chǔ)組件有不同類(lèi)型的上下游數(shù)據(jù)鏈路,我們可以大概將其歸類(lèi)為主存儲(chǔ)和輔存儲(chǔ)兩類(lèi),這兩類(lèi)存儲(chǔ)有不同的設(shè)計(jì)目標(biāo),主要特征

8、為: (1) 主存儲(chǔ):數(shù)據(jù)產(chǎn)生自業(yè)務(wù)或者是計(jì)算,通常為數(shù)據(jù)首先落地的存儲(chǔ)。ACID等事務(wù)特性可能是強(qiáng)需求,提供在線(xiàn)應(yīng)用所需的低延遲業(yè)務(wù)數(shù)據(jù)查詢(xún)。 (2) 輔存儲(chǔ):數(shù)據(jù)主要來(lái)自主存儲(chǔ)的數(shù)據(jù)同步與復(fù)制,輔存儲(chǔ)是主存儲(chǔ)的某個(gè)視圖,通常面向數(shù)據(jù)查詢(xún)、檢索和分析做優(yōu)化。 為何會(huì)有主存儲(chǔ)和輔存儲(chǔ)的存在?能不能統(tǒng)一存儲(chǔ)統(tǒng)一讀寫(xiě),滿(mǎn)足所有場(chǎng)景的需求呢?目前看還沒(méi)有,存儲(chǔ)引擎的實(shí)現(xiàn)技術(shù)有多種,選擇行存還是列存,選擇B+tree還是LSM-tree,存儲(chǔ)的是不可變數(shù)據(jù)、頻繁更新數(shù)據(jù)還是時(shí)間分區(qū)數(shù)據(jù),是為高速隨機(jī)查詢(xún)還是高吞吐掃描設(shè)計(jì)等等。數(shù)據(jù)庫(kù)產(chǎn)品目前也是分兩類(lèi),TP和AP,雖然在往HTAP方向走,但實(shí)現(xiàn)方

9、式仍然是底層存儲(chǔ)分為行存和列存。 再來(lái)看主輔存儲(chǔ)在實(shí)際架構(gòu)中的例子,例如關(guān)系數(shù)據(jù)庫(kù)中主表和二級(jí)索引表也可以看做是主與輔的關(guān)系,索引表數(shù)據(jù)會(huì)隨著主表數(shù)據(jù)而變化,強(qiáng)一致同步并且為某些特定條件組合查詢(xún)而優(yōu)化。關(guān)系數(shù)據(jù)庫(kù)與高速緩存和搜索引擎也是主與輔的關(guān)系,采用滿(mǎn)足最終一致的數(shù)據(jù)同步方式,提供高速查詢(xún)和檢索。在線(xiàn)數(shù)據(jù)庫(kù)與數(shù)倉(cāng)也是主與輔的關(guān)系,在線(xiàn)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)集中復(fù)制到數(shù)倉(cāng)來(lái)提供高效的BI分析。 這種主與輔的存儲(chǔ)組件相輔相成的架構(gòu)設(shè)計(jì),我們稱(chēng)之為『派生數(shù)據(jù)體系』。在這個(gè)體系下,最大的技術(shù)挑戰(zhàn)是數(shù)據(jù)如何在主與輔之間進(jìn)行同步與復(fù)制。 上圖我們可以看到幾個(gè)常見(jiàn)的數(shù)據(jù)復(fù)制方式: (1) 應(yīng)用層多

10、寫(xiě) 這是實(shí)現(xiàn)最簡(jiǎn)單、依賴(lài)最少的一種實(shí)現(xiàn)方式,通常采取的方式是在應(yīng)用代碼中先向主存儲(chǔ)寫(xiě)數(shù)據(jù),后向輔存儲(chǔ)寫(xiě)數(shù)據(jù)。這種方式不是很?chē)?yán)謹(jǐn),通常用在對(duì)數(shù)據(jù)可靠性要求不是很高的場(chǎng)景。因?yàn)榇嬖诘膯?wèn)題有很多,一是很難保證主與輔之間的數(shù)據(jù)一致性,無(wú)法處理數(shù)據(jù)寫(xiě)入失效問(wèn)題;二是數(shù)據(jù)寫(xiě)入的消耗堆積在應(yīng)用層,加重應(yīng)用層的代碼復(fù)雜度和計(jì)算負(fù)擔(dān),不是一種解耦很好的架構(gòu);三是擴(kuò)展性較差,數(shù)據(jù)同步邏輯固化在代碼中,比較難靈活添加輔存儲(chǔ)。 (2) 異步隊(duì)列復(fù)制 這是目前被應(yīng)用比較廣的架構(gòu),應(yīng)用層將派生數(shù)據(jù)的寫(xiě)入通過(guò)隊(duì)列來(lái)異步化和解耦。這種架構(gòu)下可將主存儲(chǔ)和輔存儲(chǔ)的數(shù)據(jù)寫(xiě)入都異步化,也可僅將輔存儲(chǔ)的數(shù)據(jù)寫(xiě)入異步化。第一種方式

11、必須接受主存儲(chǔ)可異步寫(xiě)入,否則只能采取第二種方式。而如果采用第二種方式的話(huà),也會(huì)遇到和上一種『應(yīng)用層多寫(xiě)』方案類(lèi)似的問(wèn)題,應(yīng)用層也是多寫(xiě),只不過(guò)是寫(xiě)主存儲(chǔ)與隊(duì)列,隊(duì)列來(lái)解決多個(gè)輔存儲(chǔ)的寫(xiě)入和擴(kuò)展性問(wèn)題。 (3) CDC(Change Data Capture)技術(shù) 這種架構(gòu)下數(shù)據(jù)寫(xiě)入主存儲(chǔ)后會(huì)由主存儲(chǔ)再向輔存儲(chǔ)進(jìn)行同步,對(duì)應(yīng)用層是最友好的,只需要與主存儲(chǔ)打交道。主存儲(chǔ)到輔存儲(chǔ)的數(shù)據(jù)同步,則可以再利用異步隊(duì)列復(fù)制技術(shù)來(lái)做。不過(guò)這種方案對(duì)主存儲(chǔ)的能力有很高的要求,必須要求主存儲(chǔ)能支持CDC技術(shù)。一個(gè)典型的例子就是MySQL+Elasticsearch的組合架構(gòu),Elasticsearch的數(shù)據(jù)

12、通過(guò)MySQL的binlog來(lái)同步,binlog就是MySQL的CDC技術(shù)。 『派生數(shù)據(jù)體系』是一個(gè)比較重要的技術(shù)架構(gòu)設(shè)計(jì)理念,其中CDC技術(shù)是更好的驅(qū)動(dòng)數(shù)據(jù)流動(dòng)的關(guān)鍵手段。具備CDC技術(shù)的存儲(chǔ)組件,才能更好的支撐數(shù)據(jù)派生體系,從而能讓整個(gè)數(shù)據(jù)系統(tǒng)架構(gòu)更加靈活,降低了數(shù)據(jù)一致性設(shè)計(jì)的復(fù)雜度,從而來(lái)面向高速迭代設(shè)計(jì)??上У氖谴蠖鄶?shù)存儲(chǔ)組件不具備CDC技術(shù),例如HBase。而阿里云Tablestore具備非常成熟的CDC技術(shù),CDC技術(shù)的應(yīng)用也推動(dòng)了架構(gòu)的創(chuàng)新,這個(gè)在下面的章節(jié)會(huì)詳細(xì)介紹。 一個(gè)好的產(chǎn)品,在產(chǎn)品內(nèi)部會(huì)采用派生數(shù)據(jù)架構(gòu)來(lái)不斷擴(kuò)充產(chǎn)品的能力,能將派生的過(guò)程透明化,內(nèi)部解決數(shù)據(jù)同步、

13、一致性及資源配比問(wèn)題。而現(xiàn)實(shí)中大多數(shù)技術(shù)架構(gòu)采用產(chǎn)品組合的派生架構(gòu),需要自己去管理數(shù)據(jù)同步與復(fù)制等問(wèn)題,例如常見(jiàn)的MySQL+Elasticsearch,或HBase+Solr等。這種組合通常被忽視的最大問(wèn)題是,在解決CDC技術(shù)來(lái)實(shí)時(shí)復(fù)制數(shù)據(jù)后,如何解決數(shù)據(jù)一致性問(wèn)題?如何追蹤數(shù)據(jù)同步延遲?如何保證輔存儲(chǔ)與主存儲(chǔ)具備相同的數(shù)據(jù)寫(xiě)入能力? 3. 存儲(chǔ)組件的選型 架構(gòu)師在做架構(gòu)設(shè)計(jì)時(shí),最大的挑戰(zhàn)是如何對(duì)計(jì)算組件和存儲(chǔ)組件進(jìn)行選型和組合,同類(lèi)的計(jì)算引擎的差異化相對(duì)不大,通常會(huì)優(yōu)先選擇成熟和生態(tài)健全的計(jì)算引擎,例如批量計(jì)算引擎Spark和流計(jì)算引擎Flink。而對(duì)于存儲(chǔ)組件的選型是一件非常有挑戰(zhàn)的

14、事,存儲(chǔ)組件包含數(shù)據(jù)庫(kù)(又分為SQL和NoSQL兩類(lèi),NoSQL下又根據(jù)各類(lèi)數(shù)據(jù)模型細(xì)分為多類(lèi))、對(duì)象存儲(chǔ)、文件存儲(chǔ)和高速緩存等不同類(lèi)別。帶來(lái)存儲(chǔ)選型復(fù)雜度的主要原因是架構(gòu)師需要綜合考慮數(shù)據(jù)分層、成本優(yōu)化以及面向在線(xiàn)和離線(xiàn)的查詢(xún)優(yōu)化偏向等各種因素,且當(dāng)前的技術(shù)發(fā)展還是多樣化的發(fā)展趨勢(shì),不存在一個(gè)存儲(chǔ)產(chǎn)品能滿(mǎn)足所有場(chǎng)景下的數(shù)據(jù)寫(xiě)入、存儲(chǔ)、查詢(xún)和分析等需求。有一些經(jīng)驗(yàn)可以分享給大家: (1) 數(shù)據(jù)模型和查詢(xún)語(yǔ)言仍然是不同數(shù)據(jù)庫(kù)最顯著的區(qū)別,關(guān)系模型和文檔模型是相對(duì)抽象的模型,而類(lèi)似時(shí)序模型、圖模型和鍵值模型等其他非關(guān)系模型是相對(duì)具象的抽象,如果場(chǎng)景能匹配到具象模型,那選擇范圍能縮小點(diǎn)。 (2)

15、 存儲(chǔ)組件通常會(huì)劃分到不同的數(shù)據(jù)分層,選擇面向規(guī)模、成本、查詢(xún)和分析性能等不同維度的優(yōu)化偏向,選型時(shí)需要考慮清楚對(duì)這部分?jǐn)?shù)據(jù)存儲(chǔ)所要求的核心指標(biāo)。 (3) 區(qū)分主存儲(chǔ)還是輔存儲(chǔ),對(duì)數(shù)據(jù)復(fù)制關(guān)系要有明確的梳理。(主存儲(chǔ)和輔存儲(chǔ)是什么在下一節(jié)介紹) (4) 建立靈活的數(shù)據(jù)交換通道,滿(mǎn)足快速的數(shù)據(jù)搬遷和存儲(chǔ)組件間的切換能力,構(gòu)建快速迭代能力比應(yīng)對(duì)未知需求的擴(kuò)展性更重要。 另外關(guān)于數(shù)據(jù)存儲(chǔ)架構(gòu),我認(rèn)為最終的趨勢(shì)是: (1) 數(shù)據(jù)一定需要分層 (2) 數(shù)據(jù)最終的歸屬地一定是OSS (3) 會(huì)由一個(gè)統(tǒng)一的分析引擎來(lái)統(tǒng)一分析的入口,并提供統(tǒng)一的查詢(xún)語(yǔ)言 4. 結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ) 結(jié)構(gòu)化大數(shù)據(jù)存

16、儲(chǔ)在數(shù)據(jù)系統(tǒng)中是一個(gè)非常關(guān)鍵的組件,它起的一個(gè)很大的作用是連接『在線(xiàn)』和『離線(xiàn)』。作為數(shù)據(jù)中臺(tái)中的結(jié)構(gòu)化數(shù)據(jù)匯總存儲(chǔ),用于在線(xiàn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的匯總來(lái)對(duì)接離線(xiàn)數(shù)據(jù)分析,也用于離線(xiàn)數(shù)據(jù)分析的結(jié)果集存儲(chǔ)來(lái)直接支持在線(xiàn)查詢(xún)或者是數(shù)據(jù)派生。根據(jù)這樣的定位,我們總結(jié)下對(duì)結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的幾個(gè)關(guān)鍵需求。 5. 關(guān)鍵需求 (1) 大規(guī)模數(shù)據(jù)存儲(chǔ) 結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的定位是集中式的存儲(chǔ),作為在線(xiàn)數(shù)據(jù)庫(kù)的匯總(大寬表模式),或者是離線(xiàn)計(jì)算的輸入和輸出,必須要能支撐PB級(jí)規(guī)模數(shù)據(jù)存儲(chǔ)。 (2) 高吞吐寫(xiě)入能力 數(shù)據(jù)從在線(xiàn)存儲(chǔ)到離線(xiàn)存儲(chǔ)的轉(zhuǎn)換,通常是通過(guò)ETL工具,T+1式的同步或者是實(shí)時(shí)同步。結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)

17、需要能支撐多個(gè)在線(xiàn)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的導(dǎo)入,也要能承受大數(shù)據(jù)計(jì)算引擎的海量結(jié)果數(shù)據(jù)集導(dǎo)出。所以必須能支撐高吞吐的數(shù)據(jù)寫(xiě)入,通常會(huì)采用一個(gè)為寫(xiě)入而優(yōu)化的存儲(chǔ)引擎。 (3) 豐富的數(shù)據(jù)查詢(xún)能力 結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)作為派生數(shù)據(jù)體系下的輔存儲(chǔ),需要為支撐高效在線(xiàn)查詢(xún)做優(yōu)化。常見(jiàn)的查詢(xún)優(yōu)化包括高速緩存、高并發(fā)低延遲的隨機(jī)查詢(xún)、復(fù)雜的任意字段條件組合查詢(xún)以及數(shù)據(jù)檢索。這些查詢(xún)優(yōu)化的技術(shù)手段就是緩存和索引,其中索引的支持是多元化的,面向不同的查詢(xún)場(chǎng)景提供不同類(lèi)型的索引。例如面向固定組合查詢(xún)的基于B+tree的二級(jí)索引,面向地理位置查詢(xún)的基于R-tree或BKD-tree的空間索引或者是面向多條件組合查詢(xún)和全文檢

18、索的倒排索引。 (4) 存儲(chǔ)和計(jì)算成本分離 存儲(chǔ)計(jì)算分離是目前一個(gè)比較熱的架構(gòu)實(shí)現(xiàn),對(duì)于一般應(yīng)用來(lái)說(shuō)比較難體會(huì)到這個(gè)架構(gòu)的優(yōu)勢(shì)。在云上的大數(shù)據(jù)系統(tǒng)下,存儲(chǔ)計(jì)算分離才能完全發(fā)揮優(yōu)勢(shì)。存儲(chǔ)計(jì)算分離在分布式架構(gòu)中,最大的優(yōu)勢(shì)是能提供更靈活的存儲(chǔ)和計(jì)算資源管理手段,大大提高了存儲(chǔ)和計(jì)算的擴(kuò)展性。對(duì)成本管理來(lái)說(shuō),只有基于存儲(chǔ)計(jì)算分離架構(gòu)實(shí)現(xiàn)的產(chǎn)品,才能做到存儲(chǔ)和計(jì)算成本的分離。 存儲(chǔ)和計(jì)算成本的分離的優(yōu)勢(shì),在大數(shù)據(jù)系統(tǒng)下會(huì)更加明顯。舉一個(gè)簡(jiǎn)單的例子,結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的存儲(chǔ)量會(huì)隨著數(shù)據(jù)的積累越來(lái)越大,但是數(shù)據(jù)寫(xiě)入量是相對(duì)平穩(wěn)的。所以存儲(chǔ)需要不斷的擴(kuò)大,但是為了支撐數(shù)據(jù)寫(xiě)入或臨時(shí)的數(shù)據(jù)分析而所需的計(jì)算

19、資源,則相對(duì)來(lái)說(shuō)比較固定,是按需的。 (5) 數(shù)據(jù)派生能力 一個(gè)完整的數(shù)據(jù)系統(tǒng)架構(gòu)下,需要有多個(gè)存儲(chǔ)組件并存。并且根據(jù)對(duì)查詢(xún)和分析能力的不同要求,需要在數(shù)據(jù)派生體系下對(duì)輔存儲(chǔ)進(jìn)行動(dòng)態(tài)擴(kuò)展。所以對(duì)于結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)來(lái)說(shuō),也需要有能擴(kuò)展輔存儲(chǔ)的派生能力,來(lái)擴(kuò)展數(shù)據(jù)處理能力。而判斷一個(gè)存儲(chǔ)組件是否具備更好的數(shù)據(jù)派生能力,就看是否具備成熟的CDC技術(shù)。 (6) 計(jì)算生態(tài) 數(shù)據(jù)的價(jià)值需要靠計(jì)算來(lái)挖掘,目前計(jì)算主要?jiǎng)潪榕坑?jì)算和流計(jì)算。對(duì)于結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的要求,一是需要能夠?qū)又髁鞯挠?jì)算引擎,例如Spark、Flink等,作為輸入或者是輸出;二是需要有數(shù)據(jù)派生的能力,將自身數(shù)據(jù)轉(zhuǎn)換為面向分析的列

20、存格式存儲(chǔ)至數(shù)據(jù)湖系統(tǒng);三是自身提供交互式分析能力,更快挖掘數(shù)據(jù)價(jià)值。 滿(mǎn)足第一個(gè)條件是最基本要求,滿(mǎn)足第二和第三個(gè)條件才是加分項(xiàng)。 6. 開(kāi)源產(chǎn)品 目前開(kāi)源界比較知名的結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)是HBase和Cassandra,Cassandra是WideColumn模型NoSQL類(lèi)別下排名Top-1的產(chǎn)品,在國(guó)外應(yīng)用比較廣泛。但這里我們重點(diǎn)提下HBase,因?yàn)樵趪?guó)內(nèi)的話(huà)相比Cassandra會(huì)更流行一點(diǎn)。 HBase是基于HDFS的存儲(chǔ)計(jì)算分離架構(gòu)的WideColumn模型數(shù)據(jù)庫(kù),擁有非常好的擴(kuò)展性,能支撐大規(guī)模數(shù)據(jù)存儲(chǔ),它的優(yōu)點(diǎn)為: (1) 存儲(chǔ)計(jì)算分離架構(gòu):底層基于HDFS,分

21、離的架構(gòu)可帶來(lái)存儲(chǔ)和計(jì)算各自彈性擴(kuò)展的優(yōu)勢(shì),與計(jì)算引擎例如Spark可共享計(jì)算資源,降低成本。 (2) LSM存儲(chǔ)引擎:為寫(xiě)入優(yōu)化設(shè)計(jì),能提供高吞吐的數(shù)據(jù)寫(xiě)入。 (3) 開(kāi)發(fā)者生態(tài)成熟,接入主流計(jì)算引擎:作為發(fā)展多年的開(kāi)源產(chǎn)品,在國(guó)內(nèi)也有比較多的應(yīng)用,開(kāi)發(fā)者社區(qū)很成熟,對(duì)接幾大主流的計(jì)算引擎。 HBase有其突出的優(yōu)點(diǎn),但也有幾大不可忽視的缺陷: (1) 查詢(xún)能力弱 提供高效的單行隨機(jī)查詢(xún)以及范圍掃描,復(fù)雜的組合條件查詢(xún)必須使用Scan+Filter的方式,稍不注意就是全表掃描,效率極低。HBase的Phoenix提供了二級(jí)索引來(lái)優(yōu)化查詢(xún),但和MySQL的二級(jí)索引一樣,只有符合最左匹

22、配的查詢(xún)條件才能做索引優(yōu)化,可被優(yōu)化的查詢(xún)條件非常有限。 (2) 數(shù)據(jù)派生能力弱 前面章節(jié)提到CDC技術(shù)是支撐數(shù)據(jù)派生體系的核心技術(shù),HBase不具備CDC技術(shù)。HBase Replication具備CDC的能力,但是僅為HBase內(nèi)部主備間的數(shù)據(jù)同步機(jī)制。有一些開(kāi)源組件利用其內(nèi)置Replication能力來(lái)嘗試擴(kuò)展HBase的CDC技術(shù),例如用于和Solr同步的Lily Indexer,但是比較可惜的是這類(lèi)組件從理論和機(jī)制上分析就沒(méi)法做到CDC技術(shù)所要求的數(shù)據(jù)保序、最終一致性保證等核心需求。 (3) 成本高 前面提到結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的關(guān)鍵需求之一是存儲(chǔ)與計(jì)算的成本分離,HBase的成

23、本取決于計(jì)算所需CPU核數(shù)成本以及磁盤(pán)的存儲(chǔ)成本,基于固定配比物理資源的部署模式下CPU和存儲(chǔ)永遠(yuǎn)會(huì)有一個(gè)無(wú)法降低的最小比例關(guān)系。即隨著存儲(chǔ)空間的增大,CPU核數(shù)成本也會(huì)相應(yīng)變大,而不是按實(shí)際所需計(jì)算資源來(lái)計(jì)算成本。要達(dá)到完全的存儲(chǔ)與計(jì)算成本分離,只有云上的Serverless服務(wù)模式才能做到。 (4) 運(yùn)維復(fù)雜 HBase是標(biāo)準(zhǔn)的Hadoop組件,最核心依賴(lài)是Zookeeper和HDFS,沒(méi)有專(zhuān)業(yè)的運(yùn)維團(tuán)隊(duì)幾乎無(wú)法運(yùn)維。 (5) 熱點(diǎn)處理能力差 HBase的表的分區(qū)是Range Partition的方式,相比Hash Partition的模式最大的缺陷就是會(huì)存在嚴(yán)重的熱點(diǎn)問(wèn)題。HBa

24、se提供了大量的最佳實(shí)踐文檔來(lái)指引開(kāi)發(fā)者在做表的Rowkey設(shè)計(jì)的時(shí)候避免熱點(diǎn),例如采用hash key,或者是salted-table的方式。但這兩種方式下能保證數(shù)據(jù)的分散均勻,但是無(wú)法保證數(shù)據(jù)訪(fǎng)問(wèn)的熱度均勻。訪(fǎng)問(wèn)熱度取決于業(yè)務(wù),需要一種能根據(jù)熱度來(lái)對(duì)Region進(jìn)行Split或Move等負(fù)載均衡的自動(dòng)化機(jī)制。 國(guó)內(nèi)的高級(jí)玩家大多會(huì)基于HBase做二次開(kāi)發(fā),基本都是在做各種方案來(lái)彌補(bǔ)HBase查詢(xún)能力弱的問(wèn)題,根據(jù)自身業(yè)務(wù)查詢(xún)特色研發(fā)自己的索引方案,例如自研二級(jí)索引方案、對(duì)接Solr做全文索引或者是針對(duì)區(qū)分度小的數(shù)據(jù)集的bitmap索引方案等等??偟膩?lái)說(shuō),HBase是一個(gè)優(yōu)秀的開(kāi)源產(chǎn)品,有

25、很多優(yōu)秀的設(shè)計(jì)思路值得借鑒。 7. Tablestore Tablestore是阿里云自研的結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)產(chǎn)品,具體產(chǎn)品介紹可以參考官網(wǎng)以及權(quán)威指南。Tablestore的設(shè)計(jì)理念很大程度上顧及了數(shù)據(jù)系統(tǒng)內(nèi)對(duì)結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)的需求,并且基于派生數(shù)據(jù)體系這個(gè)設(shè)計(jì)理念專(zhuān)門(mén)設(shè)計(jì)和實(shí)現(xiàn)了一些特色的功能。 (1) 設(shè)計(jì)理念 Tablestore的設(shè)計(jì)理念一方面吸收了優(yōu)秀開(kāi)源產(chǎn)品的設(shè)計(jì)思路,另一方面也是結(jié)合實(shí)際業(yè)務(wù)需求演化出了一些特色設(shè)計(jì)方向,簡(jiǎn)單概括下Tablestore的技術(shù)理念: 存儲(chǔ)計(jì)算分離架構(gòu):采用存儲(chǔ)計(jì)算分離架構(gòu),底層基于飛天盤(pán)古分布式文件系統(tǒng),這是實(shí)現(xiàn)存儲(chǔ)計(jì)算成本分離的基礎(chǔ)。

26、LSM存儲(chǔ)引擎:LSM和B+tree是主流的兩個(gè)存儲(chǔ)引擎實(shí)現(xiàn),其中LSM專(zhuān)為高吞吐數(shù)據(jù)寫(xiě)入優(yōu)化,也能更好的支持?jǐn)?shù)據(jù)冷熱分層。 Serverless產(chǎn)品形態(tài):基于存儲(chǔ)計(jì)算分離架構(gòu)來(lái)實(shí)現(xiàn)成本分離的最關(guān)鍵因素是Serverless服務(wù)化,只有Serverless服務(wù)才能做到存儲(chǔ)計(jì)算成本分離。大數(shù)據(jù)系統(tǒng)下,結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)通常會(huì)需要定期的大規(guī)模數(shù)據(jù)導(dǎo)入,來(lái)自在線(xiàn)數(shù)據(jù)庫(kù)或者是來(lái)自離線(xiàn)計(jì)算引擎,在此時(shí)需要有足夠的計(jì)算能力能接納高吞吐的寫(xiě)入,而平時(shí)可能僅需要比較小的計(jì)算能力,計(jì)算資源要足夠的彈性。另外在派生數(shù)據(jù)體系下,主存儲(chǔ)和輔存儲(chǔ)通常是異構(gòu)引擎,在讀寫(xiě)能力上均有差異,有些場(chǎng)景下需要靈活調(diào)整主輔存儲(chǔ)的配比

27、,此時(shí)也需要存儲(chǔ)和計(jì)算資源彈性可調(diào)。 多元化索引,提供豐富的查詢(xún)能力:LSM引擎特性決定了查詢(xún)能力的短板,需要索引來(lái)優(yōu)化查詢(xún)。而不同的查詢(xún)場(chǎng)景需要不同類(lèi)型的索引,所以Tablestore提供多元化的索引來(lái)滿(mǎn)足不同類(lèi)型場(chǎng)景下的數(shù)據(jù)查詢(xún)需求。 CDC技術(shù):Tablestore的CDC技術(shù)名為T(mén)unnel Service,支持全量和增量的實(shí)時(shí)數(shù)據(jù)訂閱,并且能無(wú)縫對(duì)接Flink流計(jì)算引擎來(lái)實(shí)現(xiàn)表內(nèi)數(shù)據(jù)的實(shí)時(shí)流計(jì)算。 擁抱開(kāi)源計(jì)算生態(tài):除了比較好的支持阿里云自研計(jì)算引擎如MaxCompute和Data Lake Analytics的計(jì)算對(duì)接,也能支持Flink和Spark這兩個(gè)主流計(jì)算引擎的計(jì)算需

28、求,無(wú)需數(shù)據(jù)搬遷。 流批計(jì)算一體:能支持Spark對(duì)表內(nèi)全量數(shù)據(jù)進(jìn)行批計(jì)算,也能通過(guò)CDC技術(shù)對(duì)接Flink來(lái)對(duì)表內(nèi)新增數(shù)據(jù)進(jìn)行流計(jì)算,真正實(shí)現(xiàn)批流計(jì)算結(jié)合。 (2) 特色功能 多元化索引 Tablestore提供多種索引類(lèi)型可選擇,包含全局二級(jí)索引和多元索引。全局二級(jí)索引類(lèi)似于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的二級(jí)索引,能為滿(mǎn)足最左匹配原則的條件查詢(xún)做優(yōu)化,提供低成本存儲(chǔ)和高效的隨機(jī)查詢(xún)和范圍掃描。多元索引能提供更豐富的查詢(xún)功能,包含任意列的組合條件查詢(xún)、全文搜索和空間查詢(xún),也能支持輕量級(jí)數(shù)據(jù)分析,提供基本的統(tǒng)計(jì)聚合函數(shù),兩種索引的對(duì)比和選型可參考這篇文章。 通道服務(wù) 通道服務(wù)是Tablestor

29、e的CDC技術(shù),是支撐數(shù)據(jù)派生體系的核心功能,具體能力可參考這篇文章。能夠被利用在異構(gòu)存儲(chǔ)間的數(shù)據(jù)同步、事件驅(qū)動(dòng)編程、表增量數(shù)據(jù)實(shí)時(shí)訂閱以及流計(jì)算場(chǎng)景。目前在云上Tablestore與Blink能無(wú)縫對(duì)接,也是唯一一個(gè)能直接作為Blink的stream source的結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)。 大數(shù)據(jù)處理架構(gòu) 大數(shù)據(jù)處理架構(gòu)是數(shù)據(jù)系統(tǒng)架構(gòu)的一部分,其架構(gòu)發(fā)展演進(jìn)了多年,有一些基本的核心架構(gòu)設(shè)計(jì)思路產(chǎn)出,例如影響最深遠(yuǎn)的Lambda架構(gòu)。Lambda架構(gòu)比較基礎(chǔ),有一些缺陷,所以在其基礎(chǔ)上又逐漸演進(jìn)出了Kappa、Kappa+等新架構(gòu)來(lái)部分解決Lambda架構(gòu)中存在的一些問(wèn)題,詳情介紹可以看下這篇文

30、章的介紹。Tablestore基于CDC技術(shù)來(lái)與計(jì)算引擎相結(jié)合,基于Lambda架構(gòu)設(shè)計(jì)了一個(gè)全新的Lambda plus架構(gòu)。 Lambda plus架構(gòu) Lambda架構(gòu)的核心思想是將不可變的數(shù)據(jù)以追加的方式并行寫(xiě)到批和流處理系統(tǒng)內(nèi),隨后將相同的計(jì)算邏輯分別在流和批系統(tǒng)中實(shí)現(xiàn),并且在查詢(xún)階段合并流和批的計(jì)算視圖并展示給用戶(hù)?;赥ablestore CDC技術(shù)我們將Tablestore與Blink進(jìn)行了完整對(duì)接,可作為Blink的stream source、dim和sink,推出了Lambda plus架構(gòu): Lambda plus架構(gòu)中數(shù)據(jù)只需要寫(xiě)入Tablestore,Blink流計(jì)算框架通過(guò)通道服務(wù)API直讀表內(nèi)的實(shí)時(shí)更新數(shù)據(jù),不需要用戶(hù)雙寫(xiě)隊(duì)列或者自己實(shí)現(xiàn)數(shù)據(jù)同步。 存儲(chǔ)上,Lambda plus直接使用Tablestore作為master dataset,Tablestore支持用戶(hù)在線(xiàn)系統(tǒng)低延遲讀寫(xiě)更新,同時(shí)也提供了索引功能進(jìn)行高效數(shù)據(jù)查詢(xún)和檢索,數(shù)據(jù)利用率高。 計(jì)算上,Lambda plus利用Blink流批一體計(jì)算引擎,統(tǒng)一流批代碼。 展示層,Tablestore提供了多元化索引,用戶(hù)可自由組合多類(lèi)索引來(lái)滿(mǎn)足不同場(chǎng)景下查詢(xún)的需求。

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲