大數據時代的 9 大Key

在過去的十年中,計算世界已經改變。現在不僅在大公司,甚至一些小公司也積累了TB量級的數據。各種規模的組織開始有了處理大數據的需求,而目前關係型資料庫在可縮放方面幾乎已經達到極限。一個解決方案是使用鍵值(Key-Value)存儲資料庫,這是一種NoSQL(非關係型資料庫)模型,其數據按照鍵值對的形式進行組織、索引和存儲。KV存儲非常適合不涉及過多數據關係業務關係的業務數據,同時能有效減少讀寫磁碟的次數,比SQL資料庫存儲擁有更好的讀寫性能。本文就為你介紹9種用於大數據處理的免費鍵值存儲資料庫。1. Aerospike 社區版

Aerospike是一個以分散式為核心基礎,可基於行隨機存取內存中索引、數據或SSD存儲中數據的資料庫。Aerospike主要用於廣告業務,作為一個伺服器端的cookie存儲來使用,在這種場景下讀取和寫入性能是至關重要的。官網:http://www.aerospike.com/press-releases/aerospike-launches-free-community-edition/相關資料:Documentation、FAQ、Blog、Forums2. LevelDB

Leveldb是Google開發的一個非常高效的kv資料庫,支持billion級別的數據量,在這個數量級別下還有著非常高的性能,主要歸功於它的良好的設計,特別是LSM演算法。Leveldb已經作為存儲引擎被Riak和Kyoto Tycoon所支持,在國內淘寶的Tair開源key-value存儲也已經將LevelDB作為其持久化存儲引擎,並部署在線上使用。官網:http://code.google.com/p/leveldb/相關資料:Benchmarks、Mailing List、Twitter3. Scalaris

Scalaris 是一個採用Erlang開發的分散式 key-value 存儲系統,提供的 API 包括:Java、Python、Ruby和JSON。官網:http://scalaris.googlecode.com/相關資料:Users and Developers Guide、FAQ、Mailing List4. Project Voldemort

Voldemort是一個分散式鍵值存儲系統,是Amazon"s Dynamo的一個開源克隆。特性如下:

  • 支持自動複製數據到多個伺服器上。
  • 支持數據自動分割所以每個伺服器只包含總數據的一個子集。
  • 提供伺服器故障透明處理功能。
  • 支持可撥插的序化支持,以實現複雜的鍵-值存儲,它能夠很好的5.集成常用的序化框架如:Protocol Buffers、Thrift、Avro和Java Serialization。
  • 數據項都被標識版本能夠在發生故障時盡量保持數據的完整性而不會影響系統的可用性。
  • 每個節點相互獨立,互不影響。
  • 支持可插拔的數據放置策略
  • 官網:http://project-voldemort.com/相關資料:Wiki、Mailing List、Github、Project Voldemort: Scaling Simple Storage、Serving Large-scale Batch Computed Data with Project Voldemort5. HyperDex

    HyperDex是一個分散式、可搜索的鍵值存儲系統,特性如下:

  • 分散式KV存儲,系統性能能夠隨節點數目線性擴展
  • 吞吐和延時都能秒殺現在風頭正勁的MonogDB,吞吐甚至強於Redis
  • 使用了hyperspace hashing技術,使得對存儲的K-V的任意屬性進行查詢成為可能
  • 官網:http://hyperdex.org/相關資料:Documentation、Blog、GitHub、FAQ、Announcement Mailing List、Discussion Mailing List6. Berkeley DB

    Berkeley DB是一個開源的文件資料庫,介於關係資料庫與內存資料庫之間,使用方式與內存資料庫類似,它提供的是一系列直接訪問資料庫的函數,而不是像關係資料庫那樣需要網路通訊、SQL解析等步驟。官網:http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html相關資料:Wiki、Forums、Launchpad7. Apache Accumulo

    Apache Accumulo 是一個可靠的、可伸縮的、高性能的排序分散式的 Key-Value 存儲解決方案,基於單元訪問控制以及可定製的伺服器端處理。Accumulo使用 Google BigTable 設計思路,基於 Apache Hadoop、Zookeeper 和 Thrift 構建。官網:http://accumulo.apache.org/相關資料:Manual、Mailing Lists、Apache Accumulo Users Group8. Redis

    Redis是一個高性能的key-value存儲系統,和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)和zset(有序集合)。與memcached一樣,為了保證效率,數據都是緩存在內存中,區別的是Redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了主從同步。Redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部分場合可以對關係資料庫起到很好的補充作用。它提供了Python、Ruby、Erlang、PHP客戶端,使用很方便。官網:http://redis.io/相關資料:Documentation、Tutorials、FAQ、Mailing List、Twitter9. Apache Cassandra

    Apache Cassandra是一個混合型的非關係資料庫,它最初由Facebook開發,用於儲存特別大的數據。Cassandra的主要特點就是它不是一個資料庫,而是由一堆資料庫節點共同構成的一個分散式網路服務,對Cassandra 的一個寫操作,會被複制到其它節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對於一個Cassandra群集來說,擴展性能是比較簡單的事情,只管在群集裡面添加節點就可以了。官網:http://cassandra.apache.org/相關資料:Wiki、Getting StartedVia linuxlinks
    推薦閱讀:

    被同齡人拋棄的焦慮來自哪裡,你真的被拋棄了嗎
    看臉時代,你的臉過關嗎(轉載)
    做個真正的新時代女性
    關之琳明戀時代愛得張揚 與台富商戀情即將浮面
    人物 | 龍頭之死:一位西西里黑幫首領的大時代

    TAG:大數據 | 數據 | 時代 | 大數據時代 |