NoSQL資料庫概覽及其與SQL文法的比較(1)
文章摘要】
HBase是一個高可靠性、高效能、面向列、可伸縮的分布式儲存系統,同時也是知名的NoSQL資料庫之一。NoSQL資料庫的產生就是為瞭解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用的難題。
本文對NoSQL資料庫的定義、分類、特徵、當前比較流行的NoSQL資料庫系統等進行了簡單的介紹,並對NoSQL和SQL文法進行了簡單的比較,為大家對NoSQL資料庫的學習提供了有益的參考。
一、NoSQL的出現
關係型資料庫系統多年來在解決資料存放區、服務和處理問題方面取得了巨大的成功。一些大型的公司使用關係型資料庫建立了自己的系統,如聯機交易處理系統和後端分析應用系統。聯機交易處理(OLTP)系統用來即時記錄交易資訊。對這類系統的期望是能夠快速返迴響應資訊(一般在毫秒級)。線上分析處理(OLAP)系統用來分析查詢所儲存的資料。OLAP屬於商業智慧的範疇,資料需要研究、處理和分析,以便收集資訊,進一步驅動商業決策。
關係型資料庫的內部設計由關係演算法決定,這些系統需要預先定義一個模式(schema)和資料要遵守的類型。SQL是與這些系統互動的標準方式。但在對象-關係不匹配問題出現的場合,SQL就不是表達訪問模式的最好方式了。例如目前炙手可熱的大資料領域,關係型資料庫不能很好地工作。
有關大資料常見定義包括:第一,大資料意味著資料足夠大,為了從這些資料中獲得一些真知灼見,你不得不研究它;第二,大資料就是不再適用於單台機器的資料。這些觀點並不完整,我們需要用一種根本上不同的方式來考慮資料,從如何驅動商業價值的角度來考慮資料,這種資料就是大資料。
在大資料領域中,系統需要能夠適應不同種類的資料格式和資料來源,不需要預先嚴格定義模式,並且能夠處理大規模資料。這樣,NoSQL就出現了。
二、NoSQL的定義
NoSQL(NoSQL= Not Only SQL ),意即“不僅僅是SQL”,是一項全新的資料庫革命性運動。NoSQL的擁護者們提倡運用非關係型的資料存放區。大多數資料庫技術不能保證支援ACID(原子性、一致性、隔離性和持久性),而且大部分技術都是開源項目,這些技術作為整體被稱為NoSQL。
三、NoSQL的分類
一般將NoSQL資料庫分為四大類:索引值(Key-Value)儲存資料庫、列儲存資料庫、文檔型資料庫和圖形(Graph)資料庫。它們的資料模型、優缺點、典型應用情境如表1所示。
表1 四大NoSQL資料庫分析
四、NoSQL的特徵
NoSQL資料庫並沒有一個統一的架構,但是它們都普遍存在表2所示的一些共同特徵。
表2 NoSQL的特徵
五、常見的NoSQL資料庫
比較適合採用NoSQL資料庫的場合是:(1)資料模型比較簡單;(2)需要靈活性更強的IT系統;(3)對資料庫效能要求較高;(4)不需要高度的資料一致性;(5)對於給定key,比較容易映射複雜值的環境。
常見的NoSQL資料庫如表3所示。
表3常見的NoSQL資料庫