国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

「數(shù)據(jù)密集型系統(tǒng)搭建」原理篇|OLAP、OLTP,竟是兩個(gè)世界

這篇具有很好參考價(jià)值的文章主要介紹了「數(shù)據(jù)密集型系統(tǒng)搭建」原理篇|OLAP、OLTP,竟是兩個(gè)世界。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??本篇來(lái)聊聊OLAPOLTP的區(qū)別以及它們各自的適用場(chǎng)景,以此話題為導(dǎo)引和大家聊聊技術(shù)視野與知識(shí)儲(chǔ)備對(duì)于研發(fā)同學(xué)的重要性,最后站在事務(wù)處理與在線分析的角度分別論述下兩個(gè)數(shù)據(jù)世界的底層構(gòu)建邏輯。

OLAP、OLTP的概念與區(qū)別

概念

了解OLAP、OLTP的概念,識(shí)別各自適用場(chǎng)景,發(fā)揮各自的功能優(yōu)勢(shì)

場(chǎng)景 特點(diǎn)
OLTP 偏向數(shù)據(jù)存儲(chǔ)數(shù)據(jù)事務(wù)性(ACID)、實(shí)時(shí)性
OLAP 偏向數(shù)據(jù)分析數(shù)據(jù)計(jì)算、聚合、轉(zhuǎn)換
  • OLAP(On-Line Analytical Processing)聯(lián)機(jī)分析處理

??基本特征是前臺(tái)接收的用戶數(shù)據(jù)可以立即傳送到計(jì)算中心進(jìn)行處理,并在很短的時(shí)間內(nèi)給出處理結(jié)果,是對(duì)用戶操作快速響應(yīng)的方式之一。應(yīng)用在數(shù)據(jù)倉(cāng)庫(kù),使用對(duì)象是決策者。OLAP系統(tǒng)強(qiáng)調(diào)的是數(shù)據(jù)分析,響應(yīng)速度要求不高。

  • OLTP(On-Line Transaction Processing)聯(lián)機(jī)事務(wù)處理

??能夠迅速、一致、交互地從各個(gè)方面觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。主要應(yīng)用是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)。OLTP系統(tǒng)強(qiáng)調(diào)的是內(nèi)存效率,實(shí)時(shí)性比較高。

OLTP是基礎(chǔ)能力,OLAP是更高層訴求

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

OLTP是基礎(chǔ)能力,是必需品

??如果用馬斯洛需求理論來(lái)拆解和評(píng)析,OLTP一定是第一位的,是更為底層、基礎(chǔ)的需求實(shí)現(xiàn),它不僅要確保數(shù)據(jù)的事務(wù)性,還要提供數(shù)據(jù)的檢索、變更能力等。

??當(dāng)系統(tǒng)構(gòu)建滿足了最基礎(chǔ)的存儲(chǔ)/檢索需求后,從下到上是足夠支撐業(yè)務(wù)正常運(yùn)轉(zhuǎn)的,業(yè)務(wù)發(fā)展是一個(gè)持續(xù)性過程,這其中的業(yè)務(wù)形態(tài)、收益效果需要OLTP場(chǎng)景積累的數(shù)據(jù)進(jìn)行驗(yàn)證,而驗(yàn)證的過程其實(shí)就是數(shù)據(jù)篩選的過程,會(huì)把單點(diǎn)、離散的數(shù)據(jù)個(gè)體進(jìn)行聚攏,從更高層次進(jìn)行審視和分析,也正是因?yàn)檫@一數(shù)據(jù)查看視角的變化從一定程度上導(dǎo)致了OLTPOLAP核心點(diǎn)的轉(zhuǎn)變。

OLAP是更高訴求,是進(jìn)階物

??不知你是否會(huì)有疑問 ——— 在沒有OLAP、大數(shù)據(jù)等概念、人們還沒有開發(fā)出引以為豪的諸多配套組件的年代,較大數(shù)據(jù)量的分析和處理就沒有辦法做了嗎?答案是NO!可以做,但是體驗(yàn)很不好。

??剛畢業(yè)那會(huì)兒,我是在一家服務(wù)傳統(tǒng)行業(yè)的公司工作,接觸的客戶也都是傳統(tǒng)企業(yè),一次在客戶現(xiàn)場(chǎng)下班走,我看到客戶開著電腦亮著大屏幕,我問下班為什么不關(guān)機(jī)呢?客戶回答說他要導(dǎo)出數(shù)據(jù),現(xiàn)在打開頁(yè)面開始查,明天早上來(lái)的時(shí)候就可以看到結(jié)果了。這個(gè)場(chǎng)景真是既好笑又無(wú)奈,好笑的是這糟糕的服務(wù)性能讓用戶體驗(yàn)極差,無(wú)奈的是傳統(tǒng)行業(yè)技術(shù)普遍比較過時(shí)落后最終也拖累業(yè)務(wù)。

技術(shù)視野與知識(shí)儲(chǔ)備的重要性

??上面這段有趣經(jīng)歷也引出了下面的話題,那就是技術(shù)視野的重要性,傳統(tǒng)行業(yè)也好,個(gè)人知識(shí)儲(chǔ)備也好,一個(gè)是從工作而言,另一個(gè)是從個(gè)人成長(zhǎng)來(lái)講,都需要去了解前沿的發(fā)展,學(xué)習(xí)優(yōu)秀的實(shí)踐,而不是閉門造車,在彷徨中繼續(xù)彷徨。

開拓技術(shù)視野,方案設(shè)計(jì)不扭曲

??對(duì)于業(yè)務(wù)研發(fā)同學(xué)而言,關(guān)于數(shù)據(jù)相關(guān)的技術(shù)?;揪褪?code>mysql、es這些,在設(shè)計(jì)統(tǒng)計(jì)、監(jiān)控等在線或準(zhǔn)在線數(shù)據(jù)分析需求時(shí),會(huì)受限于技術(shù)視野和認(rèn)知在設(shè)計(jì)開發(fā)環(huán)節(jié)更多地將此類需求的技術(shù)方案依附在mysql、es等數(shù)據(jù)源上進(jìn)行設(shè)計(jì)和交付。

??其實(shí),除了這些研發(fā)熟悉的數(shù)據(jù)源,大數(shù)據(jù)平臺(tái)也提供了諸多的數(shù)據(jù)能力支持,需要研發(fā)同學(xué)開闊一些技術(shù)視野,跳出個(gè)人技術(shù)舒適區(qū),向上下游多擴(kuò)展一些技術(shù)聯(lián)動(dòng)和資源進(jìn)行融合,可以將應(yīng)用層、數(shù)據(jù)層按需剝離,各司其職,有效發(fā)揮各自優(yōu)勢(shì)。

??不難發(fā)現(xiàn),如果按照這種狹隘的技術(shù)設(shè)計(jì)路徑實(shí)踐出來(lái)的系統(tǒng),無(wú)論是架構(gòu)合理性還是用戶體驗(yàn)上都會(huì)存在一定問題,因?yàn)閭鹘y(tǒng)的mysql提供的是離散、單點(diǎn)數(shù)據(jù)的高效率檢索支持,es是搜索引擎在一定程度上也是如此,所以它們并不在數(shù)據(jù)聚合、統(tǒng)計(jì)等的處理上存在優(yōu)勢(shì),如果把不擅長(zhǎng)的領(lǐng)域交給它們處理從方案設(shè)計(jì)初始就是不合理、失敗的,會(huì)讓技術(shù)方案過于扭曲,并且在后續(xù)交付使用的過程中出現(xiàn)底層不牢固導(dǎo)致諸多問題,重復(fù)進(jìn)行修補(bǔ)也于事無(wú)補(bǔ),陷入方案陷阱中拖累業(yè)務(wù),也讓研發(fā)參與者疲憊不堪。

??希望每一位研發(fā)小伙伴都有這種技術(shù)設(shè)計(jì)意識(shí),數(shù)據(jù)存儲(chǔ)和處理不僅僅只有關(guān)系型數(shù)據(jù)庫(kù)!類似地,當(dāng)發(fā)現(xiàn)技術(shù)方案支持的業(yè)務(wù)項(xiàng)目運(yùn)轉(zhuǎn)過程非常吃力,或許該返工回起點(diǎn)來(lái)評(píng)估和研判合理性,而不是一味地打補(bǔ)丁做所謂的“功能優(yōu)化”,要逃離這種用戰(zhàn)術(shù)勤奮掩蓋戰(zhàn)略懶惰的操作,方向錯(cuò)了結(jié)果也是偏的。

分層設(shè)計(jì),各司其職

模塊分層 功能職責(zé) 數(shù)據(jù)特點(diǎn) 核心角色 服務(wù)方式
應(yīng)用層 邏輯編排 單點(diǎn)、離散數(shù)據(jù)、事務(wù)性要求,數(shù)據(jù)量較小 研發(fā)RD -
數(shù)據(jù)層 數(shù)據(jù)處理 聚合、統(tǒng)計(jì)、轉(zhuǎn)換等,數(shù)據(jù)量較大 數(shù)據(jù)BP - SDK/API
- 直連數(shù)據(jù)源

??比較推薦的技術(shù)方案思路是區(qū)分好應(yīng)用層與數(shù)據(jù)層的分層設(shè)計(jì),應(yīng)用層做好邏輯編排,數(shù)據(jù)層做好數(shù)據(jù)處理,分層設(shè)計(jì)的好處是能夠讓方案模塊化且更為聚焦,針對(duì)問題可以分?jǐn)偟讲煌Y源上進(jìn)行擊破,從需求階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段、運(yùn)營(yíng)階段

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

  • 『Part-1 需求階段』

    ??業(yè)務(wù)提出數(shù)據(jù)相關(guān)需求,該階段可以研發(fā)和數(shù)據(jù)BP同事共同參與,如果是數(shù)據(jù)平臺(tái)能承載的直接交由數(shù)據(jù)BP同事跟進(jìn)處理即可,若設(shè)計(jì)業(yè)務(wù)功能、頁(yè)面開發(fā)等需要研發(fā)介入主導(dǎo)并進(jìn)行下一步評(píng)估。
  • 『Part-2 設(shè)計(jì)階段』

    ??先對(duì)需求進(jìn)行場(chǎng)景判斷,若是OLTP場(chǎng)景則建議采用mysqles等作為數(shù)據(jù)源,由研發(fā)從系統(tǒng)應(yīng)用層設(shè)計(jì)實(shí)現(xiàn)來(lái)進(jìn)行交付;若是OLAP場(chǎng)景則建議采用以數(shù)據(jù)平臺(tái)hive、clickhouse等數(shù)據(jù)源進(jìn)行設(shè)計(jì)來(lái)展開。
  • 『Part-3 實(shí)現(xiàn)階段』

    ??將數(shù)據(jù)計(jì)算下沉到數(shù)據(jù)側(cè),應(yīng)用層處理業(yè)務(wù)功能來(lái)串聯(lián)邏輯,數(shù)據(jù)BP可以提供數(shù)據(jù)源接入、按照定義輸入/輸出指標(biāo)通過API方式進(jìn)行數(shù)據(jù)輸出的能力,數(shù)據(jù)層保證數(shù)據(jù)寫入、用數(shù)正確、讀取性能等,研發(fā)只需要關(guān)心應(yīng)用層邏輯即可。這里是一個(gè)大的判斷方向的推薦,如果需求場(chǎng)景復(fù)雜也可以兩者結(jié)合。
  • 『Part-4 運(yùn)營(yíng)階段』

    ??后續(xù)運(yùn)營(yíng)問題排查、性能優(yōu)化可以按照數(shù)據(jù)層、業(yè)務(wù)層去準(zhǔn)確定位問題和進(jìn)行有效治理,這樣的好處是研發(fā)不再困于蹩腳的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)算力的設(shè)計(jì)和性能優(yōu)化中,充分使用和發(fā)揮數(shù)據(jù)BP側(cè)以及大數(shù)據(jù)平臺(tái)能力來(lái)下沉。

數(shù)據(jù)存儲(chǔ)及組件選擇

關(guān)于數(shù)據(jù)庫(kù)的選型調(diào)研可以參考 https://db-engines.com/en/ranking

??我們將視角聚焦在數(shù)據(jù)層,看看在日常業(yè)務(wù)場(chǎng)景中是如何進(jìn)行數(shù)據(jù)組件選型的。

數(shù)據(jù)類型 代表組件
關(guān)系型數(shù)據(jù) MySQL、Clickhouse、Hive…
時(shí)序數(shù)據(jù) Prometheus、Clickhouse…
文檔型數(shù)據(jù) MongoDB、MySQL…
搜索引擎 ElasticSearch、MySQL、MongoDB、Redis…
KV Redis…
圖數(shù)據(jù)庫(kù) Neo4j…
  • 『關(guān)系型數(shù)據(jù)』

    ??在當(dāng)下的系統(tǒng)開發(fā)中應(yīng)用層都會(huì)秉持面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì)和抽象,這已經(jīng)是一種默認(rèn)和必須的開發(fā)規(guī)范,這種映射關(guān)系下沉到數(shù)據(jù)層,較為普遍的就是關(guān)系型數(shù)據(jù)庫(kù),大部分場(chǎng)景的開發(fā)工作還是圍繞關(guān)系型數(shù)據(jù)庫(kù)mysql、oracle等展開。

    ??其他數(shù)據(jù)存儲(chǔ)或組件更像是關(guān)系型數(shù)據(jù)庫(kù)的副本,它們服務(wù)的是特殊場(chǎng)景下的功能訴求。當(dāng)需要復(fù)雜的條件篩選檢索時(shí),數(shù)據(jù)可以從關(guān)系型數(shù)據(jù)庫(kù)復(fù)制到es提供強(qiáng)勁的搜索引擎能力;當(dāng)需要聚合分析時(shí),數(shù)據(jù)又可以從關(guān)系型數(shù)據(jù)庫(kù)復(fù)制到hive、clickhouse提供離線、實(shí)時(shí)的用數(shù)能力。
  • 『時(shí)序數(shù)據(jù)』

    ??顧名思義,時(shí)序數(shù)據(jù)庫(kù)便是按照時(shí)間順序進(jìn)行存儲(chǔ)的,對(duì)于時(shí)間范圍的數(shù)據(jù)檢索較為友好,較為匹配和適合的場(chǎng)景便是圍繞時(shí)間軸進(jìn)行的監(jiān)控統(tǒng)計(jì)、趨勢(shì)圖等,還有按時(shí)間周期進(jìn)行跑批的業(yè)務(wù)數(shù)據(jù)。

    ??
  • 『文檔數(shù)據(jù)』

    ??對(duì)于文檔數(shù)據(jù)的使用這里并不指的是一個(gè)word、excel、pdf這些文檔文件,而是類似JSON、XML這樣的泛結(jié)構(gòu)化數(shù)據(jù),當(dāng)下最流行的還是MongoDB,它打破了關(guān)系型數(shù)據(jù)庫(kù)schema的預(yù)定義限制,支持類JSON結(jié)構(gòu)進(jìn)行自定義拓展和存儲(chǔ),也摒棄了關(guān)系型數(shù)據(jù)庫(kù)JOIN操作,而是將邏輯關(guān)系嵌套入數(shù)據(jù)結(jié)構(gòu)本身。

    ??對(duì)于數(shù)據(jù)層級(jí)較多且存在包含關(guān)系的業(yè)務(wù)數(shù)據(jù)來(lái)說,MongoDB是一個(gè)不錯(cuò)的選擇,常見的有組織結(jié)構(gòu)關(guān)系、試題、書籍等。
  • 『搜索引擎』

    ??搜索引擎當(dāng)下最火爆的首選一定是elasticsearch,具體的特性和能力這里不贅述,可參考ElasticSearch官網(wǎng)。
  • 『KV』

    ??KV即鍵值對(duì)存儲(chǔ),它的數(shù)據(jù)結(jié)構(gòu)、實(shí)現(xiàn)相對(duì)簡(jiǎn)單,適合存儲(chǔ)小規(guī)模量級(jí)數(shù)據(jù),特別適合作為緩存層數(shù)據(jù)的存儲(chǔ),常用的緩存設(shè)計(jì)組件可以分為兩類,一種是內(nèi)存級(jí)緩存,如JVM,另一種是應(yīng)用級(jí)緩存,如Redis、Memcached。緩存數(shù)據(jù)主要解決的是較高并發(fā)場(chǎng)景下數(shù)據(jù)查詢問題,特別適合短小、相對(duì)惰性的數(shù)據(jù)進(jìn)行存儲(chǔ),能夠做到以較低成本滿足較高業(yè)務(wù)訴求的目的。一般來(lái)說,增加一層緩存是比較容易實(shí)現(xiàn)的,短時(shí)間的ROI較高,而關(guān)于緩存的使用和設(shè)計(jì)根據(jù)業(yè)務(wù)場(chǎng)景的復(fù)雜性還會(huì)有很多有意思的實(shí)踐方案,后面章節(jié)會(huì)逐一展開論述。
  • 『圖數(shù)據(jù)庫(kù)』

    ??關(guān)于圖數(shù)據(jù)庫(kù)的應(yīng)用比較聚焦特定領(lǐng)域和行業(yè),比如社交網(wǎng)絡(luò)、物流等。對(duì)于大多數(shù)業(yè)務(wù)來(lái)說,圖數(shù)據(jù)庫(kù)可能是一個(gè)技術(shù)永遠(yuǎn)不會(huì)涉及的盲區(qū),正所謂業(yè)務(wù)驅(qū)動(dòng)技術(shù),三板斧能夠搞定的事情著實(shí)沒必要花里胡哨搞不相干的技術(shù)噱頭來(lái)硬貼。

    ??即使業(yè)務(wù)中用不到,但也推薦研發(fā)小伙伴擴(kuò)展自身技術(shù)視野,了解下圖數(shù)據(jù)庫(kù)的底層邏輯和一些常規(guī)技術(shù)細(xì)節(jié),對(duì)于日后技術(shù)方案設(shè)計(jì)可能會(huì)有一些幫助和靈感加持,因?yàn)榧夹g(shù)底層是共通的,多學(xué)習(xí)一定會(huì)有收獲。

構(gòu)建可靠、準(zhǔn)確的底盤支持 —— OLTP

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??在OLTP場(chǎng)景下,數(shù)據(jù)存儲(chǔ)劃分可以大致分為三層,如下:

層級(jí) 要求
Level-1 基礎(chǔ)數(shù)據(jù) 必須支持事務(wù)特性(ACID)
Level-2 異構(gòu)數(shù)據(jù) 以基礎(chǔ)數(shù)據(jù)為源,變換數(shù)據(jù)結(jié)構(gòu)以支持場(chǎng)景要求
Level-3 輔助數(shù)據(jù) 配合其他數(shù)據(jù)支持功能
  • 基礎(chǔ)數(shù)據(jù) 圍繞MySQL進(jìn)行核心業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)系存儲(chǔ),部分泛結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在MongoDB。
  • 異構(gòu)數(shù)據(jù) 如為滿足復(fù)雜查詢等特性以MySQL為源通過binlog+MQ的數(shù)據(jù)通道方式同步異構(gòu)出ElasticSearch存儲(chǔ)進(jìn)行功能滿足。
  • 輔助數(shù)據(jù)

保證可靠、準(zhǔn)確的底氣

??在數(shù)據(jù)存儲(chǔ)、變更過程中異常是不可避免的,系統(tǒng)異??梢圆东@進(jìn)行邏輯處理而補(bǔ)齊,但是硬件異常對(duì)保證數(shù)據(jù)的破壞性很大,如何守住數(shù)據(jù)可靠、準(zhǔn)確的底氣呢?那就是要嚴(yán)格遵從ACID事務(wù)特性,MySQL、MongoDB之類目前都具備這種能力,確保技術(shù)方案可以放心“食用”,在技術(shù)選型上沒有后顧之憂。

如何應(yīng)對(duì)高并發(fā)寫入

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??常用方案便是異步處理,將請(qǐng)求的第一受力面切向消息隊(duì)列進(jìn)行入隊(duì)存儲(chǔ),從另一端進(jìn)行控流消費(fèi),這樣的好處是可以既不丟失業(yè)務(wù)請(qǐng)求量,又可以保護(hù)數(shù)據(jù)庫(kù)不直接面對(duì)流量洪峰沖擊,讓寫入流量可控。

??異步方案雖好,也需要充分考慮以下問題:

  • 消息的事務(wù)性 當(dāng)流量路由到消息隊(duì)列,消息隊(duì)列便承載了數(shù)據(jù)記錄的存儲(chǔ)職責(zé),需要保證“底氣”的可靠,引入一層節(jié)點(diǎn)不能出現(xiàn)數(shù)據(jù)鏈路斷流的問題。
  • 消息冪等 流量請(qǐng)求聚合到一個(gè)整體的消息隊(duì)列進(jìn)行排隊(duì)消費(fèi),根據(jù)消息隊(duì)列的消費(fèi)特性,不可避免會(huì)出現(xiàn)重復(fù)消費(fèi)或重試的情況,需要數(shù)據(jù)最終存儲(chǔ)或下游應(yīng)用系統(tǒng)充分理解和考慮這種情況并進(jìn)行兜底和處理,一筆業(yè)務(wù)產(chǎn)生多個(gè)數(shù)據(jù)是糟糕且不符合預(yù)期的。
  • 數(shù)據(jù)最終一致 由于引入中間件處理,增長(zhǎng)了數(shù)據(jù)消費(fèi)路徑,在方案設(shè)計(jì)時(shí)需要考慮數(shù)據(jù)展示和中間態(tài)問題,短時(shí)間的數(shù)據(jù)周轉(zhuǎn)是不易察覺的,而當(dāng)海量數(shù)據(jù)沖擊下來(lái)后,會(huì)出現(xiàn)明顯的請(qǐng)求入流量大于消費(fèi)出流量的情況,這種比例傾斜會(huì)異??鋸?,在數(shù)據(jù)消費(fèi)積壓、緩慢的過程中,需要處理好數(shù)據(jù)上游展示和感知能力,避免由于技術(shù)方案引入的復(fù)雜性導(dǎo)致業(yè)務(wù)誤解的偏差。

如何處理高并發(fā)讀取

數(shù)據(jù)分類 數(shù)據(jù)存儲(chǔ)特點(diǎn) 挑戰(zhàn) 舉例
個(gè)體化數(shù)據(jù) 數(shù)據(jù)存儲(chǔ)離散 高并發(fā) 用戶訂單、注冊(cè)狀態(tài)、賬戶余額等
通用化數(shù)據(jù) 數(shù)據(jù)存儲(chǔ)集中 高并發(fā)

??在OLTP場(chǎng)景下,高并發(fā)讀取的特點(diǎn)是讀取來(lái)源多,個(gè)體化數(shù)據(jù)呈現(xiàn)離散性特點(diǎn),通用化數(shù)據(jù)呈現(xiàn)聚集熱特點(diǎn)。處理的思路可以從一橫一縱兩個(gè)方向進(jìn)行,如下:

  • 個(gè)體化數(shù)據(jù)

    ??個(gè)體化數(shù)據(jù)要求在準(zhǔn)確的基礎(chǔ)上盡可能保證性能,檢索數(shù)據(jù)的路徑很簡(jiǎn)單,主要依靠索引進(jìn)行回表查詢,甚至使用覆蓋索引完成一次數(shù)據(jù)讀取。問題在于流量洪峰會(huì)全部砸在一個(gè)數(shù)據(jù)存儲(chǔ)上,這無(wú)疑加重?cái)?shù)據(jù)庫(kù)負(fù)擔(dān)。

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??橫向方案可以進(jìn)行水平擴(kuò)展,提前對(duì)數(shù)據(jù)進(jìn)行分庫(kù)分表,讓多個(gè)數(shù)據(jù)庫(kù)、多個(gè)表空間來(lái)共同分流洪峰,從物理存儲(chǔ)上分離,提高每一個(gè)單點(diǎn)的性能,最終實(shí)現(xiàn)全局的提升。

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??縱向方案可以考慮在請(qǐng)求的數(shù)據(jù)鏈路上下功夫,常用的技巧就是增加緩存,通過更上游的緩存層存儲(chǔ)提前返回,減少流量進(jìn)入數(shù)據(jù)庫(kù)的概率,從而在一定程度上起到保護(hù)作用,而且緩存數(shù)據(jù)的讀取要遠(yuǎn)遠(yuǎn)高于數(shù)據(jù)庫(kù)的磁盤級(jí)別讀取。

  • 通用化數(shù)據(jù)

    ??通用化數(shù)據(jù)較為相對(duì)惰性,變更不頻繁,但容易形成熱點(diǎn)數(shù)據(jù),因此需要對(duì)其進(jìn)行分流和均攤,避免將單點(diǎn)沖破。常用的方法是可以參考Nginx的流量分發(fā)策略,可以池化、分段復(fù)制出相同多份數(shù)據(jù)存儲(chǔ),輪訓(xùn)、均勻、哈希等方式實(shí)現(xiàn)分發(fā)控制。

打造聚合、多維的分析能力 —— OLAP

T+1標(biāo)配套餐

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??在OLAP場(chǎng)景下,大部分對(duì)于實(shí)時(shí)性要求不高,基于成本考慮,默認(rèn)提供T+1數(shù)據(jù)來(lái)進(jìn)行展示或進(jìn)行分析結(jié)果輸出。

??這部分?jǐn)?shù)據(jù)會(huì)通過定時(shí)任務(wù)每天凌晨業(yè)務(wù)低峰時(shí)段進(jìn)行遷移、計(jì)算、處理等。這樣做的好處是不會(huì)影響業(yè)務(wù)高峰期間系統(tǒng)的穩(wěn)定性,且多一個(gè)+1時(shí)間跨度有充分的容錯(cuò)機(jī)會(huì)、空間來(lái)做好工作任務(wù)。

打造實(shí)時(shí)數(shù)據(jù)體驗(yàn)

oltp,數(shù)據(jù)密集型系統(tǒng)搭建,數(shù)據(jù)庫(kù),數(shù)據(jù)倉(cāng)庫(kù),系統(tǒng)架構(gòu)

??準(zhǔn)確來(lái)說,是準(zhǔn)實(shí)時(shí)的數(shù)據(jù)體驗(yàn),因?yàn)閷?duì)于數(shù)據(jù)倉(cāng)庫(kù)而言都是需要借助數(shù)據(jù)通道(消息隊(duì)列)來(lái)進(jìn)行數(shù)據(jù)傳遞完成數(shù)據(jù)更新的。

??常用方案是數(shù)據(jù)倉(cāng)庫(kù)監(jiān)聽MySQL數(shù)據(jù)庫(kù)的binlog日志,binlog日志是數(shù)據(jù)庫(kù)數(shù)據(jù)操作的全部記錄,解析該日志轉(zhuǎn)換為消息投遞到消息隊(duì)列,在消息隊(duì)列另一端讀取數(shù)據(jù)進(jìn)行數(shù)倉(cāng)目標(biāo)數(shù)據(jù)源的寫入和更新即可。

??極致的體驗(yàn)必然伴隨成本和大量資源投入,特別是面對(duì)海量數(shù)據(jù)更新和持續(xù)性更新時(shí),需要借助yarnspark等進(jìn)行準(zhǔn)實(shí)時(shí)數(shù)據(jù)處理、計(jì)算,將數(shù)據(jù)實(shí)時(shí)化成呈現(xiàn)在體驗(yàn)界面。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770019.html

 ?????? 以上便是本章的全部?jī)?nèi)容,如果覺得有所收獲,歡迎 『點(diǎn)贊』、『收藏』、『關(guān)注』 一鍵三連支持喔~

到了這里,關(guān)于「數(shù)據(jù)密集型系統(tǒng)搭建」原理篇|OLAP、OLTP,竟是兩個(gè)世界的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RAG開山之作:結(jié)合參數(shù)化與非參數(shù)化記憶的知識(shí)密集型NLP任務(wù)新解法

    RAG開山之作:結(jié)合參數(shù)化與非參數(shù)化記憶的知識(shí)密集型NLP任務(wù)新解法

    20年RAG剛提出時(shí)的論文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,也算是RAG的開山之作之一了。 摘要:檢索增強(qiáng)生成(RAG)方法結(jié)合了預(yù)訓(xùn)練語(yǔ)言模型與基于檢索的非參數(shù)化記憶,通過端到端訓(xùn)練提升知識(shí)密集型NLP任務(wù)的性能。RAG模型在多個(gè)任務(wù)上展現(xiàn)卓越成果,解

    2024年04月24日
    瀏覽(20)
  • 【數(shù)據(jù)管理】OLAP 與 OLTP:有什么區(qū)別?

    【數(shù)據(jù)管理】OLAP 與 OLTP:有什么區(qū)別?

    這些術(shù)語(yǔ)經(jīng)常相互混淆,那么它們的主要區(qū)別是什么?您如何根據(jù)自己的情況選擇合適的術(shù)語(yǔ)? 我們生活在一個(gè)數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,使用數(shù)據(jù)做出更明智決策并更快響應(yīng)不斷變化的需求的組織更有可能脫穎而出。您可以在新的服務(wù)產(chǎn)品(例如拼車應(yīng)用程序)以及推動(dòng)零售的強(qiáng)大

    2024年02月04日
    瀏覽(20)
  • 處理大數(shù)據(jù)的基礎(chǔ)架構(gòu),OLTP和OLAP的區(qū)別,數(shù)據(jù)庫(kù)與Hadoop、Spark、Hive和Flink大數(shù)據(jù)技術(shù)

    處理大數(shù)據(jù)的基礎(chǔ)架構(gòu),OLTP和OLAP的區(qū)別,數(shù)據(jù)庫(kù)與Hadoop、Spark、Hive和Flink大數(shù)據(jù)技術(shù)

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開發(fā),測(cè)開 測(cè)開的話,你就得學(xué)數(shù)據(jù)庫(kù),sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫(kù) 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月08日
    瀏覽(32)
  • 掃盲:OLTP和OLAP的區(qū)別

    掃盲:OLTP和OLAP的區(qū)別

    OLTP是Online Transaction Processing的縮寫,其中文含義為:聯(lián)機(jī)事務(wù)處理; OLAP是Online Analysis Processing的縮寫,其中文含義為:聯(lián)機(jī)分析處理。 上世紀(jì)60年代,關(guān)系數(shù)據(jù)庫(kù)之父E.F.Codd提出了關(guān)系模型,造就了基于OLTP的傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的大發(fā)展;1993年,E.F.Codd認(rèn)為傳統(tǒng)OLTP已無(wú)法滿足

    2024年02月10日
    瀏覽(31)
  • 大數(shù)據(jù)技術(shù)原理與應(yīng)用 實(shí)驗(yàn)6 Spark數(shù)據(jù)處理系統(tǒng)的搭建

    大數(shù)據(jù)技術(shù)原理與應(yīng)用 實(shí)驗(yàn)6 Spark數(shù)據(jù)處理系統(tǒng)的搭建

    熟悉常用的Spark操作。 1.熟悉Spark Shell的使用; 2.熟悉常用的Spark RDD API、Spark SQL API和Spark DataFrames API。 操作系統(tǒng):Linux Spark版本: 1.6 Hadoop版本: 3.3.0 JDK版本:1.8 使用Spark shell完成如下習(xí)題: a)讀取Spark安裝目錄下的文件README.md(/usr/local/spark/README.md); b)統(tǒng)計(jì)包含“Spark”的單詞

    2024年02月09日
    瀏覽(28)
  • Gbase8s 如何成為一個(gè)更高效的oltp系統(tǒng)

    眾所周知,用戶的關(guān)鍵業(yè)務(wù)系統(tǒng),特別是 OLTP 系統(tǒng),都要求提供 24X7 不間斷的應(yīng)用服務(wù),這就要求數(shù)據(jù)庫(kù)系統(tǒng)能夠提供強(qiáng)大的高可用能力。而GBase 8s的目標(biāo)是實(shí)現(xiàn)一個(gè)具有完善的事務(wù)處理能力的高性能的面向聯(lián)機(jī)事務(wù)處理應(yīng)用的安全數(shù)據(jù)庫(kù)系統(tǒng)。因此,在保證系統(tǒng)安全性的前

    2024年02月09日
    瀏覽(15)
  • GaussDB OLTP云數(shù)據(jù)庫(kù)配套工具DRS

    GaussDB OLTP云數(shù)據(jù)庫(kù)配套工具DRS

    目錄 一、前言 二、DRS定義與使用場(chǎng)景 1、DRS定義 2、DRS場(chǎng)景示意圖 三、DRS核心功能 1、實(shí)時(shí)遷移管理 2、實(shí)時(shí)同步管理 3、備份遷移管理 4、數(shù)據(jù)訂閱管理 5、實(shí)時(shí)災(zāi)備管理 四、小結(jié) 華為GaussDB云數(shù)據(jù)庫(kù)提供了配套的生態(tài)工具數(shù)據(jù)復(fù)制服務(wù)DRS。 DRS圍繞云數(shù)據(jù)庫(kù),降低數(shù)據(jù)庫(kù)之間

    2024年02月13日
    瀏覽(19)
  • GaussDB OLTP云數(shù)據(jù)庫(kù)配套工具DDM

    GaussDB OLTP云數(shù)據(jù)庫(kù)配套工具DDM

    目錄 一、前言 二、DDM定義 三、DDM業(yè)務(wù)架構(gòu) 四、為什么需要DDM? 五、DDM特性 六、DDM應(yīng)用場(chǎng)景 現(xiàn)在越來(lái)越多的企業(yè)應(yīng)用在逐步向云平臺(tái)遷移,同時(shí)這對(duì)云平臺(tái)帶了一個(gè)嚴(yán)峻的考驗(yàn)和挑戰(zhàn)。但針對(duì)華為云GaussDB數(shù)據(jù)庫(kù), 我們?cè)谏鷳B(tài)方面做了比較健全的建設(shè),同時(shí)自研了很多相應(yīng)的

    2024年02月12日
    瀏覽(20)
  • 基于YOLOv7的密集場(chǎng)景行人檢測(cè)識(shí)別分析系統(tǒng)

    基于YOLOv7的密集場(chǎng)景行人檢測(cè)識(shí)別分析系統(tǒng)

    密集場(chǎng)景下YOLO系列模型的精度如何?本文的主要目的就是想要基于密集場(chǎng)景基于YOLOv7模型開發(fā)構(gòu)建人流計(jì)數(shù)系統(tǒng),簡(jiǎn)單看下效果圖: ?這里實(shí)驗(yàn)部分使用到的數(shù)據(jù)集為VSCrowd數(shù)據(jù)集。 實(shí)例數(shù)據(jù)如下所示: ? 下載到本地解壓縮后如下所示: annotations/目錄下存放的是標(biāo)注數(shù)據(jù)文

    2024年02月13日
    瀏覽(26)
  • 助力智能密集人群檢測(cè)計(jì)數(shù),基于YOLOv8全系列模型【n/s/m/l/x】開發(fā)構(gòu)建通用場(chǎng)景下密集人群檢測(cè)計(jì)數(shù)識(shí)別系統(tǒng)

    助力智能密集人群檢測(cè)計(jì)數(shù),基于YOLOv8全系列模型【n/s/m/l/x】開發(fā)構(gòu)建通用場(chǎng)景下密集人群檢測(cè)計(jì)數(shù)識(shí)別系統(tǒng)

    在一些人流量比較大的場(chǎng)合,或者是一些特殊時(shí)刻、時(shí)段、節(jié)假日等特殊時(shí)期下,密切關(guān)注當(dāng)前系統(tǒng)所承載的人流量是十分必要的,對(duì)于超出系統(tǒng)負(fù)荷容量的情況做到及時(shí)預(yù)警對(duì)于管理團(tuán)隊(duì)來(lái)說是保障人員安全的重要手段,本文的主要目的是想要基于通用的數(shù)據(jù)開發(fā)構(gòu)建用于

    2024年01月23日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包