精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:大數(shù)據(jù)數(shù)據(jù)庫 → 正文

數(shù)據(jù)庫各個(gè)派系的起源、應(yīng)用場(chǎng)景和選擇指南

責(zé)任編輯:editor005 |來源:企業(yè)網(wǎng)D1Net  2015-03-03 14:21:59 本文摘自:51CTO

現(xiàn)在我們站在各個(gè)用例的角度上來考慮那種系統(tǒng)適合于這些用例。你的意見是?

首先,我們要縱覽各種數(shù)據(jù)模型。這些模型的分類方法來自于Emil Eifrem 和 NoSQL databases。

文檔數(shù)據(jù)庫

源起:受Lotus Notes啟發(fā)。

數(shù)據(jù)模型:包含了key-value的文檔集合

例子:CouchDB, MongoDB

優(yōu)點(diǎn):數(shù)據(jù)模型自然,編程友好,快速開發(fā),web友好,CRUD。

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

源起: 歐拉和圖理論。

數(shù)據(jù)模型:節(jié)點(diǎn)和關(guān)系,也可處理鍵值對(duì)。

例子:AllegroGraph, InfoGrid, Neo4j

優(yōu)點(diǎn):解決復(fù)雜的圖問題。

關(guān)系數(shù)據(jù)庫

源起: E. F. Codd 在A Relational Model of Data for Large Shared Data Banks提出的

數(shù)據(jù)模型:各種關(guān)系

例子:VoltDB, Clustrix, MySQL

優(yōu)點(diǎn):高性能、可擴(kuò)展的OLTP,支持SQL,物化視圖,支持事務(wù),編程友好。

對(duì)象數(shù)據(jù)庫

源起:圖數(shù)據(jù)庫研究

數(shù)據(jù)模型:對(duì)象

例子:Objectivity, Gemstone

優(yōu)點(diǎn):復(fù)雜對(duì)象模型,快速鍵值訪問,鍵功能訪問,以及圖數(shù)據(jù)庫的優(yōu)點(diǎn)。

Key-Value數(shù)據(jù)庫

源起:Amazon的論文 Dynamo 和 Distributed HashTables。

數(shù)據(jù)模型:鍵值對(duì)

例子:Membase, Riak

優(yōu)點(diǎn):處理大量數(shù)據(jù),快速處理大量讀寫請(qǐng)求。編程友好。

BigTable類型數(shù)據(jù)庫

源起:Google的論文 BigTable。

數(shù)據(jù)模型:列簇,每一行在理論上都是不同的

例子:HBase, Hypertable, Cassandra

優(yōu)點(diǎn):處理大量數(shù)據(jù),應(yīng)對(duì)極高寫負(fù)載,高可用,支持跨數(shù)據(jù)中心, MapReduce。

數(shù)據(jù)結(jié)構(gòu)服務(wù)

源起: ?

數(shù)據(jù)模型:字典操作,lists, sets和字符串值

例子:Redis

優(yōu)點(diǎn):不同于以前的任何數(shù)據(jù)庫

網(wǎng)格數(shù)據(jù)庫

源起:數(shù)據(jù)網(wǎng)格和元組空間研究。

數(shù)據(jù)模型:基于空間的架構(gòu)

例子:GigaSpaces, Coherence

優(yōu)點(diǎn):適于事務(wù)處理的高性能和高擴(kuò)展性

你的應(yīng)用應(yīng)該用什么?

關(guān)鍵是要意識(shí)到不同的應(yīng)用需要不同的數(shù)據(jù)模型和產(chǎn)品。選擇合適的數(shù)據(jù)模型和產(chǎn)品。

要了解你的應(yīng)用需要什么樣的數(shù)據(jù)模型可以看 What The Heck Are You Actually Using NoSQL For? 在這篇文章里我總結(jié)了一些特色各異的非常規(guī)的使用場(chǎng)景。

適應(yīng)你的需求和應(yīng)用場(chǎng)景。依次而為你就能找到最適合你的架構(gòu)的產(chǎn)品。無論NoSQL還是SQL都不重要。

綜合考慮數(shù)據(jù)模型、產(chǎn)品特性和應(yīng)用情景。不同產(chǎn)品功能各異,只憑數(shù)據(jù)模型來決定選擇誰是不可能的。

哪個(gè)產(chǎn)品具有你最需要的特點(diǎn)哪個(gè)就是最好的。

假如你的應(yīng)用有以下需求:

復(fù)雜事物,如果你不能承受數(shù)據(jù)丟失的風(fēng)險(xiǎn)或者你想要一個(gè)簡(jiǎn)單的事務(wù)編程模型可以選擇關(guān)系數(shù)據(jù)庫和網(wǎng)格數(shù)據(jù)庫。

例子:一個(gè)庫存系統(tǒng)需要完整的ACID特性。如果我在買了一個(gè)東西后才被告知它已經(jīng)售罄我會(huì)非常不快。不不想要補(bǔ)償,我只要我買的東西。

擴(kuò)展性,NoSQL或SQL皆可,目標(biāo)產(chǎn)品要支持水平擴(kuò)展、分區(qū)、在線增減硬件、負(fù)載均衡、自動(dòng)分片、數(shù)據(jù)平衡和容錯(cuò)等特性。

追求高可用性,可用Bigtable類型的等支持最終一致性的數(shù)據(jù)庫。

需要處理長期的快速讀寫,可以看看文檔數(shù)據(jù)庫,Key-value數(shù)據(jù)庫或者內(nèi)存數(shù)據(jù)庫,還可以考慮SSD。

要實(shí)現(xiàn)社會(huì)化網(wǎng)絡(luò),第一選擇應(yīng)該是圖數(shù)據(jù)庫。其次像Riak這樣支持關(guān)系的數(shù)據(jù)庫也可以。一個(gè)支持簡(jiǎn)單SQL join操作的內(nèi)存關(guān)系數(shù)據(jù)庫能夠處理數(shù)據(jù)量不大的情況。Redis’ set 和list 操作就是這樣。

假如你的應(yīng)用有以下需求:

需要不同的訪問方式和數(shù)據(jù)類型的話可以看看文檔數(shù)據(jù)庫,它們?cè)谶@方面很靈活。

大數(shù)據(jù)量的離線分析首先應(yīng)該考慮Hadoop,其次是其他支持MapReduce的產(chǎn)品。當(dāng)然,支持MapReduce與擅長MapReduce處理不是一回事。

如需跨越多個(gè)數(shù)據(jù)中心,可選用基于Bigtable模型的產(chǎn)品,或其分布式的,能解決延遲問題,分區(qū)容錯(cuò)性問題的產(chǎn)品。

CRUD類型的應(yīng)用可以考慮文檔數(shù)據(jù)庫,這樣不需要join就可訪問復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

搜索可以考慮Riak。

需要lists, sets, queues, publish-subscribe等數(shù)據(jù)結(jié)構(gòu)的話,可以考慮Redis,它的分布式鎖等特性也非常有用。

編程友好,如果要使用JSON, HTTP, REST, Javascript等程序員喜聞樂見的數(shù)據(jù)類型,第一選擇就是文檔數(shù)據(jù)庫和Key-value數(shù)據(jù)庫。

假如你的應(yīng)用有以下需求:

用于實(shí)時(shí)事務(wù)處理的物化視圖,可以考慮VoltDB,非常適合于快速處理大量事務(wù)。

企業(yè)級(jí)支持及服務(wù)級(jí)協(xié)議 ,可以尋找市場(chǎng)上以此為賣點(diǎn)的產(chǎn)品,如Membase。

要記錄連續(xù)的大量數(shù)據(jù),又對(duì)一致性無太高要求,可以看看Bigtable類型數(shù)據(jù)庫,因?yàn)樗ぷ髟诜植际轿募到y(tǒng)上,可以處理大規(guī)模的寫入請(qǐng)求。

需要盡可能使用簡(jiǎn)單,請(qǐng)考慮PAAS方案,用這種方案你自己幾乎不需要做什么。

如果你的產(chǎn)品要賣給企業(yè)客戶請(qǐng)考慮關(guān)系數(shù)據(jù)庫,因?yàn)樗麄兞?xí)慣于關(guān)系數(shù)據(jù)庫。

要?jiǎng)討B(tài)構(gòu)建對(duì)象間的關(guān)系,對(duì)象的屬性能夠動(dòng)態(tài)加減,可以考慮圖數(shù)據(jù)庫,因?yàn)樗恍枰猻chema,可以在代碼中隨需建模。

要支持大影音文件,可以看看像S3這樣的存儲(chǔ)服務(wù)。NoSQL不適于存儲(chǔ)BLOBS,盡管MongoDB也提供了文件服務(wù)。

假如你的應(yīng)用有以下需求:

要快速批量上傳大量數(shù)據(jù),得尋找支持這種場(chǎng)景的產(chǎn)品。但是大多數(shù)產(chǎn)品都不支持批量操作。

易于變化,要選擇支持動(dòng)態(tài)schema的文檔數(shù)據(jù)庫和 Key-value數(shù)據(jù)庫。它支持可選域,不需要修改schema即可增加、減少域。

為了支持完整性約束,選擇支持SQL DDL的數(shù)據(jù)庫,可以在存儲(chǔ)過程或者應(yīng)用代碼中實(shí)現(xiàn)。

深度連接用圖數(shù)據(jù)庫,它支持實(shí)體鍵間的快速定位。

關(guān)鍵字:數(shù)據(jù)模型PaaS實(shí)時(shí)事務(wù)

本文摘自:51CTO

x 數(shù)據(jù)庫各個(gè)派系的起源、應(yīng)用場(chǎng)景和選擇指南 掃一掃
分享本文到朋友圈
當(dāng)前位置:大數(shù)據(jù)數(shù)據(jù)庫 → 正文

數(shù)據(jù)庫各個(gè)派系的起源、應(yīng)用場(chǎng)景和選擇指南

責(zé)任編輯:editor005 |來源:企業(yè)網(wǎng)D1Net  2015-03-03 14:21:59 本文摘自:51CTO

現(xiàn)在我們站在各個(gè)用例的角度上來考慮那種系統(tǒng)適合于這些用例。你的意見是?

首先,我們要縱覽各種數(shù)據(jù)模型。這些模型的分類方法來自于Emil Eifrem 和 NoSQL databases。

文檔數(shù)據(jù)庫

源起:受Lotus Notes啟發(fā)。

數(shù)據(jù)模型:包含了key-value的文檔集合

例子:CouchDB, MongoDB

優(yōu)點(diǎn):數(shù)據(jù)模型自然,編程友好,快速開發(fā),web友好,CRUD。

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

源起: 歐拉和圖理論。

數(shù)據(jù)模型:節(jié)點(diǎn)和關(guān)系,也可處理鍵值對(duì)。

例子:AllegroGraph, InfoGrid, Neo4j

優(yōu)點(diǎn):解決復(fù)雜的圖問題。

關(guān)系數(shù)據(jù)庫

源起: E. F. Codd 在A Relational Model of Data for Large Shared Data Banks提出的

數(shù)據(jù)模型:各種關(guān)系

例子:VoltDB, Clustrix, MySQL

優(yōu)點(diǎn):高性能、可擴(kuò)展的OLTP,支持SQL,物化視圖,支持事務(wù),編程友好。

對(duì)象數(shù)據(jù)庫

源起:圖數(shù)據(jù)庫研究

數(shù)據(jù)模型:對(duì)象

例子:Objectivity, Gemstone

優(yōu)點(diǎn):復(fù)雜對(duì)象模型,快速鍵值訪問,鍵功能訪問,以及圖數(shù)據(jù)庫的優(yōu)點(diǎn)。

Key-Value數(shù)據(jù)庫

源起:Amazon的論文 Dynamo 和 Distributed HashTables。

數(shù)據(jù)模型:鍵值對(duì)

例子:Membase, Riak

優(yōu)點(diǎn):處理大量數(shù)據(jù),快速處理大量讀寫請(qǐng)求。編程友好。

BigTable類型數(shù)據(jù)庫

源起:Google的論文 BigTable。

數(shù)據(jù)模型:列簇,每一行在理論上都是不同的

例子:HBase, Hypertable, Cassandra

優(yōu)點(diǎn):處理大量數(shù)據(jù),應(yīng)對(duì)極高寫負(fù)載,高可用,支持跨數(shù)據(jù)中心, MapReduce。

數(shù)據(jù)結(jié)構(gòu)服務(wù)

源起: ?

數(shù)據(jù)模型:字典操作,lists, sets和字符串值

例子:Redis

優(yōu)點(diǎn):不同于以前的任何數(shù)據(jù)庫

網(wǎng)格數(shù)據(jù)庫

源起:數(shù)據(jù)網(wǎng)格和元組空間研究。

數(shù)據(jù)模型:基于空間的架構(gòu)

例子:GigaSpaces, Coherence

優(yōu)點(diǎn):適于事務(wù)處理的高性能和高擴(kuò)展性

你的應(yīng)用應(yīng)該用什么?

關(guān)鍵是要意識(shí)到不同的應(yīng)用需要不同的數(shù)據(jù)模型和產(chǎn)品。選擇合適的數(shù)據(jù)模型和產(chǎn)品。

要了解你的應(yīng)用需要什么樣的數(shù)據(jù)模型可以看 What The Heck Are You Actually Using NoSQL For? 在這篇文章里我總結(jié)了一些特色各異的非常規(guī)的使用場(chǎng)景。

適應(yīng)你的需求和應(yīng)用場(chǎng)景。依次而為你就能找到最適合你的架構(gòu)的產(chǎn)品。無論NoSQL還是SQL都不重要。

綜合考慮數(shù)據(jù)模型、產(chǎn)品特性和應(yīng)用情景。不同產(chǎn)品功能各異,只憑數(shù)據(jù)模型來決定選擇誰是不可能的。

哪個(gè)產(chǎn)品具有你最需要的特點(diǎn)哪個(gè)就是最好的。

假如你的應(yīng)用有以下需求:

復(fù)雜事物,如果你不能承受數(shù)據(jù)丟失的風(fēng)險(xiǎn)或者你想要一個(gè)簡(jiǎn)單的事務(wù)編程模型可以選擇關(guān)系數(shù)據(jù)庫和網(wǎng)格數(shù)據(jù)庫。

例子:一個(gè)庫存系統(tǒng)需要完整的ACID特性。如果我在買了一個(gè)東西后才被告知它已經(jīng)售罄我會(huì)非常不快。不不想要補(bǔ)償,我只要我買的東西。

擴(kuò)展性,NoSQL或SQL皆可,目標(biāo)產(chǎn)品要支持水平擴(kuò)展、分區(qū)、在線增減硬件、負(fù)載均衡、自動(dòng)分片、數(shù)據(jù)平衡和容錯(cuò)等特性。

追求高可用性,可用Bigtable類型的等支持最終一致性的數(shù)據(jù)庫。

需要處理長期的快速讀寫,可以看看文檔數(shù)據(jù)庫,Key-value數(shù)據(jù)庫或者內(nèi)存數(shù)據(jù)庫,還可以考慮SSD。

要實(shí)現(xiàn)社會(huì)化網(wǎng)絡(luò),第一選擇應(yīng)該是圖數(shù)據(jù)庫。其次像Riak這樣支持關(guān)系的數(shù)據(jù)庫也可以。一個(gè)支持簡(jiǎn)單SQL join操作的內(nèi)存關(guān)系數(shù)據(jù)庫能夠處理數(shù)據(jù)量不大的情況。Redis’ set 和list 操作就是這樣。

假如你的應(yīng)用有以下需求:

需要不同的訪問方式和數(shù)據(jù)類型的話可以看看文檔數(shù)據(jù)庫,它們?cè)谶@方面很靈活。

大數(shù)據(jù)量的離線分析首先應(yīng)該考慮Hadoop,其次是其他支持MapReduce的產(chǎn)品。當(dāng)然,支持MapReduce與擅長MapReduce處理不是一回事。

如需跨越多個(gè)數(shù)據(jù)中心,可選用基于Bigtable模型的產(chǎn)品,或其分布式的,能解決延遲問題,分區(qū)容錯(cuò)性問題的產(chǎn)品。

CRUD類型的應(yīng)用可以考慮文檔數(shù)據(jù)庫,這樣不需要join就可訪問復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

搜索可以考慮Riak。

需要lists, sets, queues, publish-subscribe等數(shù)據(jù)結(jié)構(gòu)的話,可以考慮Redis,它的分布式鎖等特性也非常有用。

編程友好,如果要使用JSON, HTTP, REST, Javascript等程序員喜聞樂見的數(shù)據(jù)類型,第一選擇就是文檔數(shù)據(jù)庫和Key-value數(shù)據(jù)庫。

假如你的應(yīng)用有以下需求:

用于實(shí)時(shí)事務(wù)處理的物化視圖,可以考慮VoltDB,非常適合于快速處理大量事務(wù)。

企業(yè)級(jí)支持及服務(wù)級(jí)協(xié)議 ,可以尋找市場(chǎng)上以此為賣點(diǎn)的產(chǎn)品,如Membase。

要記錄連續(xù)的大量數(shù)據(jù),又對(duì)一致性無太高要求,可以看看Bigtable類型數(shù)據(jù)庫,因?yàn)樗ぷ髟诜植际轿募到y(tǒng)上,可以處理大規(guī)模的寫入請(qǐng)求。

需要盡可能使用簡(jiǎn)單,請(qǐng)考慮PAAS方案,用這種方案你自己幾乎不需要做什么。

如果你的產(chǎn)品要賣給企業(yè)客戶請(qǐng)考慮關(guān)系數(shù)據(jù)庫,因?yàn)樗麄兞?xí)慣于關(guān)系數(shù)據(jù)庫。

要?jiǎng)討B(tài)構(gòu)建對(duì)象間的關(guān)系,對(duì)象的屬性能夠動(dòng)態(tài)加減,可以考慮圖數(shù)據(jù)庫,因?yàn)樗恍枰猻chema,可以在代碼中隨需建模。

要支持大影音文件,可以看看像S3這樣的存儲(chǔ)服務(wù)。NoSQL不適于存儲(chǔ)BLOBS,盡管MongoDB也提供了文件服務(wù)。

假如你的應(yīng)用有以下需求:

要快速批量上傳大量數(shù)據(jù),得尋找支持這種場(chǎng)景的產(chǎn)品。但是大多數(shù)產(chǎn)品都不支持批量操作。

易于變化,要選擇支持動(dòng)態(tài)schema的文檔數(shù)據(jù)庫和 Key-value數(shù)據(jù)庫。它支持可選域,不需要修改schema即可增加、減少域。

為了支持完整性約束,選擇支持SQL DDL的數(shù)據(jù)庫,可以在存儲(chǔ)過程或者應(yīng)用代碼中實(shí)現(xiàn)。

深度連接用圖數(shù)據(jù)庫,它支持實(shí)體鍵間的快速定位。

關(guān)鍵字:數(shù)據(jù)模型PaaS實(shí)時(shí)事務(wù)

本文摘自:51CTO

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號(hào)-6 京公網(wǎng)安備 11010502049343號(hào)

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 黔西县| 宁化县| 元阳县| 平和县| 通榆县| 醴陵市| 屯门区| 和田县| 城步| 新源县| 崇明县| 汾西县| 乌兰察布市| 凌海市| 永昌县| 安吉县| 合山市| 互助| 苍山县| 于田县| 肥城市| 武定县| 札达县| 靖远县| 维西| 正定县| 板桥市| 昂仁县| 武鸣县| 恩平市| 怀宁县| 阜城县| 宁南县| 泰兴市| 新闻| 县级市| 吉林省| 大邑县| 尉犁县| 榆树市| 曲阳县|