NoSQL薄弱的安全性會(huì)給企業(yè)帶來(lái)負(fù)面影響 。Imperva公司創(chuàng)始人兼CTO Amichai Shulman如是說(shuō)。在新的一年中,無(wú)疑會(huì)有更多企業(yè)開(kāi)始或籌劃部署NoSQL。方案落實(shí)后就會(huì)逐漸發(fā)現(xiàn)種種安全問(wèn)題,因此早做準(zhǔn)備才是正確的選擇。 作為傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的替代方案,NoSQL在查詢中并不使用SQL語(yǔ)言,而且允許用戶隨時(shí)變更數(shù)據(jù)屬性。此類(lèi)數(shù)據(jù)庫(kù)以擴(kuò)展性良好著稱(chēng),并能夠在需要大量應(yīng)用程序與數(shù)據(jù)庫(kù)本身進(jìn)行實(shí)時(shí)交互的交易處理任務(wù)中發(fā)揮性能優(yōu)勢(shì),Couchbase創(chuàng)始人兼產(chǎn)品部門(mén)高級(jí)副總裁James Phillips解釋稱(chēng):NoSQL以交易業(yè)務(wù)為核心。它更注重實(shí)時(shí)處理能力并且擅長(zhǎng)直接對(duì)數(shù)據(jù)進(jìn)行操作,大幅度促進(jìn)了交互型軟件系統(tǒng)的發(fā)展。Phillips指出。其中最大的優(yōu)勢(shì)之一是能夠隨時(shí)改變(在屬性方面),由于結(jié)構(gòu)性的弱化,修改過(guò)程非常便捷。 NoSQL最大優(yōu)勢(shì)影響其安全性 NoSQL的關(guān)鍵性特色之一是其動(dòng)態(tài)的數(shù)據(jù)模型,Shulman解釋道。我可以在其運(yùn)作過(guò)程中加入新的屬性記錄。因此與這種結(jié)構(gòu)相匹配的安全模型必須具備一定的前瞻性規(guī)劃。也就是說(shuō),它必須能夠了解數(shù)據(jù)庫(kù)引入的新屬性將引發(fā)哪些改變,以及新加入的屬性擁有哪些權(quán)限。然而這個(gè)層面上的安全概念目前尚不存在,根本沒(méi)有這樣的解決方案。 根據(jù)Phillips的說(shuō)法,某些NoSQL開(kāi)發(fā)商已經(jīng)開(kāi)始著手研發(fā)安全機(jī)制,至少在嘗試保護(hù)數(shù)據(jù)的完整性。在關(guān)系型數(shù)據(jù)庫(kù)領(lǐng)域,如果我們的數(shù)據(jù)組成不正確,那么它將無(wú)法與結(jié)構(gòu)并行運(yùn)作,換言之?dāng)?shù)據(jù)插入操作整體將宣告失敗。目前各種驗(yàn)證規(guī)則與完整性檢查已經(jīng)比較完善,而事實(shí)證明這些驗(yàn)證機(jī)制都能在NoSQL中發(fā)揮作用。我們與其他人所推出的解決方案類(lèi)似,都會(huì)在插入一條新記錄或是文檔型規(guī)則時(shí)觸發(fā),并在執(zhí)行過(guò)程中確保插入數(shù)據(jù)的正確性。 Shulman預(yù)計(jì)新用戶很快將在配置方面捅出大婁子,這并非因?yàn)镮T工作人員的玩忽職守,實(shí)際上主要原因是NoSQL作為一項(xiàng)新技術(shù)導(dǎo)致大多數(shù)人對(duì)其缺乏足夠的知識(shí)基礎(chǔ)。Application Security研發(fā)部門(mén)TeamSHATTER的經(jīng)理Alex Rothacker對(duì)上述觀點(diǎn)表示贊同。他指出,培訓(xùn)的一大問(wèn)題在于,大多數(shù)NoSQL的從業(yè)者往往屬于新生代IT人士,他們對(duì)于技術(shù)了解較多,但往往缺乏足夠的安全管理經(jīng)驗(yàn)。 如果他們從傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)入手,那么由于強(qiáng)制性安全機(jī)制的完備,他們可以在使用中學(xué)習(xí)。但NoSQL,只有行家才能通過(guò)觀察得出正確結(jié)論,并在大量研究工作后找到一套完備的安全解決方案。因此可能有90%的從業(yè)者由于知識(shí)儲(chǔ)備、安全經(jīng)驗(yàn)或是工作時(shí)間的局限而無(wú)法做到這一點(diǎn)。 NoSQL需在安全性方面進(jìn)行優(yōu)化 盡管Phillips認(rèn)同新技術(shù)與舊經(jīng)驗(yàn)之間存在差異,但企業(yè)在推廣NoSQL時(shí)加大對(duì)安全性的關(guān)注會(huì)起到很大程度的積極作用。他認(rèn)為此類(lèi)數(shù)據(jù)存儲(chǔ)機(jī)制與傳統(tǒng)關(guān)系類(lèi)數(shù)據(jù)庫(kù)相比,其中包含著的敏感類(lèi)信息更少,而且與企業(yè)網(wǎng)絡(luò)內(nèi)部其它應(yīng)用程序的接觸機(jī)會(huì)也小得多。 他們并不把這項(xiàng)新技術(shù)完全當(dāng)成數(shù)據(jù)庫(kù)使用,正如我們?cè)谑占泶罅縼?lái)自其它應(yīng)用程序的業(yè)務(wù)類(lèi)數(shù)據(jù)時(shí),往往也會(huì)考慮將其作為企業(yè)數(shù)據(jù)存儲(chǔ)機(jī)制一樣,他補(bǔ)充道。當(dāng)然,如果我打算研發(fā)一套具備某種特定功能的社交網(wǎng)絡(luò)、社交游戲或是某種特殊web應(yīng)用程序,也很可能會(huì)將其部署于防火墻之下。這樣一來(lái)它不僅與應(yīng)用程序緊密結(jié)合,也不會(huì)被企業(yè)中的其它部門(mén)所觸及。 但Rothacker同時(shí)表示,這種過(guò)度依賴周邊安全機(jī)制的數(shù)據(jù)庫(kù)系統(tǒng)也存在著極其危險(xiǎn)的漏洞。一旦系統(tǒng)完全依附于周邊安全模型,那么驗(yàn)證機(jī)制就必須相對(duì)薄弱,而且缺乏多用戶管理及數(shù)據(jù)訪問(wèn)方面的安全保護(hù)。只要擁有高權(quán)限賬戶,我們幾乎能訪問(wèn)存儲(chǔ)機(jī)制中的一切數(shù)據(jù)。舉例來(lái)說(shuō),Brian Sullivan就在去年的黑帽大會(huì)上演示了如何在完全不清楚數(shù)據(jù)具體內(nèi)容的情況下,將其信息羅列出來(lái)甚至導(dǎo)出。 而根據(jù)nCircle公司CTO Tim ‘TK’ Keanini的觀點(diǎn),即使是與有限的應(yīng)用程序相關(guān)聯(lián),NoSQL也很有可能被暴露在互聯(lián)網(wǎng)上。在缺少嚴(yán)密網(wǎng)絡(luò)劃分的情況下,它可能成為攻擊者窺探存儲(chǔ)數(shù)據(jù)的薄弱環(huán)節(jié)。因?yàn)镹oSQL在設(shè)計(jì)上主要用于互聯(lián)網(wǎng)規(guī)模的部署,所以它很可能被直接連接到互聯(lián)網(wǎng)中,進(jìn)而面臨大量攻擊行為。 其中發(fā)生機(jī)率最高的攻擊行為就是注入式攻擊,這也是一直以來(lái)肆虐于關(guān)系類(lèi)數(shù)據(jù)庫(kù)領(lǐng)域的頭號(hào)公敵。盡管NoSQL沒(méi)有將SQL作為查詢語(yǔ)言,也并不代表它能夠免受注入式攻擊的威脅。雖然不少人宣稱(chēng)SQL注入在NoSQL這邊不起作用,但其中的原理是完全一致的。攻擊者需要做的只是改變自己注入內(nèi)容的語(yǔ)法形式,Rothacker解釋稱(chēng)。也就是說(shuō)雖然SQL注入不會(huì)出現(xiàn),但JavaScript注入或者JSON注入同樣能威脅安全。 此外,攻擊者在籌劃對(duì)這類(lèi)數(shù)據(jù)庫(kù)展開(kāi)侵襲時(shí),也很可能進(jìn)一步優(yōu)化自己的工具。不成熟的安全技術(shù)往往帶來(lái)這樣的窘境:需要花費(fèi)大量時(shí)間學(xué)習(xí)如何保障其安全,但幾乎每個(gè)IT人士都能迅速掌握攻擊活動(dòng)的組織方法。因此我認(rèn)為攻擊者將會(huì)始終走在安全部署的前面,Shulman說(shuō)道。遺憾的是搞破壞總比防范工作更容易,而我們已經(jīng)看到不少NoSQL技術(shù)方面的公開(kāi)漏洞,尤其是目前引起熱議的、以JSON注入為載體的攻擊方式。 NoSQL安全性并非其阻礙 然而,這一切都不應(yīng)該成為企業(yè)使用NoSQL的阻礙,他總結(jié)道。我認(rèn)為歸根結(jié)底,這應(yīng)該算是企業(yè)的一種商業(yè)決策。只要這種選擇能夠帶來(lái)吸引力巨大的商業(yè)機(jī)遇,就要承擔(dān)一定風(fēng)險(xiǎn),Shulman解釋道。但應(yīng)該采取一定措施以盡量弱化這種風(fēng)險(xiǎn)。 舉例來(lái)說(shuō),鑒于數(shù)據(jù)庫(kù)對(duì)外部安全機(jī)制的依賴性,Rothacker建議企業(yè)積極考慮引入加密方案。他警告稱(chēng),企業(yè)必須對(duì)與NoSQL相對(duì)接的應(yīng)用程序代碼仔細(xì)檢查。換言之,企業(yè)必須嚴(yán)格挑選負(fù)責(zé)此類(lèi)項(xiàng)目部署的人選,確保將最好的人才用于這方面事務(wù),Shulman表示。當(dāng)大家以NoSQL為基礎(chǔ)編寫(xiě)應(yīng)用程序時(shí),必須啟用有經(jīng)驗(yàn)的編程人員,因?yàn)榭蛻舳塑浖堑謸醢踩珕?wèn)題的第一道屏障。切實(shí)為額外緩沖區(qū)的部署留出時(shí)間與預(yù)算,這能夠讓員工有閑暇反思自己的工作內(nèi)容并盡量多顧及安全考量多想一點(diǎn)就是進(jìn)步。綜上所述,這可能與部署傳統(tǒng)的關(guān)系類(lèi)數(shù)據(jù)庫(kù)也沒(méi)什么不同。 具有諷刺意味的是,近年來(lái)數(shù)據(jù)庫(kù)應(yīng)用程序在安全性方面的提升基本都跟數(shù)據(jù)庫(kù)本身沒(méi)什么關(guān)系,nCircle公司安全研究及開(kāi)發(fā)部門(mén)總監(jiān)Oliver Lavery如是說(shuō)。
目前累計(jì)服務(wù)客戶成百上千家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
首先我們要了解Java語(yǔ)言和Linux操作系統(tǒng),這兩個(gè)是學(xué)習(xí)大數(shù)據(jù)的基礎(chǔ),學(xué)習(xí)的順序不分前后。
大數(shù)據(jù)
Java :只要了解一些基礎(chǔ)即可,做大數(shù)據(jù)不需要很深的Java 技術(shù),學(xué)java SE 就相當(dāng)于有學(xué)習(xí)大數(shù)據(jù)基礎(chǔ)。
Linux:因?yàn)榇髷?shù)據(jù)相關(guān)軟件都是在Linux上運(yùn)行的,所以Linux要學(xué)習(xí)的扎實(shí)一些,學(xué)好Linux對(duì)你快速掌握大數(shù)據(jù)相關(guān)技術(shù)會(huì)有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數(shù)據(jù)軟件的運(yùn)行環(huán)境和網(wǎng)絡(luò)環(huán)境配置,能少踩很多坑,學(xué)會(huì)shell就能看懂腳本這樣能更容易理解和配置大數(shù)據(jù)集群。還能讓你對(duì)以后新出的大數(shù)據(jù)技術(shù)學(xué)習(xí)起來(lái)更快。
Hadoop:這是現(xiàn)在流行的大數(shù)據(jù)處理平臺(tái)幾乎已經(jīng)成為大數(shù)據(jù)的代名詞,所以這個(gè)是必學(xué)的。Hadoop里面包括幾個(gè)組件HDFS、MapReduce和YARN,HDFS是存儲(chǔ)數(shù)據(jù)的地方就像我們電腦的硬盤(pán)一樣文件都存儲(chǔ)在這個(gè)上面,MapReduce是對(duì)數(shù)據(jù)進(jìn)行處理計(jì)算的,它有個(gè)特點(diǎn)就是不管多大的數(shù)據(jù)只要給它時(shí)間它就能把數(shù)據(jù)跑完,但是時(shí)間可能不是很快所以它叫數(shù)據(jù)的批處理。
Zookeeper:這是個(gè)萬(wàn)金油,安裝Hadoop的HA的時(shí)候就會(huì)用到它,以后的Hbase也會(huì)用到它。它一般用來(lái)存放一些相互協(xié)作的信息,這些信息比較小一般不會(huì)超過(guò)1M,都是使用它的軟件對(duì)它有依賴,對(duì)于我們個(gè)人來(lái)講只需要把它安裝正確,讓它正常的run起來(lái)就可以了。
Mysql:我們學(xué)習(xí)完大數(shù)據(jù)的處理了,接下來(lái)學(xué)習(xí)學(xué)習(xí)小數(shù)據(jù)的處理工具mysql數(shù)據(jù)庫(kù),因?yàn)橐粫?huì)裝hive的時(shí)候要用到,mysql需要掌握到什么層度那?你能在Linux上把它安裝好,運(yùn)行起來(lái),會(huì)配置簡(jiǎn)單的權(quán)限,修改root的密碼,創(chuàng)建數(shù)據(jù)庫(kù)。這里主要的是學(xué)習(xí)SQL的語(yǔ)法,因?yàn)閔ive的語(yǔ)法和這個(gè)非常相似。
Sqoop:這個(gè)是用于把Mysql里的數(shù)據(jù)導(dǎo)入到Hadoop里的。當(dāng)然你也可以不用這個(gè),直接把Mysql數(shù)據(jù)表導(dǎo)出成文件再放到HDFS上也是一樣的,當(dāng)然生產(chǎn)環(huán)境中使用要注意Mysql的壓力。
Hive:這個(gè)東西對(duì)于會(huì)SQL語(yǔ)法的來(lái)說(shuō)就是神器,它能讓你處理大數(shù)據(jù)變的很簡(jiǎn)單,不會(huì)再費(fèi)勁的編寫(xiě)MapReduce程序。有的人說(shuō)Pig那?它和Pig差不多掌握一個(gè)就可以了。
Oozie:既然學(xué)會(huì)Hive了,我相信你一定需要這個(gè)東西,它可以幫你管理你的Hive或者M(jìn)apReduce、Spark腳本,還能檢查你的程序是否執(zhí)行正確,出錯(cuò)了給你發(fā)報(bào)警并能幫你重試程序,最重要的是還能幫你配置任務(wù)的依賴關(guān)系。我相信你一定會(huì)喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺(jué)。
Hbase:這是Hadoop生態(tài)體系中的NOSQL數(shù)據(jù)庫(kù),他的數(shù)據(jù)是按照key和value的形式存儲(chǔ)的并且key是唯一的,所以它能用來(lái)做數(shù)據(jù)的排重,它與MYSQL相比能存儲(chǔ)的數(shù)據(jù)量大很多。所以他常被用于大數(shù)據(jù)處理完成之后的存儲(chǔ)目的地。
Kafka:這是個(gè)比較好用的隊(duì)列工具,隊(duì)列是干嗎的?排隊(duì)買(mǎi)票你知道不?數(shù)據(jù)多了同樣也需要排隊(duì)處理,這樣與你協(xié)作的其它同學(xué)不會(huì)叫起來(lái),你干嗎給我這么多的數(shù)據(jù)(比如好幾百G的文件)我怎么處理得過(guò)來(lái),你別怪他因?yàn)樗皇歉愦髷?shù)據(jù)的,你可以跟他講我把數(shù)據(jù)放在隊(duì)列里你使用的時(shí)候一個(gè)個(gè)拿,這樣他就不在抱怨了馬上灰流流的去優(yōu)化他的程序去了,因?yàn)樘幚聿贿^(guò)來(lái)就是他的事情。而不是你給的問(wèn)題。當(dāng)然我們也可以利用這個(gè)工具來(lái)做線上實(shí)時(shí)數(shù)據(jù)的入庫(kù)或入HDFS,這時(shí)你可以與一個(gè)叫Flume的工具配合使用,它是專(zhuān)門(mén)用來(lái)提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接受方(比如Kafka)的。
Spark:它是用來(lái)彌補(bǔ)基于MapReduce處理數(shù)據(jù)速度上的缺點(diǎn),它的特點(diǎn)是把數(shù)據(jù)裝載到內(nèi)存中計(jì)算而不是去讀慢的要死進(jìn)化還特別慢的硬盤(pán)。特別適合做迭代運(yùn)算,所以算法流們特別稀飯它。它是用scala編寫(xiě)的。Java語(yǔ)言或者Scala都可以操作它,因?yàn)樗鼈兌际怯肑VM的。
大數(shù)據(jù)分析師應(yīng)該要學(xué)的知識(shí)有,統(tǒng)計(jì)概率理論基礎(chǔ),軟件操作結(jié)合分析模型進(jìn)行實(shí)際運(yùn)用,數(shù)據(jù)挖掘或者數(shù)據(jù)分析方向性選擇,數(shù)據(jù)分析業(yè)務(wù)應(yīng)用。
1、統(tǒng)計(jì)概率理論基礎(chǔ)
這是重中之重,千里之臺(tái),起于壘土,最重要的就是最下面的那幾層。統(tǒng)計(jì)思維,統(tǒng)計(jì)方法,這里首先是市場(chǎng)調(diào)研數(shù)據(jù)的獲取與整理,然后是最簡(jiǎn)單的描述性分析,其次是常用的推斷性分析,方差分析,到高級(jí)的相關(guān),回歸等多元統(tǒng)計(jì)分析,掌握了這些原理,才能進(jìn)行下一步。
2、軟件操作結(jié)合分析模型進(jìn)行實(shí)際運(yùn)用
關(guān)于數(shù)據(jù)分析主流軟件有(從上手度從易到難):Excel,SPSS,Stata,R,SAS等。首先是學(xué)會(huì)怎樣操作這些軟件,然后是利用軟件從數(shù)據(jù)的清洗開(kāi)始一步步進(jìn)行處理,分析,最后輸出結(jié)果,檢驗(yàn)及解讀數(shù)據(jù)。
3、數(shù)據(jù)挖掘或者數(shù)據(jù)分析方向性選擇
其實(shí)數(shù)據(jù)分析也包含數(shù)據(jù)挖掘,但在工作中做到后面會(huì)細(xì)分到分析方向和挖掘方向,兩者已有區(qū)別,關(guān)于數(shù)據(jù)挖掘也涉及到許多模型算法,如:關(guān)聯(lián)法則、神經(jīng)網(wǎng)絡(luò)、決策樹(shù)、遺傳算法、可視技術(shù)等。
4、數(shù)據(jù)分析業(yè)務(wù)應(yīng)用
這一步也是最難學(xué)習(xí)的一步,行業(yè)有別,業(yè)務(wù)不同,業(yè)務(wù)的不同所運(yùn)用的分析方法亦有區(qū)分,實(shí)際工作是解決業(yè)務(wù)問(wèn)題,因此對(duì)業(yè)務(wù)的洞察能力非常重要。擴(kuò)展資料
分析工作內(nèi)容
1、搜索引擎分析師(Search Engine Optimization Strategy Analyst,簡(jiǎn)稱(chēng)SEO分析師)是一項(xiàng)新興信息技術(shù)職業(yè),主要關(guān)注搜索引擎動(dòng)態(tài),修建網(wǎng)站,拓展網(wǎng)絡(luò)營(yíng)銷(xiāo)渠道,網(wǎng)站內(nèi)部?jī)?yōu)化,流量數(shù)據(jù)分析,策劃外鏈執(zhí)行方案,負(fù)責(zé)競(jìng)價(jià)推廣。
2、SEO分析師需要精通商業(yè)搜索引擎相關(guān)知識(shí)與市場(chǎng)運(yùn)作。通過(guò)編程,HTML,CSS,JavaScript,MicrosoftASP.NET,Perl,PHP,Python等建立網(wǎng)站進(jìn)行各種以用戶體驗(yàn)為主同時(shí)帶給公司盈利但可能失敗的項(xiàng)目嘗試。
請(qǐng)參考:
(1)
select e.姓名,e.住址
from department d,employee e
where d.department_no=e.department_no and d.部門(mén)名稱(chēng)='IPMS';
(2)
select p.產(chǎn)品名, e.姓名 as 產(chǎn)品負(fù)責(zé)人姓名,d.部門(mén)名稱(chēng),
e2.姓名 as 部門(mén)負(fù)責(zé)人姓名,e2.電話 as 部門(mén)負(fù)責(zé)人電話
from 產(chǎn)品表 p,employee e,department d,employee e2
where p.project_manager=e.Employee_no and e.department_no=d.department_no
and d.department_manager=e2.Employee_no
and p.產(chǎn)品名='《計(jì)量支付》'
(3)
select e.姓名,decode(e.性別,'男',e.地址,'女',e.電話號(hào)碼,0) 通訊方式
from employee e
(4)
select e.employee_no,e.姓名,p.project_no
from employee e left outer join 產(chǎn)品表 p
on e.employee_no=p.project_manager
(5)
select e.姓名,d.部門(mén)名稱(chēng),e2.姓名,e2.電話,(select p.產(chǎn)品名 from 產(chǎn)品表 p where e.employee_no=p.project_manager) as 產(chǎn)品名
from employee e,department d,employee e2
where e.department_no=d.department_no and d.Department manager=e2.employee_no
hbase概念:??非結(jié)構(gòu)化的分布式的面向列存儲(chǔ)非關(guān)系型的開(kāi)源的數(shù)據(jù)庫(kù),根據(jù)谷歌的三大論文之一的bigtable??高寬厚表??作用:??為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。
能干什么:??存儲(chǔ)大量結(jié)果集數(shù)據(jù),低延遲的隨機(jī)查詢。
sql:??結(jié)構(gòu)化查詢語(yǔ)言??nosql:??非關(guān)系型數(shù)據(jù)庫(kù),列存儲(chǔ)和文檔存儲(chǔ)(查詢低延遲),hbase是nosql的一個(gè)種類(lèi),其特點(diǎn)是列式存儲(chǔ)。
非關(guān)系型數(shù)據(jù)庫(kù)--列存儲(chǔ)(hbase)??非關(guān)系型數(shù)據(jù)庫(kù)--文檔存儲(chǔ)(MongoDB)??非關(guān)系型數(shù)據(jù)庫(kù)--內(nèi)存式存儲(chǔ)(redis)??非關(guān)系型數(shù)據(jù)庫(kù)--圖形模型(graph)??hive和hbase區(qū)別???Hive的定位是數(shù)據(jù)倉(cāng)庫(kù),雖然也有增刪改查,但其刪改查對(duì)應(yīng)的是整張表而不是單行數(shù)據(jù),查詢的延遲較高。
其本質(zhì)是更加方便的使用mr的威力來(lái)進(jìn)行離線分析的一個(gè)數(shù)據(jù)分析工具。
HBase的定位是hadoop的數(shù)據(jù)庫(kù),電腦培訓(xùn)發(fā)現(xiàn)是一個(gè)典型的Nosql,所以HBase是用來(lái)在大量數(shù)據(jù)中進(jìn)行低延遲的隨機(jī)查詢的。
hbase運(yùn)行方式:??standalonedistrubited??單節(jié)點(diǎn)和偽分布式???單節(jié)點(diǎn):單獨(dú)的進(jìn)程運(yùn)行在同一臺(tái)機(jī)器上??hbase應(yīng)用場(chǎng)景:??存儲(chǔ)海量數(shù)據(jù)低延遲查詢數(shù)據(jù)??hbase表由多行組成??hbase行一行在hbase中由行健和一個(gè)或多個(gè)列的值組成,按行健字母順序排序的存儲(chǔ)。
No SQL DB是一種和關(guān)系型數(shù)據(jù)庫(kù)相對(duì)應(yīng)的對(duì)象數(shù)據(jù)庫(kù)。按照數(shù)據(jù)模型保存性質(zhì)將當(dāng)前NoSQL分為四種:
1.Key-value stores鍵值存儲(chǔ), 保存keys+BLOBs
2.Table-oriented 面向表, 主要有Google的BigTable和Cassandra.
3.Document-oriented面向文本, 文本是一種類(lèi)似XML文檔,MongoDB 和 CouchDB
4.Graph-oriented 面向圖論. 如Neo4J.
關(guān)系型數(shù)據(jù)庫(kù)的弊端:
關(guān)系型數(shù)據(jù)庫(kù)的歷史已經(jīng)有30余年了,因此,在某些情況下,關(guān)系型數(shù)據(jù)庫(kù)的弱點(diǎn)就會(huì)暴露出來(lái):
1. “對(duì)象-關(guān)系 阻抗不匹配”。關(guān)系模型和面向?qū)ο竽P驮诟拍钌洗嬖谔烊坏牟黄ヅ涞牡胤剑热鐚?duì)象模型當(dāng)中特有的“繼承”,“組合”,“聚合”,“依賴”的概念在關(guān)系模型當(dāng)中是不存在的。
2. “模式演進(jìn)”。即隨著時(shí)間的推移,需要對(duì)數(shù)據(jù)庫(kù)模式進(jìn)行調(diào)整以便適應(yīng)新的需求,然而,對(duì)數(shù)據(jù)庫(kù)模式的調(diào)整是的成本很高的動(dòng)作,因此很多設(shè)計(jì)師在系統(tǒng)設(shè)計(jì)之初會(huì)設(shè)計(jì)一個(gè)兼容性很強(qiáng)的數(shù)據(jù)庫(kù)模式,以應(yīng)對(duì)將來(lái)可能出現(xiàn)的需求,然而在現(xiàn)在的web系統(tǒng)開(kāi)發(fā)過(guò)程中,系統(tǒng)的變更更加頻繁,幾乎無(wú)法預(yù)先設(shè)計(jì)出一種“萬(wàn)能”的數(shù)據(jù)庫(kù)模式以滿足所有的需求,因此 模式演進(jìn)的弊端就愈發(fā)凸顯。
3. 關(guān)系型數(shù)據(jù)庫(kù)處理 稀疏表時(shí)的性能非常差。
4. network-oriented data 很適合處理 人工智能、社交網(wǎng)絡(luò)中的一些需求。
所以,各種各樣的No SQL DB 出現(xiàn)了,這里只簡(jiǎn)單介紹下Neo4J 的基本知識(shí)。
Neo 數(shù)據(jù)模型
Neo4J 是一個(gè)基于圖實(shí)現(xiàn)的No SQL DB, 其基本的數(shù)據(jù)類(lèi)型有如下幾種:
Node, Relationship, Property.
Node 對(duì)應(yīng)于圖中的 節(jié)點(diǎn),Relationship 對(duì)應(yīng)圖中的邊,Node 和 Relationship 都可以擁有Property,
Property 的數(shù)據(jù)結(jié)構(gòu)為。
數(shù)據(jù)遍歷
Neo 提供了Traverser對(duì)數(shù)據(jù)中的數(shù)據(jù)進(jìn)行遍歷。