回覆列表
  • 1 # 使用者4631824322

    大資料時代是當前最吃香的名詞,其應用到世界的各個領域和行業。我知道大概有幾種:

    1.關係資料庫

    2.列式資料庫

    3.鍵值資料庫

    4.影象圖形資料庫

    5.分散式文件資料庫

    下面分別一一說明其代表的產品以及其主要特點。

    關係資料庫

    關係型資料一直為我們所用,比如Oracle,MySQL,SQL Server,Postgress.儲存到關係資料庫的資料必須滿足一定要求,用通用的話來說就是滿足一定的資料正規化,比如主鍵,外來鍵,資料的冗餘;舉個例子,學生的資訊可以儲存到資料庫中,班級的資訊也可以儲存到資料庫中,而且一個班級包括很多學生,他們之間透過外來鍵還可以建立一種1對多的對應關係,這些資訊和關係可以透過關係型資料庫進行儲存,值得注意的是,關係型資料庫,需要預先定義其表結構,而且儲存前需要定義其對應的資料型別或者長度,一旦有新的屬性加入,就要修改其表的結構。傳統的關係型資料庫其實就是行式資料庫,就是一行一行的方式來儲存資訊的。

    列式資料庫

    列式資料庫一般應用於對應大量的字串資料,例項如HBase,cassandra,Sybase IQ,HP Vertica、EMC Greenplum等。列式資料庫從一開始就是面向大資料環境下資料倉庫的資料分析而產生,主要適合於批次資料處理和即時查詢。下面這2張圖形象的說明了什麼是列式資料庫,什麼是行式資料庫已經兩者之間的區別。

    極高的裝載速度 (最高可以等於所有硬碟IO 的總和,基本是極限了)

    適合大量的資料而不是小資料

    高效的壓縮率,不僅節省儲存空間也節省計算記憶體和CPU,為什麼具有高壓縮率呢?因為儲存的資料型別是一樣的。

    非常適合做聚合操作。

    鍵值資料庫

    即Key-Value儲存,簡稱KV儲存。它是NoSQL儲存的一種方式。它的資料按照鍵值對的形式進行組織,索引和儲存。KV儲存非常適合不涉及過多資料關係業務關係的業務資料,同時能有效減少讀寫磁碟的次數,比SQL資料庫儲存擁有更好的讀寫效能。典型的產品有: 亞馬遜的DynamoDB,redis。

    圖形資料庫

    圖形資料庫不是專門用來儲存圖形影象的,而是因為其用圖狀結構來維持其資料之間的關係,所以叫做圖形資料庫。Neo4j,Sones就是其典型代表。

    在圖資料結構中,只有兩種基本的資料型別 即節點(Node)和關係(Relationship),節點(Node)可以擁有屬性,關係(Relationship)也可以擁有屬性 ,屬性都是以鍵值對的方式儲存,節點(Node)與節點(Node)的聯絡透過關係(Relationship)進行建立,他們建立的關係是有方向的。

    Neo4j是一個高效能的,NOSQL圖形資料庫,它將結構化資料儲存在網路上而不是表中。Neo4j也可以被看作是一個高效能的圖引擎,該引擎具有成熟資料庫的所有特性。程式設計師工作在一個面向物件的、靈活的網路結構下而不是嚴格、靜態的表中——但是他們可以享受到具備完全的事務特性、企業級的資料庫的所有好處。Neo4j因其嵌入式、高效能、輕量級等優勢,越來越受到關注。其支援幾乎所有的主流的開發語言

    分散式文件儲存資料庫

    不需要定義,應用靈活,文件儲存支援對結構化資料的訪問,不同於關係模型的是,文件儲存沒有強制的架構。與關係模型不同的是,文件儲存模型支援巢狀結構。例如,文件儲存模型支援XML和JSON文件,欄位的“值”又可以巢狀儲存其它文件。文件儲存模型也支援陣列和列值鍵。與鍵值儲存不同的是,文件儲存關心文件的內部結構。這使得儲存引擎可以直接支援二級索引,從而允許對任意欄位進行高效查詢。支援文件巢狀儲存的能力,使得查詢語言具有搜尋巢狀物件的能力,XQuery就是一個例子。MongoDB透過支援在查詢中指定JSON欄位路徑實現類似的功能。比如,CouchDB,MongoDB等。

  • 中秋節和大豐收的關聯?
  • 發我一些優美的句子?