目前儲存海量資料的技術主要包括NoSQL、分散式檔案系統、和傳統關係型資料庫。隨著網際網路行業不斷的發展,產生的資料量越來越多,並且這些資料的特點是半結構化和非結構化,資料很可能是不精確的,易變的。這樣傳統關係型資料庫就無法發揮它的優勢。因此,目前網際網路行業偏向於使用NoSQL和分散式檔案系統來儲存海量資料。
下面介紹下常用的NoSQL和分散式檔案系統。
網際網路行業常用的NoSQL有:HBase、MongoDB、Couchbase、LevelDB。
HBase是Apache Hadoop的子專案,理論依據為Google論文 Bigtable: A Distributed Storage System for Structured Data開發的。HBase適合儲存半結構化或非結構化的資料。HBase的資料模型是稀疏的、分散式的、持久穩固的多維map。HBase也有行和列的概念,這是與RDBMS相同的地方,但卻又不同。HBase底層採用HDFS作為檔案系統,具有高可靠性、高效能。
MongoDB是一種支援高效能資料儲存的開源文件型資料庫。支援嵌入式資料模型以減少對資料庫系統的I/O、利用索引實現快速查詢,並且嵌入式文件和集合也支援索引,它複製能力被稱作複製集(replica set),提供了自動的故障遷移和資料冗餘。MongoDB的分片策略將資料分佈在伺服器叢集上。
Couchbase這種NoSQL有三個重要的元件:Couchbase伺服器、Couchbase Gateway、Couchbase Lite。Couchbase伺服器,支援橫向擴充套件,面向文件的資料庫,支援鍵值操作,類似於SQL查詢和內建的全文搜尋;Couchbase Gateway提供了用於RESTful和流式訪問資料的應用層API。Couchbase Lite是一款面向移動裝置和“邊緣”系統的嵌入式資料庫。Couchbase支援千萬級海量資料儲存
如果針對單個大檔案,譬如超過100MB的檔案,使用NoSQL儲存就不適當了。使用分散式檔案系統的優勢在於,分散式檔案系統隔離底層資料儲存和分佈的細節,展示給使用者的是一個統一的邏輯檢視。常用的分散式檔案系統有Google File System、HDFS、MooseFS、Ceph、GlusterFS、Lustre等。
目前儲存海量資料的技術主要包括NoSQL、分散式檔案系統、和傳統關係型資料庫。隨著網際網路行業不斷的發展,產生的資料量越來越多,並且這些資料的特點是半結構化和非結構化,資料很可能是不精確的,易變的。這樣傳統關係型資料庫就無法發揮它的優勢。因此,目前網際網路行業偏向於使用NoSQL和分散式檔案系統來儲存海量資料。
下面介紹下常用的NoSQL和分散式檔案系統。
NoSQL網際網路行業常用的NoSQL有:HBase、MongoDB、Couchbase、LevelDB。
HBase是Apache Hadoop的子專案,理論依據為Google論文 Bigtable: A Distributed Storage System for Structured Data開發的。HBase適合儲存半結構化或非結構化的資料。HBase的資料模型是稀疏的、分散式的、持久穩固的多維map。HBase也有行和列的概念,這是與RDBMS相同的地方,但卻又不同。HBase底層採用HDFS作為檔案系統,具有高可靠性、高效能。
MongoDB是一種支援高效能資料儲存的開源文件型資料庫。支援嵌入式資料模型以減少對資料庫系統的I/O、利用索引實現快速查詢,並且嵌入式文件和集合也支援索引,它複製能力被稱作複製集(replica set),提供了自動的故障遷移和資料冗餘。MongoDB的分片策略將資料分佈在伺服器叢集上。
Couchbase這種NoSQL有三個重要的元件:Couchbase伺服器、Couchbase Gateway、Couchbase Lite。Couchbase伺服器,支援橫向擴充套件,面向文件的資料庫,支援鍵值操作,類似於SQL查詢和內建的全文搜尋;Couchbase Gateway提供了用於RESTful和流式訪問資料的應用層API。Couchbase Lite是一款面向移動裝置和“邊緣”系統的嵌入式資料庫。Couchbase支援千萬級海量資料儲存
分散式檔案系統如果針對單個大檔案,譬如超過100MB的檔案,使用NoSQL儲存就不適當了。使用分散式檔案系統的優勢在於,分散式檔案系統隔離底層資料儲存和分佈的細節,展示給使用者的是一個統一的邏輯檢視。常用的分散式檔案系統有Google File System、HDFS、MooseFS、Ceph、GlusterFS、Lustre等。