1001種玩法 | 數據存儲 (3)

InfluxDB:開源分佈式數據庫mongodb

InfluxDB 是一個開源,分佈式,時間序列,事件,可度量和無外部依賴的數據庫。新智雲數據庫

它有三大特性:json

 

1. Time Series (時間序列):你可使用與時間有關的相關函數(如最大,最小,求和等)瀏覽器

2. Metrics(度量):你能夠實時對大量數據進行計算網絡

3. Eevents(事件):它支持任意的事件數據數據結構

 

HTTP API:分佈式

influxdb.writePoints("user_events", [{email: "paul@influxdb.org", state: "NY", type: "click"}]);函數

 

查詢語句:工具

series = influxdb.query(佈局

 "select percentile(value, 90) from response_times " +

 "group by time(1h) where time > now() - 2d;");

series = influxdb.query(

 "select count(email) from events " +

 "group by time(10m) " +

 "where email =~ /.*gmail\.com/ and time > now() - 1d");

 

 

內置瀏覽器:你能夠經過自帶的瀏覽工具查看你的數據。

適用於個性化分析:它適合於各類個性化分析。

 

 

Apache Cassandra:開源分佈式Key-Value存儲系統

 

Apache Cassandra是一套開源分佈式Key-Value存儲系統。它最初由Facebook開發,用於儲存特別大的數據。Facebook目前在使用此係統。

 

主要特性:

 

分佈式

基於column的結構化

高伸展性

Cassandra的主要特色就是它不是一個數據庫,而是由一堆數據庫節點共同構成的一個分佈式網絡服務,對Cassandra 的一個寫操做,會被複制到其餘節點上去,對Cassandra的讀操做,也會被路由到某個節點上面去讀取。對於一個Cassandra羣集來講,擴展性能 是比較簡單的事情,只管在羣集裏面添加節點就能夠了。

 

Cassandra是一個混合型的非關係的數據庫,相似於Google的BigTable。其主要功能比 Dynomite(分佈式的Key-Value存 儲系統)更豐富,但支持度卻不如文檔存儲MongoDB(介於關係數據庫和非關係數據庫之間的開源產品,是非關係數據庫當中功能最豐富,最像關係數據庫 的。支持的數據結構很是鬆散,是相似json的bjson格式,所以能夠存儲比較複雜的數據類型。)Cassandra最初由Facebook開發,後轉變成了開源項目。它是一個網絡社交雲計算方面理想的數據庫。以Amazon專有的徹底分佈式的Dynamo爲基礎,結合了Google BigTable基於列族(Column Family)的數據模型。P2P去中心化的存儲。不少方面均可以稱之爲Dynamo 2.0。

 

和其餘數據庫比較,有幾個突出特色:

 

模式靈活 :使用Cassandra,像文檔存儲,你沒必要提早解決記錄中的字段。你能夠在系統運行時隨意的添加或移除字段。這是一個驚人的效率提高,特別是在大型部 署上。

真正的可擴展性 :Cassandra是純粹意義上的水平擴展。爲給集羣添加更多容量,能夠指向另外一臺電腦。你沒必要重啓任何進程,改變應用查詢,或手動遷移任何數據。

多數據中心識別 :你能夠調整你的節點佈局來避免某一個數據中心起火,一個備用的數據中心將至少有每條記錄的徹底複製。

 

一些使Cassandra提升競爭力的其餘功能:

 

範圍查詢 :若是你不喜歡所有的鍵值查詢,則能夠設置鍵的範圍來查詢。

列表數據結構 :在混合模式能夠將超級列添加到5維。對於每一個用戶的索引,這是很是方便的。

分佈式寫操做 :有能夠在任何地方任什麼時候間集中讀或寫任何數據。而且不會有任何單點失敗。

 

 

MongoDB

 

MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構很是鬆散,是相似json的bjson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。

 

它的特色是高性能、易部署、易使用,存儲數據很是方便。主要功能特性有:

 

面向集合存儲,易存儲對象類型的數據。

模式自由。

支持動態查詢。

支持徹底索引,包含內部對象。

支持查詢。

支持複製和故障恢復。

使用高效的二進制數據存儲,包括大型對象(如視頻等)。

自動處理碎片,以支持雲計算層次的擴展性

支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。

文件存儲格式爲BSON(一種JSON的擴展)

可經過網絡訪問

所謂「面向集合」(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱爲一個集合(Collenction)。每一個 集合在數據庫中都有一個惟一的標識名,而且能夠包含無限數目的文檔。集合的概念相似關係型數據庫(RDBMS)裏的表(table),不一樣的是它不須要定 義任何模式(schema)。

模式自由(schema-free),意味着對於存儲在mongodb數據庫中的文件,咱們不須要知道它的任何結構定義。若是須要的話,你徹底能夠把不一樣結構的文件存儲在同一個數據庫裏。

存儲在集合中的文檔,被存儲爲鍵-值對的形式。鍵用於惟一標識一個文檔,爲字符串類型,而值則能夠是各中複雜的文件類型。咱們稱這種存儲形式爲BSON(Binary Serialized dOcument Format)。

 

MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口爲27017。推薦運行在64位平臺,由於MongoDB

 

在32位模式運行時支持的最大文件尺寸爲2GB。

 

MongoDB把數據存儲在文件中(默認路徑爲:/data/db),爲提升效率使用內存映射文件進行管理。

 

相關文章
相關標籤/搜索