1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的本質(zhì)區(qū)別是什么?

        共 4590字,需瀏覽 10分鐘

         ·

        2020-11-04 00:54

        點(diǎn)擊藍(lán)色“有關(guān)SQL”關(guān)注我喲

        加個(gè)“星標(biāo)”,天天與10000人一起快樂(lè)成長(zhǎng)

        圖 | 榖依米

        文章較長(zhǎng),可收藏后看。本文最后,準(zhǔn)備了文中談到的資料,可自取。

        在知乎上看到這么個(gè)問(wèn)題:

        數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的本質(zhì)區(qū)別是什么?

        其實(shí),我很反感本質(zhì)這個(gè)詞兒。因?yàn)楸举|(zhì)這個(gè)詞,抽象,模糊,不好定性?;卮鹫吆眯膬A囊相授,詭辯者卻以一句“ 你沒(méi)有明白我的意思,你說(shuō)的本質(zhì)和我說(shuō)的,不一樣!我的意思是……” balabala

        去特么的本質(zhì)!這分明是給偷懶者的一個(gè)詞兒。

        要說(shuō)本質(zhì),就要有分門(mén)別類(lèi)的標(biāo)準(zhǔn),要把抽象細(xì)化下來(lái),這非??简?yàn)人的形象與歸納思維。人與人之間,理解有偏差,談話(huà)中對(duì)方跟不上,就容易造成誤解。這種事情太多了。

        那么我把這個(gè)題目改一改,問(wèn),數(shù)據(jù)庫(kù)與數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用區(qū)別是什么?這樣就好多了。至少,我們明確了在應(yīng)用這個(gè)方向上,討論“本質(zhì)區(qū)別”。但事實(shí)上,這樣問(wèn)也不夠好,還是模糊。這相當(dāng)于問(wèn),“咖啡店與星巴克的區(qū)別是什么”。是不是很奇怪,有誰(shuí)會(huì)問(wèn)這么二的問(wèn)題呢?

        所以我說(shuō),問(wèn)題本身就不夠明確。為什么,你往下看就知道了。

        既然談到了應(yīng)用,那主體肯定是人,只有人,才是應(yīng)用的驅(qū)動(dòng)體。站在人的角度來(lái)看,兩者的區(qū)別就會(huì)清晰很多。

        首先,我們來(lái)看下,數(shù)據(jù)的應(yīng)用有哪些。

        第一種應(yīng)用,我在淘票票買(mǎi)了電影票:

        image

        這類(lèi)應(yīng)用,特點(diǎn)都是實(shí)時(shí)交互,我付了款,立馬得到服務(wù)。比如購(gòu)物,餐飲,交通等等。我們稱(chēng)之為 OLTP,也就是傳統(tǒng)上所說(shuō)的“關(guān)系型事務(wù)數(shù)據(jù)庫(kù)”應(yīng)用。

        第二種應(yīng)用,我用支付寶的記賬本,分析了下我本月的支出與收入:

        image

        這類(lèi)應(yīng)用,通常會(huì)涉及很長(zhǎng)一段時(shí)間的數(shù)據(jù)讀取,最終的數(shù)據(jù)呈現(xiàn)會(huì)以多種維度組織,實(shí)時(shí)性不高,但維度一定不止一維。比如支付寶年底的【我的2020】,它幫我們分析了全年的支出,哪個(gè)品類(lèi)消耗最多資金,去過(guò)哪些城市,最鐘愛(ài)哪類(lèi)消費(fèi)品等等。這類(lèi)應(yīng)用屬于數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)分析細(xì)分領(lǐng)域,也稱(chēng)之為 OLAP.

        理解了這兩類(lèi)應(yīng)用后,我們進(jìn)一步歸類(lèi)。無(wú)論是 OLTP 還是 OLAP,其實(shí)都是數(shù)據(jù)庫(kù)應(yīng)用,都要以數(shù)據(jù)庫(kù)作為存儲(chǔ)和處理基礎(chǔ)。OLAP 數(shù)據(jù)倉(cāng)庫(kù)技術(shù),不過(guò)是數(shù)據(jù)庫(kù)應(yīng)用中的一種。但數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)是否一定要以關(guān)系型事務(wù)數(shù)據(jù)庫(kù)作為基礎(chǔ)呢,不是的。我們接著往下分析。

        數(shù)據(jù)庫(kù)

        剛才我們談到應(yīng)用,繼而談到應(yīng)用的主體,人。那么談人的時(shí)候,又有必要從人經(jīng)歷的歷史,來(lái)看人的發(fā)展。以下是半個(gè)世紀(jì)來(lái),人們?cè)谑褂脭?shù)據(jù)庫(kù)上的歷史節(jié)點(diǎn)。

        image

        剛開(kāi)始,人們?cè)趹?yīng)用數(shù)據(jù)需求上,使用各類(lèi)不同的數(shù)據(jù)模型,有 Network Model, Hierarchical Model,還有 Relational Model.

        比較好理解的是,Hierarchical Model

        image

        有一對(duì)多的層級(jí)關(guān)系,最適合用來(lái)記錄上下級(jí)關(guān)系的數(shù)據(jù)。比如部門(mén)組織架構(gòu),會(huì)計(jì)分錄,工業(yè)制造常用的BOM(物料清單)等。

        接下來(lái),特殊應(yīng)用就是網(wǎng)絡(luò)模型(Network Model):

        image

        20世紀(jì)50年代的計(jì)算機(jī)應(yīng)用水平,還沒(méi)有互聯(lián)網(wǎng)概念。以現(xiàn)在發(fā)達(dá)的社交網(wǎng)絡(luò)來(lái)理解網(wǎng)絡(luò)模型,最合適不過(guò)。對(duì),就是平常我們所說(shuō)的社交網(wǎng)絡(luò)。比如微博,微信,抖音等等。人與人之間的聯(lián)系,就像一張網(wǎng)。兩兩認(rèn)識(shí)的朋友,早晚也會(huì)成為朋友,用6度人脈來(lái)解釋?zhuān)褪悄阋J(rèn)識(shí)王思聰,也只要找到關(guān)鍵的6個(gè)人帶你。

        領(lǐng)銜數(shù)據(jù)庫(kù)發(fā)展潮流,霸榜半個(gè)世紀(jì)的理論,是關(guān)系型數(shù)據(jù)庫(kù)

        1970 年開(kāi)始,讓全世界震驚的關(guān)系型數(shù)據(jù)庫(kù)論文《大型共享數(shù)據(jù)庫(kù)數(shù)據(jù)的關(guān)系模型》在A(yíng)CM發(fā)表了。由此打開(kāi)了關(guān)系型數(shù)據(jù)庫(kù)霸榜的序幕。從1973年開(kāi)始,數(shù)據(jù)庫(kù)廠(chǎng)商都開(kāi)始以 IBM System R 為藍(lán)本,開(kāi)發(fā)自己的商用版本。比如 Oracle, IBM DB2, SQL Server , PostgreSQL 等等。他們起先做的事情和我們現(xiàn)在并無(wú)二樣,就是記錄銀行流水,航空訂票,甚至美國(guó)中央情報(bào)局,軍方機(jī)構(gòu)都采購(gòu)Oracle.

        以 NoSQL,NewSQL 展開(kāi)數(shù)據(jù)庫(kù)新時(shí)代序幕

        隨著手機(jī),尤其是智能手機(jī),智能平板,互聯(lián)網(wǎng)應(yīng)用的發(fā)展,關(guān)系型數(shù)據(jù)庫(kù)在處理這些應(yīng)用上逐漸吃力,因此 Redis, MongoDB, ElasticSearch 逐漸有了市場(chǎng)。他們的操作語(yǔ)法,看似和關(guān)系型數(shù)據(jù)庫(kù)沒(méi)有相似之處,但在組成架構(gòu)上卻還有些異曲同工,目的是把原來(lái)在關(guān)系型數(shù)據(jù)庫(kù)中不好處理的部分,經(jīng)過(guò)結(jié)構(gòu)規(guī)范化,存儲(chǔ)優(yōu)化,索引優(yōu)化等技術(shù),使得這些非關(guān)系型結(jié)構(gòu)化的數(shù)據(jù)處理,變得更加高效。

        并不是說(shuō),傳統(tǒng)的應(yīng)用中就沒(méi)有今天互聯(lián)網(wǎng)時(shí)代的應(yīng)用,也有的。比如網(wǎng)站的打日志,全網(wǎng)搜索等。但那個(gè)時(shí)代并沒(méi)有那么多流量,沒(méi)有那么多人來(lái)訪(fǎng)問(wèn)應(yīng)用,所以使用關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)和處理這些數(shù)據(jù)還綽綽有余。但在流量爆發(fā)的今天,數(shù)據(jù)量早已不是當(dāng)年可比。要存儲(chǔ)和處理這些大數(shù)據(jù),必須采用新新技術(shù)。

        比如MongoDB的數(shù)據(jù)分片,可以把用戶(hù)操作日志放入操作日志集群中,把搜索日志放入搜索集群中;而用戶(hù)的搜索,可以單獨(dú)放入 ElasticSearch 中,使得搜索這種高吞吐量的操作不再占用寶貴的 OLTP 服務(wù)器資源。

        這些都是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在處理今天互聯(lián)網(wǎng)應(yīng)用上逐漸吃力的表現(xiàn)。

        功能上的缺陷,使得關(guān)系型數(shù)據(jù)庫(kù)丟失了一部分市場(chǎng)。可真正讓廠(chǎng)商焦慮的,是處理 OLTP 事務(wù)上的瓶頸。這才是關(guān)系型數(shù)據(jù)庫(kù)真正感到無(wú)力的地方。比如淘寶每年的雙十一,OceanBase ?最高峰值達(dá)到每秒 6100 萬(wàn)。然而,傳統(tǒng)的數(shù)據(jù)庫(kù),依據(jù)Oracle 的 TPC-C 打榜數(shù)據(jù),只有 300萬(wàn),完全支撐不住。當(dāng)然這是 Oracle 2009年的數(shù)據(jù),現(xiàn)今的 O 記云,能打到多少 QpmC,我們也不知道。

        所以我說(shuō),真正讓傳統(tǒng)的RDBMS廠(chǎng)商感到恐慌的,應(yīng)該是大吞吐量事務(wù)處理的無(wú)力。

        至此,所有的應(yīng)用,我們都可以稱(chēng)之為數(shù)據(jù)庫(kù)應(yīng)用。當(dāng)然,也包括數(shù)據(jù)倉(cāng)庫(kù)。20世紀(jì)70年代以來(lái),市場(chǎng)上占據(jù)主導(dǎo)地位的,還是關(guān)系型數(shù)據(jù)庫(kù)。使用關(guān)系型數(shù)據(jù)庫(kù)搭建數(shù)據(jù)倉(cāng)庫(kù),完全順其自然,也合情合理。Kimball 與 Inmon 最初的數(shù)據(jù)倉(cāng)庫(kù)理論,都以關(guān)系型數(shù)據(jù)庫(kù)作為底層存儲(chǔ)架構(gòu)。

        但 Google 的大數(shù)據(jù)三駕馬車(chē)出現(xiàn)后,情況開(kāi)始變了。

        FileSystem, BigTable, MapReduce 的出現(xiàn),使得大吞吐量的數(shù)據(jù)倉(cāng)庫(kù)不再遙不可及,原先的RDBMS解決方案是利用時(shí)間差,來(lái)解決復(fù)雜查詢(xún)
        的效率問(wèn)題,但在數(shù)據(jù)量和吞吐量達(dá)到單臺(tái)服務(wù)器容量極限后,再多的數(shù)據(jù)量也就難以負(fù)載了。

        Google三駕馬車(chē)的出現(xiàn),使得多臺(tái),甚至千臺(tái)數(shù)據(jù)庫(kù)服務(wù)共同計(jì)算變成可能。一個(gè)人的力量是有限的,但一群人的力量就不可估量了。機(jī)器也是一樣,關(guān)鍵在于調(diào)度。

        先討論早期的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)及產(chǎn)品

        剛才談到,關(guān)系型數(shù)據(jù)庫(kù)技術(shù),早期用來(lái)服務(wù)銀行,航空,軍方情報(bào)等行業(yè)。這些應(yīng)用主要的功能是處理數(shù)據(jù)的輸入與輸出。能夠把數(shù)據(jù)做到準(zhǔn)確,安全,一致,就已經(jīng)達(dá)標(biāo)了。這系列應(yīng)用,我們稱(chēng)之為 OLTP(在線(xiàn)聯(lián)機(jī)事務(wù)處理)

        但,隨著輸入的增多,輸出就成為了瓶頸,最重要的就是數(shù)據(jù)分析變得吃力,響應(yīng)需要等待很長(zhǎng)時(shí)間,而且有時(shí)候結(jié)果甚至都出不來(lái),還嚴(yán)重拖慢了數(shù)據(jù)輸入的功能。

        因此,全世界都意識(shí)到,大量數(shù)據(jù)的分析,應(yīng)該和數(shù)據(jù)的輸入系統(tǒng),也就是業(yè)務(wù)系統(tǒng)分開(kāi)來(lái)治理。這,就是數(shù)據(jù)倉(cāng)庫(kù)思維的啟蒙。

        進(jìn)一步將數(shù)據(jù)模型優(yōu)化成關(guān)系型數(shù)據(jù)模型與多維度數(shù)據(jù)模型概念的,是Kimball. ?他的多維度數(shù)據(jù)模型雖然可以用關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn),但數(shù)據(jù)結(jié)構(gòu)的組織,已經(jīng)完全不同于OLTP的使用規(guī)范,而是更接近于 OLAP,也就是在線(xiàn)聯(lián)機(jī)分析處理。

        正因?yàn)橛至硕嗑S度數(shù)據(jù)模型,OLAP才有了新的產(chǎn)品。新的非關(guān)系型OLAP產(chǎn)品,與OLTP的關(guān)系型數(shù)據(jù)庫(kù),完全就不是一個(gè)架構(gòu)了。比如 SQL Server Cube, Hyperion Essbase,DB2 OLAP Server 等等.他們采用了一種叫做稀疏性矩陣的技術(shù)。

        以分布式數(shù)據(jù)庫(kù)作為數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的新起點(diǎn)

        半個(gè)世紀(jì)以來(lái),數(shù)據(jù)庫(kù)世界一直都是關(guān)系型數(shù)據(jù)庫(kù)的天下。那么多的業(yè)務(wù)系統(tǒng)都建立在RDBMS上,那么順理成章,數(shù)據(jù)倉(cāng)庫(kù)也以RDBMS為基建了。這樣一來(lái),無(wú)論是硬件成本,還是人力成本,都可以減少到最少。

        但摩爾定律一定是支配者信息產(chǎn)業(yè)的發(fā)展,每過(guò)18個(gè)個(gè)月翻番的,不僅僅是計(jì)算機(jī)硬件性能,對(duì)軟件也提出更高的要求,數(shù)據(jù)庫(kù)就更加嚴(yán)苛了。大家回憶下半年前,你們的數(shù)據(jù)庫(kù)有多大,再想想現(xiàn)在你們的數(shù)據(jù)庫(kù)有多大,就明白了。

        所以,大小型機(jī),受制于單臺(tái)資源,在日益增大的數(shù)據(jù)面前,毫無(wú)應(yīng)招之力,只能讓步于分布式數(shù)據(jù)庫(kù)。以Hadoop的橫空出世為起點(diǎn),數(shù)據(jù)倉(cāng)庫(kù)終于不再以RDBMS馬首是瞻,紛紛投奔分布式的非關(guān)系型數(shù)據(jù)庫(kù)。

        跟RDBMS如出一轍,Hadoop一戰(zhàn)成名之后,后起之秀就越來(lái)越多,也越來(lái)越猛。原本 Hive 這樣的非實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù),已經(jīng)取得了很大的市場(chǎng),但隨著實(shí)時(shí)數(shù)據(jù)技術(shù)的渴求與引入,Spark, Flink 這樣的分布式計(jì)算也日益得到人們的青睞。

        真是“問(wèn)世間,是否此山最高 ?或者另有高處比天高?!?/strong>

        計(jì)算機(jī)的世界就是這樣,你追我趕,你方唱罷,我方登場(chǎng)??傆熊浖饶愀?,更好,也總有人,比你更懂SQL

        分布式數(shù)據(jù)庫(kù)的技術(shù)派別

        分布式數(shù)據(jù)庫(kù),在提高系統(tǒng)吞吐量,降低服務(wù)器高負(fù)載,提高作業(yè)系統(tǒng)性能等方面,均做出了很好的優(yōu)化。數(shù)據(jù)在爆量的情況下,采用分布式數(shù)據(jù)庫(kù)系統(tǒng)又變得自然不過(guò)了。

        那么究竟有哪些分布式數(shù)據(jù)庫(kù)呢?

        其實(shí)分布式數(shù)據(jù)庫(kù)自數(shù)據(jù)庫(kù)發(fā)展以來(lái),就沒(méi)有停過(guò)。Oracle, SQL Server 在創(chuàng)立之初,就有各自實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的方法。不過(guò)那個(gè)時(shí)候,我們傾向于把這些叫做產(chǎn)品功能,比如高可用,復(fù)制,鏡像技術(shù),或者讀寫(xiě)分離。

        嚴(yán)格來(lái)說(shuō),這些分布式與我們今天所說(shuō)的分布式,完全不一樣。最重要的一點(diǎn),商業(yè)數(shù)據(jù)庫(kù)的分布式產(chǎn)品,都是高度自治的,那可真的是分布式,一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器,與另外的分布式數(shù)據(jù)庫(kù)服務(wù)器,不共享硬盤(pán),也不共享內(nèi)存與CPU.看上去完全無(wú)關(guān),但邏輯上還是有聯(lián)系,圍繞著同一個(gè)應(yīng)用,一臺(tái)服務(wù)器供寫(xiě)入數(shù)據(jù),另一臺(tái)或者幾臺(tái)則供查詢(xún)讀取。數(shù)據(jù)同步使用 CDC, BAT 腳本等方式完成。

        但若繼續(xù)采用上面的架構(gòu),流量再翻10倍,100倍,肯定就頂不住了,因?yàn)閱螜C(jī)作戰(zhàn)能力并不能無(wú)限升級(jí),也就不能線(xiàn)性增長(zhǎng)。這時(shí),必須采用嚴(yán)格的分布式架構(gòu),使每一種數(shù)據(jù),都落地在不同的數(shù)據(jù)庫(kù)服務(wù)器上。比如江蘇,上海,浙江的銷(xiāo)售數(shù)據(jù),分布在不同的機(jī)器上。如果業(yè)務(wù)繼續(xù)擴(kuò)展,增加了廣州,北京,東北區(qū)域,那么再添加三臺(tái)機(jī)器,分別用來(lái)承載這三個(gè)地區(qū)的銷(xiāo)售數(shù)據(jù),這樣就完全可以抵住新增的業(yè)務(wù)吞吐量。

        這個(gè)時(shí)候, MPP 和 Hadoop 為代表的兩類(lèi)分布式計(jì)算架構(gòu)出現(xiàn)在市場(chǎng),也算是應(yīng)運(yùn)而生了。當(dāng)然這是另外的話(huà)題。

        公眾號(hào)后臺(tái)回復(fù)“三駕馬車(chē)”,可得 Google 大數(shù)據(jù)論文



        --完--





        往期精彩:


        本號(hào)精華合集(二)

        如何寫(xiě)好 5000 行的 SQL 代碼

        如何提高閱讀 SQL 源代碼的快感

        我在面試數(shù)據(jù)庫(kù)工程師候選人時(shí),常問(wèn)的一些題

        零基礎(chǔ) SQL 數(shù)據(jù)庫(kù)小白,從入門(mén)到精通的學(xué)習(xí)路線(xiàn)與書(shū)單









        瀏覽 52
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

          <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产极品白嫩 | 国产一区二区中文字幕 | 一级国产视频 | 麻豆精品国产传媒在线精品 | 美女污黄网站 | xxxx在线视频 | 天天日夜夜肏 | 性在线 | av小说在线 | 白丝开裆校花裸体被羞羞爽视频 |