成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NoSQL數據庫的35個應用場景

大數據
當縱覽一些不用的數據模型和產品的時候,綜合考慮數據模型、產品特性和應用情景。不同產品功能各異,只憑數據模型來決定選擇誰是不可能的。

之前有三篇文章

What The Heck Are You Actually Using NoSQL For?.

101 Questions To Ask When Considering A NoSQL Database.

What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications.

現在我們站在各個用例的角度上來考慮哪種系統適合于這些用例。

你的意見是?

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

文檔數據庫

  • 源起:受Lotus Notes啟發。
  • 數據模型:包含了key-value的文檔集合
  • 例子:CouchDB, MongoDB
  • 優點:數據模型自然,編程友好,快速開發,web友好,CRUD。
圖數據庫
  • 源起: 歐拉和圖理論。
  • 數據模型:節點和關系,也可處理鍵值對。
  • 例子:AllegroGraph, InfoGrid, Neo4j
  • 優點:解決復雜的圖問題。
關系數據庫

對象數據庫

  • 源起:圖數據庫研究
  • 數據模型:對象
  • 例子:Objectivity, Gemstone
  • 優點:復雜對象模型,快速鍵值訪問,鍵功能訪問,以及圖數據庫的優點。

Key-Value數據庫

  • 源起:Amazon的論文 Dynamo 和 Distributed HashTables
  • 數據模型:鍵值對
  • 例子:Membase, Riak
  • 優點:處理大量數據,快速處理大量讀寫請求。編程友好。
BigTable類型數據庫
  • 源起:Google的論文 BigTable
  • 數據模型:列簇,每一行在理論上都是不同的
  • 例子:HBase, Hypertable, Cassandra
  • 優點:處理大量數據,應對極高寫負載,高可用,支持跨數據中心, MapReduce。
數據結構服務
  • 源起: ?
  • 數據模型:字典操作,lists, sets和字符串值
  • 例子:Redis
  • 優點:不同于以前的任何數據庫
網格數據庫
  • 源起:數據網格和元組空間研究。
  • 數據模型:基于空間的架構
  • 例子:GigaSpaces, Coherence
  • 優點:適于事務處理的高性能和高擴展性

[[64930]]

你的應用應該用什么?

  • 關鍵是要意識到不同的應用需要不同的數據模型和產品。選擇合適的數據模型和產品。
  • 要了解你的應用需要什么樣的數據模型可以看 What The Heck Are You Actually Using NoSQL For? 在這篇文章里我總結了一些特色各異的非常規的使用場景。
  • 適應你的需求和應用場景。依次而為你就能找到最適合你的架構的產品。無論NoSQL還是SQL都不重要。
  • 綜合考慮數據模型、產品特性和應用情景。不同產品功能各異,只憑數據模型來決定選擇誰是不可能的。
  • 哪個產品具有你最需要的特點哪個就是***的。

假如你的應用有以下需求:

  • 復雜事物,如果你不能承受數據丟失的風險或者你想要一個簡單的事務編程模型可以選擇關系數據庫和網格數據庫。
  • 例子:一個庫存系統需要完整的ACID特性。如果我在買了一個東西后才被告知它已經售罄我會非常不快。不不想要補償,我只要我買的東西。
  • 擴展性,NoSQL或SQL皆可,目標產品要支持水平擴展、分區、在線增減硬件、負載均衡、自動分片、數據平衡和容錯等特性。
  • 追求高可用性,可用Bigtable類型的等支持最終一致性的數據庫。
  • 需要處理長期的快速讀寫,可以看看文檔數據庫,Key-value數據庫或者內存數據庫,還可以考慮SSD。
  • 要實現社會化網絡,***選擇應該是圖數據庫。其次像Riak這樣支持關系的數據庫也可以。一個支持簡單SQL join操作的內存關系數據庫能夠處理數據量不大的情況。Redis’ set 和list 操作就是這樣。

假如你的應用有以下需求:

  • 需要不同的訪問方式和數據類型的話可以看看文檔數據庫,它們在這方面很靈活。
  • 大數據量的離線分析首先應該考慮Hadoop,其次是其他支持MapReduce的產品。當然,支持MapReduce與擅長MapReduce處理不是一回事。
  • 如需跨越多個數據中心,可選用基于Bigtable模型的產品,或其分布式的,能解決延遲問題,分區容錯性問題的產品
  • CRUD類型的應用可以考慮文檔數據庫,這樣不需要join就可訪問復雜的數據結構。
  • 搜索可以考慮Riak。
  • 需要lists, sets, queues, publish-subscribe等數據結構的話,可以考慮Redis,它的分布式鎖等特性也非常有用。
  • 編程友好,如果要使用JSON, HTTP, REST, Javascript等程序員喜聞樂見的數據類型,***選擇就是文檔數據庫和Key-value數據庫。

假如你的應用有以下需求:

  • 用于實時事務處理的物化視圖,可以考慮VoltDB,非常適合于快速處理大量事務。
  • 企業級支持及服務級協議 ,可以尋找市場上以此為賣點的產品,如Membase。
  • 要記錄連續的大量數據,又對一致性無太高要求,可以看看Bigtable類型數據庫,因為它工作在分布式文件系統上,可以處理大規模的寫入請求。
  • 需要盡可能使用簡單,請考慮PAAS方案,用這種方案你自己幾乎不需要做什么。
  • 如果你的產品要賣給企業客戶請考慮關系數據庫,因為他們習慣于關系數據庫。
  • 要動態構建對象間的關系,對象的屬性能夠動態加減,可以考慮圖數據庫,因為它不需要schema,可以在代碼中隨需建模。
  • 要支持大影音文件,可以看看像S3這樣的存儲服務。NoSQL不適于存儲BLOBS,盡管MongoDB也提供了文件服務。

假如你的應用有以下需求:

  • 要快速批量上傳大量數據,得尋找支持這種場景的產品。但是大多數產品都不支持批量操作。
  • 易于變化,要選擇支持動態schema的文檔數據庫和 Key-value數據庫。它支持可選域,不需要修改schema即可增加、減少域。
  • 為了支持完整性約束,選擇支持SQL DDL的數據庫,可以在存儲過程或者應用代碼中實現。
  • 深度連接用圖數據庫,它支持實體鍵間的快速定位。
  • 為了讓計算靠近數據,減少數據在網絡中傳送的開銷,可以考慮存儲過程。關系數據庫,網個數據庫,文檔數據庫和Key-value數據庫都支持存儲過程。

假如你的應用有以下需求:

  • 要存儲BLOB數據,可選擇Key-value數據庫。它可以存儲網頁或者復雜對象,后者在關系數據庫中要用join才能獲取,代價高昂。還可以降低延遲。
  • 選擇一個經過驗證的成熟產品,在處理擴展性問題的時候的時候選擇通用的方案(縱向擴展、調優、緩存、數據分片、反范式等等)
  • 多變的數據類型,數據不規整,列數不固定,復雜的數據結構等,考慮文檔數據庫,Key-value數據庫,和Bigtable型數據庫。它們的數據類型都比較靈活。
  • 需要快速的關系查詢,但是又不想自己實現,那么就選擇支持SQL的數據庫。
  • 能夠在云中操作,自動利用云的一切特性和好處,目前還沒有這樣的東西。

假如你的應用有以下需求:

  • 支持二級索引,通過不同的鍵來檢索,可以考慮關系數據庫和 Cassandra,后者新增了對二級索引的支持。
  • 規模不斷增長(真正的大數據場景),但是訪問不頻繁的數據可以使用Bigtable類型的數據庫,因為它的數據存儲在一個分布式文件系統上,很容易擴展 。
  • 要和其他服務集成,檢查數據庫是否提供某種寫后同步功能,以便能夠捕捉到數據庫變化,通知其它系統,保證一致性。
  • 容錯性,檢查在停電、分區故障以及其他故障場景下寫操作是否能夠成功。
  • 如果只是為了推動某個方向上的技術創新,似乎沒有現成的東西能夠達到這個目的,你得自己去創造一個新的。這可不是件容易事。
  • 移動平臺上可以用CouchDB/Mobile couchbase.

那個更好?

  • 為了25%的性能提升而遷移到NoSQL是不值得的。
  • 性能測試數據都有其特定的場景,不見得能適合你的情況。
  • 如果你的公司剛剛成立,還沒有一個成型的產品,并且你很愿意嘗試一些新東西,那么選擇SQL還是NoSQL對你而言需要費上些心思(言下之意,一張白紙好作畫,沒有既有系統的負擔就可以隨便折騰?)。
  • 數據量不大的時候性能差距并不明顯,但是當數據量變大的時候呢?
  • 沒有***的東西,如果你去Amazon的論壇上去看,上面充滿了對各種產品的性能和服務的抱怨,GAE也是一樣。每個產品都會有問題,你能解決你選擇的產品的問題嗎?

英文原文:35+ Use Cases For Choosing Your Next NoSQL Database

譯文鏈接:http://blog.jobbole.com/33936/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2015-10-22 15:09:12

NoSQL數據庫應用場景

2024-10-10 08:46:28

2015-03-03 12:21:51

數據模型NoSQL數據庫應用

2011-05-19 10:53:17

SQL Azure

2021-03-31 10:59:57

數據庫MySQLOracle

2024-04-26 08:10:49

2020-10-31 22:01:40

NoSQL數據庫

2024-05-08 07:17:29

向量數據庫數據架構大模型

2024-09-06 11:52:47

2025-04-25 00:50:00

DeepSeek大數據人工智能

2018-08-29 15:23:18

數據庫NoSQLMongoDB

2017-05-18 08:14:48

NoSQL數據庫場景

2012-10-23 09:32:07

2024-02-02 10:51:53

2021-09-06 15:39:00

大數據技術醫療

2024-03-05 10:03:17

NoSQL數據庫算法

2018-04-09 12:44:45

Docker使用場景開發

2015-01-06 09:48:34

Docker多租戶docker應用

2011-05-17 15:24:18

Shibboleth認證

2021-09-28 09:25:05

NoSQL數據庫列式數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久看精品 | 久久亚洲综合 | 国产精品一区二区久久 | 久久6视频 | 午夜免费网 | 手机在线观看av | 久久国产传媒 | 亚洲视频一区二区三区 | 亚洲精品一区二区三区蜜桃久 | 天天综合天天 | 精品久久影院 | 日韩亚洲视频在线 | 日韩中文字幕 | 亚洲国产成人精品久久久国产成人一区 | 国内自拍视频在线观看 | 欧美日韩国产在线观看 | 国产亚洲一区二区三区 | 国产亚洲精品美女久久久久久久久久 | 久久剧场| 91精品久久 | 婷婷亚洲综合 | 欧美精品在线免费 | 精品国产免费人成在线观看 | 91精品久久久久久久久中文字幕 | 欧美天堂一区 | 亚洲精品一区二区网址 | 新超碰97 | 国产91一区 | 亚洲精品福利视频 | 亚洲精品大全 | 国产精品久久久 | 日本中出视频 | 国产成人区 | 久久久久久国产 | 日韩人体视频 | 色偷偷噜噜噜亚洲男人 | 99精品网| 久久天堂网 | 午夜av成人| 国产成人精品午夜 | 人人色视频 |