資源描述:
《分布式并行數(shù)據(jù)庫集群在海量數(shù)據(jù)處理上的應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、分布式并行數(shù)據(jù)庫集群在海量數(shù)據(jù)處理上的應(yīng)用武新-南大通用數(shù)據(jù)技術(shù)有限公司目錄1–列存儲vs行存儲數(shù)據(jù)庫性能特征分析2–GBaseMPP并行數(shù)據(jù)庫集群3–海量數(shù)據(jù)統(tǒng)計、分析應(yīng)用案例4–總結(jié)&QAGBase8a分析型數(shù)據(jù)庫產(chǎn)品形態(tài)?GBase8a列存儲數(shù)據(jù)庫簡介?GBase8a是南大通用公司面向海量數(shù)據(jù)分析型應(yīng)用領(lǐng)域,以獨特的列存儲、高效壓縮、智能索引、并行架構(gòu)等技術(shù)為基礎(chǔ),自主研發(fā)的一款極高性能關(guān)系型數(shù)據(jù)庫產(chǎn)品。具有滿足各個數(shù)據(jù)密集型行業(yè)日益增大的數(shù)據(jù)分析,數(shù)據(jù)挖掘,數(shù)據(jù)備份和即席查詢的需求。?GBase8aCluster基于MP
2、P的SN并行數(shù)據(jù)庫集群簡介?GBase8aCluster是在GBase8a列存儲數(shù)據(jù)庫基礎(chǔ)上開發(fā)的,基于現(xiàn)代云計算理念和sharednothing架構(gòu)的并行數(shù)據(jù)庫集群。以其獨特的偏平架構(gòu),高可用性和動態(tài)擴展能力,為超大規(guī)模數(shù)據(jù)管理提供一個高性價比的通用平臺。架構(gòu)特征應(yīng)用程序SQLInterconnect數(shù)據(jù)庫節(jié)點..無Master,節(jié)點對等的扁平架構(gòu)。高性能,高密度節(jié)點。完全并行的MPP架構(gòu),在線節(jié)點動態(tài)伸縮。多副本數(shù)據(jù),透明高可用。數(shù)據(jù)分發(fā)節(jié)點外部數(shù)據(jù)來源ftp,nfsetc數(shù)據(jù)庫系統(tǒng)一直面臨的性能瓶頸問題數(shù)據(jù)庫性能優(yōu)化的核心思想是提升查詢SQL的I/O效率被動優(yōu)
3、化手段–硬件改進1-I/O2–索引效率1.系統(tǒng)擴容怪圈2.系統(tǒng)升級、替換3–性能系統(tǒng)性能提升有限與優(yōu)化的矛盾主動優(yōu)化手段–提升數(shù)據(jù)庫效率1.修改數(shù)據(jù)模型、修改SQL、影響CBO、產(chǎn)生更有效SQL執(zhí)行計劃…海量數(shù)據(jù)處理性能瓶頸2.使用Index,MV,Partitionning…3.使用并行,充分利用SMP特征系統(tǒng)性能提升明顯I/O效率、傳統(tǒng)Index與I/O有關(guān)的2個定義1I/O速度=I/O數(shù)據(jù)量/時間(MB/s)2I/O效率=有效數(shù)據(jù)/實際I/O數(shù)據(jù)量(%)I/O速度與效率沒有相關(guān)性通過硬件擴容只能提升I/O性能,并不能提升I/O效率I/O效率是衡量不同數(shù)據(jù)庫面對
4、海量數(shù)據(jù)統(tǒng)計、分析性能差異最關(guān)鍵的指標、也是現(xiàn)代數(shù)據(jù)庫研發(fā)最核心的問題之一。性能核心問題1:I/O效率低下?使用不同index定位需要的數(shù)據(jù)?產(chǎn)生高效的SQL執(zhí)行計劃?提升每次I/O包含的有效數(shù)據(jù)量?對數(shù)據(jù)進行預(yù)計算(MV)?使用分區(qū)技術(shù),壓縮技術(shù)統(tǒng)計分析類SQL行存儲數(shù)據(jù)庫列存儲數(shù)據(jù)庫I/O效率<10%>50%7I/O效率問題分析案例一張具有30列的普通二維表,查詢只涉及表中的3列…SelectCol3,col6,sum(col7)asb結(jié)果集frommytab假定經(jīng)過條件過濾,需要從Wherecol3<=‘100101’過濾條件磁盤中讀取十萬行記錄。Groupb
5、ycol3,col6基本算子Orderbybdesc8行存儲數(shù)據(jù)庫I/O特征……c3c6c7……實際I/O效率在行存數(shù)據(jù)庫IO讀取方式:1-10%之間!?數(shù)據(jù)是按數(shù)據(jù)塊讀取HeadTxLayer?數(shù)據(jù)塊中每行數(shù)據(jù)包含表的所有列?盡管查詢只訪問表中3個列,但所有30列都需要從磁盤讀出FreespacerowN?表列數(shù)越多,行存I/O效率就越低,性能越差…row0I/OdatafileDBblocks9GBase列存儲I/O特征按列存儲技術(shù):實際I/O效率在?表的每一列物理上分開存儲30-90%之間!?每一列是以數(shù)據(jù)包(DC)為單位組織的?只有訪問查詢所涉及的列產(chǎn)生IO
6、C7(DC=2)?查詢沒有涉及的列不需要訪問,不產(chǎn)生IOhead1111?表列數(shù)越多,GBase列存I/O效率越高,越2222有性能優(yōu)勢333…I/O999C1C2C3C1C2C6C7C8..C29C30ColumnfilesDataCells(DC)10列存儲架構(gòu)=提升I/O效率=降低I/O需求?上面的查詢用例中,10萬行數(shù)據(jù)最終會產(chǎn)生多少I/O??假設(shè)每個字段長度平均為10bytes?10萬行數(shù)據(jù)連續(xù)存儲?行存數(shù)據(jù)庫需要讀取的I/O:100000*30*10bytes=28.6MB?GBase8a需要讀取的I/O:100000*3*10bytes=2.86MB在
7、這個案例中,GBase8a需要的I/O只是行存數(shù)據(jù)庫的1/10。?10萬行數(shù)據(jù)離散分布,假設(shè)分布率為10%(即每10行數(shù)據(jù)有1行滿足過濾條件):?行存數(shù)據(jù)庫需要讀取的I/O:100000*10*30*10bytes=286MB?GBase8a需要讀取的I/O:100000*10*3*10bytes=28.6MB性能核心問題2:傳統(tǒng)Index帶來的矛盾優(yōu)點問題使用Index提升I/O效率?對應(yīng)用不透明?維護代價極高?需要人工優(yōu)化不使用Index無需維護查詢I/O效率低、導(dǎo)致性能低下數(shù)據(jù)入庫速度快數(shù)據(jù)入庫速度查詢性能海量系統(tǒng)優(yōu)化復(fù)雜數(shù)據(jù)能否不使用傳統(tǒng)Index就能獲