解析分布式數(shù)據(jù)庫技術(shù)框架_第1頁
解析分布式數(shù)據(jù)庫技術(shù)框架_第2頁
解析分布式數(shù)據(jù)庫技術(shù)框架_第3頁
解析分布式數(shù)據(jù)庫技術(shù)框架_第4頁
解析分布式數(shù)據(jù)庫技術(shù)框架_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一、前言早期銀行業(yè)務(wù)系統(tǒng)處理的主要是交易型數(shù)據(jù),數(shù)據(jù)量較少,傳統(tǒng)關(guān)系型數(shù)據(jù)庫(如SQLServer、Oracel、DB2等)已足夠應(yīng)對(duì)。隨著互聯(lián)網(wǎng)金融業(yè)務(wù)的快速發(fā)展,業(yè)務(wù)系統(tǒng)需要處理的數(shù)據(jù)呈爆炸式增長(zhǎng),傳統(tǒng)數(shù)據(jù)庫因其擴(kuò)展能力有限,已無法滿足業(yè)務(wù)系統(tǒng)越來越高的數(shù)據(jù)處理能力要求。于是,新型的分布式數(shù)據(jù)庫系統(tǒng)應(yīng)運(yùn)而生。本文擬先對(duì)數(shù)據(jù)庫進(jìn)行分類,了解各類數(shù)據(jù)庫的特點(diǎn),參考人行的分布式數(shù)據(jù)庫技術(shù)架構(gòu)規(guī)范,并結(jié)合業(yè)界主流分布式數(shù)據(jù)庫的技術(shù)實(shí)現(xiàn),試圖梳理出通用技術(shù)框架,并根據(jù)各功能模塊的主要技術(shù)特點(diǎn),結(jié)合業(yè)務(wù)場(chǎng)景,提出分布式數(shù)據(jù)庫系統(tǒng)在金融領(lǐng)域的應(yīng)用規(guī)劃,供大家參考。二、數(shù)據(jù)庫的分類為了更高效地了解不同廠商分布式數(shù)據(jù)庫的產(chǎn)品特點(diǎn),我們需要對(duì)數(shù)據(jù)庫產(chǎn)品進(jìn)行分類。業(yè)界對(duì)數(shù)據(jù)庫的分類尚未形成統(tǒng)一的標(biāo)準(zhǔn),但都大同小異,本文數(shù)據(jù)庫分類參考了451Group分析報(bào)告中的《數(shù)據(jù)庫行業(yè)全景圖》。數(shù)據(jù)庫根據(jù)其數(shù)據(jù)模型,可分為關(guān)系型數(shù)據(jù)庫(RDBMS)和非關(guān)系型數(shù)據(jù)庫(NoSQL)。其中,關(guān)系型數(shù)據(jù)庫根據(jù)其技術(shù)特性,分為傳統(tǒng)關(guān)系型數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫;根據(jù)業(yè)務(wù)負(fù)載特征,可分為OLTP數(shù)據(jù)庫和OLAP數(shù)據(jù)庫。根據(jù)部署架構(gòu),可分為集中式數(shù)據(jù)庫和分布式數(shù)據(jù)庫。其中NoSQL數(shù)據(jù)庫與NewSQL數(shù)據(jù)庫均為分布式數(shù)據(jù)庫。各類數(shù)據(jù)庫的特性描述如下:1、關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫(RDBMS)即SQL數(shù)據(jù)庫,支持SQL操作,具備ACID屬性,用于處理存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),包括傳統(tǒng)關(guān)系型數(shù)據(jù)庫與NewSQL數(shù)據(jù)庫。非關(guān)系型數(shù)據(jù)庫,通常為NoSQL數(shù)據(jù)庫。NoSQL(NotOnlySQL)即“不僅僅是SQL”,提倡運(yùn)用非關(guān)系型的、分布式的數(shù)據(jù)存儲(chǔ)系統(tǒng),通常以犧牲復(fù)雜SQL、ACID事務(wù)支持和數(shù)據(jù)的一致性為代價(jià),以此換取彈性擴(kuò)展能力。常用的NoSQL數(shù)據(jù)庫有基于鍵值(Key-Value)的,如levelDB、RocksDB、redis等;基于列存儲(chǔ)的,如:Bigtable、HBASE等;基于文檔的,如:MangoDB;其他如基于圖的Neo4j,基于時(shí)間序列數(shù)據(jù)的InfluxDB等。2、傳統(tǒng)關(guān)系型數(shù)據(jù)庫與NewSQL數(shù)據(jù)庫傳統(tǒng)關(guān)系型數(shù)據(jù)庫與NewSQL數(shù)據(jù)庫均屬于關(guān)系型數(shù)據(jù)庫。早期使用的關(guān)系型數(shù)據(jù)庫是傳統(tǒng)關(guān)系型數(shù)據(jù)庫,擴(kuò)展能力有限,如商業(yè)軟件Oracle、DB2,開源軟件MySQL、PostgreSQL等。NewSQL數(shù)據(jù)庫為應(yīng)對(duì)爆炸式增長(zhǎng)的數(shù)據(jù)需求而生。采用分布式技術(shù),支持SQL操作,滿足ACID屬性,同時(shí)具備良好的擴(kuò)展能力,如CockroachDB、GoogleSpanner/F1、TiDB、OceanBase等。3、OLTP數(shù)據(jù)庫與OLAP數(shù)據(jù)庫OLTP(On-lineTransactionProcessing聯(lián)機(jī)事務(wù)處理)數(shù)據(jù)庫,適用于事務(wù)管理型系統(tǒng),該類系統(tǒng)處理的是高并發(fā)且數(shù)據(jù)量級(jí)不大的交易,如INSERT,UPDATE,DELETE等。OLTP是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的主要應(yīng)用。OLAP(On-lineAnalyticalProcessing聯(lián)機(jī)分析處理)數(shù)據(jù)庫,適用于查詢頻率較低,但通常會(huì)涉及到非常復(fù)雜的聚合計(jì)算的系統(tǒng)。該類系統(tǒng)需要進(jìn)行復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。如數(shù)據(jù)倉庫,風(fēng)險(xiǎn)預(yù)警等。4、集中式數(shù)據(jù)庫與分布式數(shù)據(jù)庫集中式數(shù)據(jù)庫將數(shù)據(jù)在物理空間上集中存儲(chǔ)和處理,是一種較為經(jīng)典、傳統(tǒng)的架構(gòu)模式;分布式數(shù)據(jù)庫是物理上分散而邏輯上集中的數(shù)據(jù)庫系統(tǒng),利用分布式事務(wù)處理、數(shù)據(jù)自動(dòng)分片、數(shù)據(jù)多副本存儲(chǔ)等技術(shù),將分散在計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)邏輯相關(guān)節(jié)點(diǎn)連接起來,共同對(duì)外提供服務(wù)。NewSQL數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫采用分布式部署,均為分布式數(shù)據(jù)庫。5、數(shù)據(jù)庫分類示意圖:三、分布式數(shù)據(jù)庫的技術(shù)框架就分布式數(shù)據(jù)庫的技術(shù)框架而言,可分為計(jì)算模塊、存儲(chǔ)模塊和管理模塊。各模塊的技術(shù)框架介紹如下:(一)計(jì)算模塊計(jì)算模塊包括接口層、解析層和計(jì)算層。1、接口層接口層負(fù)責(zé)接口調(diào)用,是分布式數(shù)據(jù)庫對(duì)外提供服務(wù)的統(tǒng)一接口,可提供包括SQL接口、JDBC/ODBC以及其他驅(qū)動(dòng)等方式的接入。2、解析層解析層包括解析器、優(yōu)化器,負(fù)責(zé)解析數(shù)據(jù)庫收到的指令,(包括SQL語句和其他指令),同時(shí)對(duì)解析結(jié)果進(jìn)行優(yōu)化,生成執(zhí)行計(jì)劃,并將指令與計(jì)劃自動(dòng)分配到各計(jì)算節(jié)點(diǎn)并行執(zhí)行。在解析層中,我們需要關(guān)注產(chǎn)品對(duì)SQL的兼容性,以及對(duì)存儲(chǔ)過程的支持情況3、計(jì)算層計(jì)算層負(fù)責(zé)資源管理,確定計(jì)算框架,采用合適的通訊協(xié)議,通過分布式事務(wù)處理等技術(shù)確保數(shù)據(jù)正確性,借助并發(fā)控制、動(dòng)態(tài)資源分配等技術(shù)提升分布式數(shù)據(jù)庫在復(fù)雜業(yè)務(wù)場(chǎng)景的計(jì)算效率,同時(shí)保證整體系統(tǒng)的可靠性。各模塊功能如下:-資源管理主要負(fù)責(zé)計(jì)算資源的管理,包括CPU、內(nèi)存的調(diào)度,磁盤I/O管理、動(dòng)態(tài)資源分配等。合理的資源管理設(shè)計(jì),能最大程度發(fā)揮計(jì)算資源的效率,提升分布式數(shù)據(jù)庫在復(fù)雜業(yè)務(wù)場(chǎng)景的計(jì)算效率。-計(jì)算框架分布式數(shù)據(jù)庫通常采用MPP計(jì)算框架,實(shí)現(xiàn)并行計(jì)算的能力。MPP(MassivelyParallelProcessing),大規(guī)模并行處理。MPP先對(duì)數(shù)據(jù)進(jìn)行分塊,

交給不同節(jié)點(diǎn)儲(chǔ)存。查詢時(shí),各數(shù)據(jù)塊利用所在節(jié)點(diǎn)的計(jì)算資源分別處理,

然后匯總到leadernode進(jìn)行合并。MPP有sharedeverything/Disk/Nothing三種類型。-負(fù)載管理包括資源管控、租戶隔離、租戶的SLA、并發(fā)控制等等,合理的負(fù)載管理,能有效隔不同數(shù)據(jù)庫租戶之間的相互影響,確保租戶獲得需要的SLA。-通訊管理分布式數(shù)據(jù)庫網(wǎng)絡(luò)中,傳輸層通??刹捎肨CP/UDP協(xié)議,鏈路層可采用Ethernet/RDMA協(xié)議。RDMA(RemoteDirectMemoryAccess遠(yuǎn)程直接內(nèi)存訪問),是為解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的。其特點(diǎn)是:數(shù)據(jù)可通過網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器間直接進(jìn)行數(shù)據(jù)傳輸,不需要內(nèi)核參與,從而減少了數(shù)據(jù)的額外移動(dòng)和復(fù)制,有效提高了數(shù)據(jù)庫性能。RDMA有三種實(shí)現(xiàn)方式:Infiniband、RoCE、iWARP。-分布式事務(wù)管理分布式數(shù)據(jù)庫同常采用二階段提交(2PC)來保證分布式事務(wù)的ACID屬性。為了實(shí)現(xiàn)并發(fā)訪問控制,分布式數(shù)據(jù)庫需支持分布式事務(wù)的隔離性,以解決并發(fā)事務(wù)執(zhí)行過程中存在的臟讀、不可重復(fù)讀、幻讀等問題。支持的隔離級(jí)別包括:已提交讀、可重復(fù)讀、串行化;分布式數(shù)據(jù)庫需具備鎖的管控能力,包括鎖的類型、鎖的級(jí)別、鎖的互斥、死鎖處理等。在實(shí)際技術(shù)實(shí)現(xiàn)時(shí),計(jì)算層和存儲(chǔ)層都需要實(shí)現(xiàn)分布式事務(wù)處理。-可靠性管理可靠性管理包括服務(wù)的高可用和數(shù)據(jù)的高可用。服務(wù)高可用主要從部署架構(gòu)方面考慮,如采用的是集群、還是主備部署,并從機(jī)房、機(jī)柜、供電、布線層面,保證基礎(chǔ)設(shè)施的高可用。數(shù)據(jù)的高可用主要針對(duì)數(shù)據(jù)副本的管理,包括副本數(shù)據(jù)的復(fù)制技術(shù)(如流復(fù)制、塊復(fù)制和WAL重構(gòu))和數(shù)據(jù)的一致性管理(強(qiáng)一致性和最終一致性)。數(shù)據(jù)的三種復(fù)制技術(shù)采用的實(shí)現(xiàn)方式不同:流復(fù)制。包括操作日志與SQL語句,通過重放操作,實(shí)現(xiàn)數(shù)據(jù)副本的復(fù)制。塊復(fù)制。通過數(shù)據(jù)塊的復(fù)制,實(shí)現(xiàn)數(shù)據(jù)副本的復(fù)制。常用的數(shù)據(jù)一致性技術(shù)有Paxos、Raft。WAL重構(gòu),定期進(jìn)行快照復(fù)制,并實(shí)時(shí)復(fù)制快照之后的操作日志,當(dāng)需要數(shù)據(jù)恢復(fù)時(shí),可用過快照+日志的方式,將數(shù)據(jù)恢復(fù)到最新狀態(tài)。WAL重構(gòu)常用于數(shù)據(jù)的災(zāi)備。在實(shí)際技術(shù)實(shí)現(xiàn)時(shí),計(jì)算層和存儲(chǔ)層都需要可靠性管理。其中,服務(wù)高可用在計(jì)算層和存儲(chǔ)層上都要關(guān)注,而數(shù)據(jù)的高可用主要在存儲(chǔ)層上實(shí)現(xiàn)。(二)存儲(chǔ)模塊存儲(chǔ)層屬于存儲(chǔ)模塊,包括數(shù)據(jù)存儲(chǔ)組織管理和日志組織管理。數(shù)據(jù)存儲(chǔ)組織管理包括數(shù)據(jù)分片/分區(qū)策略、數(shù)據(jù)更新機(jī)制、數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、索引管理、數(shù)據(jù)物理結(jié)構(gòu)等;日志組織管理包括日志類型和日志的歸檔方式等。無論是數(shù)據(jù)還是日志,最終存儲(chǔ)在物理介質(zhì)上,存儲(chǔ)介質(zhì)可以是本地磁盤或外部存儲(chǔ)。各模塊功能如下:1、數(shù)據(jù)存儲(chǔ)組織管理-數(shù)據(jù)分片/分區(qū)管理數(shù)據(jù)的切分有兩個(gè)維度:水平分片和垂直分區(qū)。水平分片,按照一定的規(guī)則,將數(shù)據(jù)集劃分成相互獨(dú)立、正交的數(shù)據(jù)子集后,再將數(shù)據(jù)子集分布到不同的分片節(jié)點(diǎn)上。常見的數(shù)據(jù)分片策略有Hash、Roundrobin兩種方式垂直分區(qū),分片后的數(shù)據(jù),按照一定的規(guī)則進(jìn)行切分,再根據(jù)分區(qū)策略,將數(shù)據(jù)分布在分片集群內(nèi)的各存儲(chǔ)單元上。常見的分區(qū)策略有一致性Hash/一致性Hash、range和list三種方式。-數(shù)據(jù)更新機(jī)制數(shù)據(jù)在磁盤的組織和更新方式有兩種方式:In-place、Append-onlyIn-place,數(shù)據(jù)更新時(shí),直接對(duì)內(nèi)存緩沖區(qū)中的數(shù)據(jù)進(jìn)行修改,然后刷新到磁盤上,完成數(shù)據(jù)的更新操作。Append-only,數(shù)據(jù)更新時(shí),將新的數(shù)據(jù)直接追加到內(nèi)存文件上,(而不對(duì)原來的數(shù)據(jù)進(jìn)行修改),并定期保存在磁盤上。-數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)存儲(chǔ)上,數(shù)據(jù)可以以“行存”、“列存”、“KV”、“文檔”、“圖”和“序列”等方式組織存儲(chǔ),不同的數(shù)據(jù)存儲(chǔ)組織適用于不同的業(yè)務(wù)類型。邏輯上,數(shù)據(jù)可以以“庫/表/記錄”的方式組織,如Oracle、DB2等傳統(tǒng)關(guān)系型數(shù)據(jù)庫;也可以以“庫/集合/文檔”的方式組織,如MangoDB;或以“文件”的方式組織,如RocksDB等。常用的存儲(chǔ)算法有B+樹,LSM和Hash。數(shù)據(jù)最終組織成頁或LOB塊的方式,存儲(chǔ)到文件系統(tǒng)中。-索引管理索引的類型有文本、位圖、倒排等,各種索引的特點(diǎn)如下:倒排索引,也叫反向索引(invertedindex)。是實(shí)現(xiàn)“單詞-文檔矩陣”的一種具體存儲(chǔ)形式,通過倒排索引,可以根據(jù)單詞快速獲取包含這個(gè)單詞的文檔列表。倒排索引主要由兩個(gè)部分組成:“單詞詞典”和“倒排文件”。單詞詞典常用的數(shù)據(jù)結(jié)構(gòu)包括哈希加鏈表結(jié)構(gòu)和樹形結(jié)構(gòu)。文本索引支持對(duì)字符串內(nèi)容的全文檢索查詢。文本索引可以包含字符串或字符串元素?cái)?shù)組。一個(gè)集合有且只能有一個(gè)文本索引,但是該索引可以包含多個(gè)字段。位圖索引是一種使用位圖的特殊數(shù)據(jù)庫索引。主要針對(duì)大量相同值的列而創(chuàng)建,索引塊的一個(gè)索引行中存儲(chǔ)鍵值和起止Rowid,以及這些鍵值的位置編碼,位置編碼中的每一位表示鍵值對(duì)應(yīng)的數(shù)據(jù)行的有無。2、日志組織管理-日志類型常用的日志類型有redo、undo等。redolog,重做日志,也是預(yù)寫日志,記錄了數(shù)據(jù)的創(chuàng)建和修改,提供前滾操作,防止故障時(shí)的數(shù)據(jù)丟失,用來保證事務(wù)安全。undolog,回滾日志,記錄的是如何還原修改,提供回滾操作,同時(shí)提供MVCC,undolog也會(huì)產(chǎn)生redolog,-日志歸檔方式日志可以有歸檔和未歸檔兩種方式。未歸檔模式,不保留重做歷史的日志操作模式,只能夠用于保護(hù)例程失敗,而不能夠保護(hù)介質(zhì)損壞。歸檔模式,指保留重做日志歷史的日志操作模式。這種日志操作模式不僅可用于保護(hù)例程失敗,還可以用于保護(hù)介質(zhì)損壞的情況。3、存儲(chǔ)介質(zhì)存儲(chǔ)介質(zhì)可以是本地磁盤,也可以是外部集中式存儲(chǔ)或分布式存儲(chǔ)。如采用本地磁盤,需利用復(fù)制技術(shù),如raft或Paxos協(xié)議,實(shí)現(xiàn)多副本保存,以保證數(shù)據(jù)的可用性。如采用外部存儲(chǔ),則數(shù)據(jù)的可用性由外部存儲(chǔ)保證。(三)管理模塊管理模塊負(fù)責(zé)分布式數(shù)據(jù)庫的運(yùn)維和管理,提供數(shù)據(jù)庫參數(shù)配置和運(yùn)行監(jiān)控接口,通用要求包括自動(dòng)化部署、擴(kuò)縮容、可視化、多租戶等;維護(hù)要求方面包括自動(dòng)告警、版本升級(jí)、狀態(tài)監(jiān)控、性能監(jiān)控、系統(tǒng)日志、系統(tǒng)配置、故障的隔離、自愈等,數(shù)據(jù)管理部分包括導(dǎo)入導(dǎo)出、數(shù)據(jù)同步、數(shù)據(jù)遷移、備份恢復(fù)等;容災(zāi)管理方面包括雙活/多活、讀寫分離、主備三種模式。分布式數(shù)據(jù)庫的技術(shù)框架如下圖所示:四、各類分布式數(shù)據(jù)庫的典型架構(gòu)NoSQL數(shù)據(jù)庫和NewSQL數(shù)據(jù)庫均為分布式數(shù)據(jù)庫,其中,NewSQL數(shù)據(jù)庫有兩大類:分庫分表的數(shù)據(jù)庫訪問中間件和原生分布式數(shù)據(jù)庫。(一)NoSQL數(shù)據(jù)庫NoSQL數(shù)據(jù)庫通常有三大組件:協(xié)調(diào)節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)和配置節(jié)點(diǎn),各組件的功能如下:協(xié)調(diào)節(jié)點(diǎn)。在集群中可作為網(wǎng)關(guān)使用,提供客戶端應(yīng)用程序和數(shù)據(jù)節(jié)點(diǎn)集群之間的外部API接口,或簡(jiǎn)單的SQL支持,負(fù)責(zé)語法解析、優(yōu)化,形成執(zhí)行計(jì)劃,下壓給數(shù)據(jù)節(jié)點(diǎn)執(zhí)行,負(fù)責(zé)數(shù)據(jù)分片和聚合,記錄元數(shù)據(jù)到配置節(jié)點(diǎn),或從配置節(jié)點(diǎn)讀取元數(shù)據(jù)。配置節(jié)點(diǎn)。用于保存集群的配置信息和數(shù)據(jù)分片的元數(shù)據(jù)信息等。數(shù)據(jù)節(jié)點(diǎn)。負(fù)責(zé)分片數(shù)據(jù)的實(shí)際存儲(chǔ)和管理。數(shù)據(jù)可保存在本地磁盤或分布式存儲(chǔ),采用多副本方式保證數(shù)據(jù)的可靠性;如采用本地存儲(chǔ),副本間的數(shù)據(jù)一致性采用Paxos或raft,如采用分布式存儲(chǔ),由分布式存儲(chǔ)保證副本間的數(shù)據(jù)一致。協(xié)調(diào)節(jié)點(diǎn)實(shí)現(xiàn)接口層、解析層、計(jì)算層的相關(guān)能力,數(shù)據(jù)節(jié)點(diǎn)實(shí)現(xiàn)存儲(chǔ)層的相關(guān)能力(具體能力和關(guān)鍵技術(shù)見上一章節(jié))。(二)NewSQL數(shù)據(jù)庫業(yè)界常用的NewSQL數(shù)據(jù)庫有兩種技術(shù)路線:分庫分表的數(shù)據(jù)庫訪問中間件方式和原生分布式數(shù)據(jù)庫方式。1、分庫分表的數(shù)據(jù)庫訪問中間件模式分庫分表的數(shù)據(jù)庫訪問中間件方式由中間件和傳統(tǒng)關(guān)系型數(shù)據(jù)庫共同組成。傳統(tǒng)關(guān)系型數(shù)據(jù)庫天然具備良好的ACID屬性,通過數(shù)據(jù)庫訪問中間件進(jìn)行分庫分表,滿足數(shù)據(jù)庫的擴(kuò)展性要求。應(yīng)用系統(tǒng)在訪問數(shù)據(jù)庫時(shí),首先訪問數(shù)據(jù)庫中間件,由中間件根據(jù)規(guī)則,將數(shù)據(jù)分散到多個(gè)庫/表中進(jìn)行存儲(chǔ),查詢時(shí),再將多個(gè)庫/表的數(shù)據(jù)聚合在一起,返回給應(yīng)用。目前,數(shù)據(jù)庫訪問中間件大都以兼容MySQL為主。其典型架構(gòu)如下:在上述架構(gòu)中,數(shù)據(jù)庫訪問中間件實(shí)現(xiàn)接口層、解析層、計(jì)算層的相關(guān)能力,傳統(tǒng)關(guān)系型數(shù)據(jù)庫(如MySQL)實(shí)現(xiàn)存儲(chǔ)層的相關(guān)能力。數(shù)據(jù)保存在存儲(chǔ)層中,數(shù)據(jù)的可用性和可靠性由分片數(shù)據(jù)庫集群保證(每個(gè)分片數(shù)據(jù)庫集群可以是一個(gè)數(shù)據(jù)庫高可用集群,如MySQL的MGR、Oracle的RAC等)。數(shù)據(jù)庫訪問中間件本身不保存數(shù)據(jù),只做數(shù)據(jù)的分片、路由。2、原生分布式數(shù)據(jù)庫模式原生分布式數(shù)據(jù)庫對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行重構(gòu),原生支持分布式事務(wù)處理與數(shù)據(jù)切分,主要由SQL層和存儲(chǔ)引擎層兩部分組成。其中,SQL層為客戶端提供接口服務(wù),并負(fù)責(zé)SQL語句的解析、優(yōu)化,生成執(zhí)行計(jì)劃,下發(fā)到數(shù)據(jù)庫存儲(chǔ)引擎層執(zhí)行,SQL層不保存數(shù)據(jù)。數(shù)據(jù)庫存儲(chǔ)引擎層負(fù)責(zé)數(shù)據(jù)的分片和聚合,記錄元數(shù)據(jù),并將數(shù)據(jù)保存到本地磁盤或外部存儲(chǔ),數(shù)據(jù)保存采用多副本方式。如采用本地存儲(chǔ),副本間的數(shù)據(jù)一致性采用Paxos或raft,如采用分布式存儲(chǔ),由分布式存儲(chǔ)保證副本間的數(shù)據(jù)一致。典型架構(gòu)圖如下所示:各廠商在對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行重構(gòu)時(shí),側(cè)重點(diǎn)有所不同:有的側(cè)重SQL層的重構(gòu),而存儲(chǔ)引擎采用開源的數(shù)據(jù)庫存儲(chǔ)引擎,如TiDB;有的產(chǎn)商則側(cè)重存儲(chǔ)引擎層的重構(gòu),而SQL層采用開源數(shù)據(jù)庫,如SequoiaDB。3、兩種技術(shù)路線NewSQL數(shù)據(jù)庫比較五、分布式數(shù)據(jù)庫的應(yīng)用規(guī)劃1、數(shù)據(jù)的分類數(shù)據(jù)按其組織結(jié)構(gòu),可分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。各類數(shù)據(jù)的特點(diǎn)如下:結(jié)構(gòu)化數(shù)據(jù),也稱行數(shù)據(jù),是由二維表結(jié)構(gòu)來邏輯表達(dá)和實(shí)現(xiàn)的數(shù)據(jù),嚴(yán)格遵循數(shù)據(jù)格式與長(zhǎng)度規(guī)范,數(shù)據(jù)處理時(shí)效性要求較高,通常采用OLTP數(shù)據(jù)庫存儲(chǔ)和管理。如所要處理的數(shù)據(jù)量小,數(shù)據(jù)增長(zhǎng)速度慢,可選用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(RDBMS)處理,如所需處理的數(shù)據(jù)量大,數(shù)據(jù)增長(zhǎng)速度快,可選用NewSQL數(shù)據(jù)庫處理;非結(jié)構(gòu)化數(shù)據(jù),不宜采用關(guān)系型數(shù)據(jù)庫來處理的數(shù)據(jù),如各類圖片、音頻、視頻等。創(chuàng)建和管理數(shù)據(jù)項(xiàng)時(shí),通常采用多值字段和變長(zhǎng)字段,廣泛應(yīng)用于全文檢索和各種多媒體信息處理領(lǐng)域。該類數(shù)據(jù)量大、數(shù)據(jù)增長(zhǎng)速度快,但對(duì)時(shí)效性要求相對(duì)較低。通常選用OLAP數(shù)據(jù)庫或hadoop等大數(shù)據(jù)平臺(tái)存儲(chǔ)和管理。半結(jié)構(gòu)化數(shù)據(jù),不同于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),它形式上是結(jié)構(gòu)化的數(shù)據(jù),但結(jié)構(gòu)變化很大,如各種格式的辦公文檔、XML、HTML、Json等。當(dāng)我們要了解數(shù)據(jù)的細(xì)節(jié)時(shí),就不能將數(shù)據(jù)簡(jiǎn)單的組織成一個(gè)文件,而是要做結(jié)構(gòu)化處理。但因?yàn)榻Y(jié)構(gòu)變化很大,又不能簡(jiǎn)單地創(chuàng)建一個(gè)表和他對(duì)應(yīng)。半結(jié)構(gòu)化數(shù)據(jù)通常采用OLAP數(shù)據(jù)庫存儲(chǔ)和管理。2、應(yīng)用系統(tǒng)的分類與特點(diǎn)應(yīng)用系統(tǒng)按其所處理的業(yè)務(wù)特點(diǎn),可分為交易類系統(tǒng)、支撐類系統(tǒng)、渠道類系統(tǒng)、管理類系統(tǒng)和分析類系統(tǒng),其中分析類系統(tǒng)可分為聯(lián)機(jī)分析類系統(tǒng)和離線分析類系統(tǒng),各類系統(tǒng)特點(diǎn)如下:交易類系統(tǒng):為客戶提供銀行業(yè)務(wù),面對(duì)的是銀行客戶,是銀行的主要業(yè)務(wù)系統(tǒng)。如核心系統(tǒng)、信貸、信用卡、支付類系統(tǒng)、理財(cái)業(yè)務(wù)、資金業(yè)務(wù)、特色業(yè)務(wù)等;支撐類系統(tǒng):該類系統(tǒng)用于支撐銀行其他系統(tǒng)的運(yùn)行,如ESB、交換、調(diào)度、外聯(lián)等;渠道類系統(tǒng):該類系統(tǒng)為客戶提供使用渠道,如柜面、ATM、網(wǎng)銀、手機(jī)銀行等系統(tǒng),渠道類系統(tǒng)有傳統(tǒng)渠道和

溫馨提示

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

評(píng)論

0/150

提交評(píng)論