共計 2449 個字符,預計需要花費 7 分鐘才能閱讀完成。
本篇內容主要講解“Nosql 的存儲類型有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Nosql 的存儲類型有哪些”吧!
地位
如果說一致性等其他理論是構建大數據組件以及 NosqL 的紐帶,那么存儲也就相當于我們的數據結構了,依據特定的數據結構,賦予相應的算法,其內涵就是在特定的存儲以及副本策略之上,來實現整體的處理模型。
存儲總論
傳統的關系類型的數據庫往往采用二維表結構來存儲和處理數據,整體原因。是關系數據庫模型比較簡單,同意實現,邏輯清晰。
在數據規模比較大的時候,如上的表結構可以簡單的滿足業務需求,可是在海量的數據挑戰的今天,二維表結構在一些應用的場景之上不再那么高效和靈活。于是從數據庫模型的角度,NOSQL 提出了全新的模型。
沿用了全新的設計
NoSql 通常不需要基于關系模型的固定表結構,通常而言,也就是無模式可言。Nosql 的存儲類型
1:鍵值類型 ? ? 1.1.1:數據模型??
鍵值存儲模型最主要的思想就是來自于 hash 表,在 hash 表之中會有一個特定的 key 和一個特定的 value。
key – value
純粹的一個 keyvalue 結構弱化了數據的結構,通常,你只需要 get,set 這樣的簡單操作即可。keyvalue 的設計在海量的數據處理之中,最大的特點是在于模型簡單,易于實現,非常適合通過 key 對于數據進行查詢和修改操作。
但是,一旦對于數據的批量,批量更新操作,keyvalue 在效率之上處于明顯的劣勢,同樣,由于模型的設計也不支持特別復雜邏輯的數據操作。
1.1.2:實例
Redis,Voldemort
1.1.3:應用場景
內存類型的緩沖,主要用于處理打數據的高訪問負載,也用于一些日志系統
1.1.4:優缺點
迅速的查找,數據無結構化,通常只是被當成字符串亦或者二進制的數據。
2:列式類型 2.1.1:數據模型
簡單的來說,我們的傳統數據庫是按照“行”來存儲,而我們的列方式的數據庫是按“列”來存儲的。
按行,還是按列,同一列的數據會盡可能的存儲在同一個硬盤的”頁“之中,大多數的硬盤頁在數據庫之中都被抽象為一個“列族”的概念,列族嘛,就是將多個列合并為一個小組,而從宏觀上來看,列族有點類比 keyvalue 之中的 value。
這類的數據模型比較適合數據分析和數據倉庫這類需要迅速查找且數據量大的應用。
2.2.2:實例
Cassandra 和 Hbase
2.2.3:應用場景
分布式的文件系統,將同一列數據存儲在一起。
2.2.4:優缺點
迅速的查找,可擴展性強,更容易的進行分布式的擴展。
3:文檔類型
?3.1.1:數據模型?
其主要的以 JSON 或者類 JSON 格式的文檔來進行存儲,是具有語義的
3.2.2:實例
MongoDB
3.2.3:應用場景
web 應用
3.2.4:優缺點
數據的要求并不嚴格,不需要預先定義結構,value 指向的是一個結構化數據。
可以做實時的查詢,并缺乏統一的查詢語法
數據分區與放置策
在之前的數據存儲的模型之上,我們還要考量數據的分區和放置的策略,主要的考量如下:
1:分區的意義
任何的事情出現都必有其存在的前提,條件,和理由。分區技術,簡單來說,就是一種分而治之的技術,他可以用來很方便的處理超大類型的表,通過將大表和索引分成可以管理的小塊,避免將每一個表都作為一個大的,單獨的對象來進行管理,為大量的數據提供了可伸縮性的可能。
分區所帶來的好處如下所示:
1.1.1:改善可管理性
對于分區帶來的最本質的特征就是:分區的粒度相對而言的變小了。滿足了之前關系數據庫系統時代“劃分并控制”的措施,通過分區,維護操作可集中于表的特殊部分。比如,你只需要備份一部分的分區而不是全量的數據了。
1.1.2:改善性能
1.1.3:改善可用性
1.1.2:改善可管理性
對于數據庫進行了一些分區的處理以后,通過對于分區的處理,通過對于分區的特別優化,我們還能夠使用分區技術其他的許多優點,
1.1.2.1: 分區的連接
在兩個表的連接的過程之中,可以將兩個表連接在一起,并且這兩個表都在連接按鍵上分區。智能化的分區可以將大型的拆分為小的連接。
1.1.2.1:分區的裁剪
分區的 Partitioning Pruning,也就是說最有效的通過分區改善性能的方法,好比你在 Hive 抑或是 impala 之中,在選取列的時候,必須過濾掉不必要的分區。
1.1.2.1:并行執行更新和刪除
分區能夠并行執行更新,刪除和合并語句,在訪問不同的分區的數據庫對象的過程之中,可以并行執行查詢語句和插入語句。
通常而言,表使用 “分區 key“分區,分區 key 是確定某一個行所在的分區的一組列,存在”范圍分區“,”列表分區“,”hash 分區“以及”組合分區“。
2:范圍分區
2.1:每一個分區由一些列分區的 key 來指定,用途最廣的就是按照時間范圍來分區。
3:列表分區
3.1: 列表分區,每個分區由一列分區 key 指定,列表分區適用于一些列的離散 value
4:hash 分區
3.3: hash 分區,hash 算法應用于分區 key 和 value,適用于分區數據基本均勻分布的情況
5:范圍 -hash 組合分區。
5.1: 也就是范圍和 hash 分區技術的組合,表首先進行范圍的分區,然后每一個范圍之內再單獨的通過 hash 分區進行分區。
分區操作可以并行執行,提高的數據的可用性。當部分數據由于故障或其他的原因不可用的時候,其他的分區不會受影響。
要注意:分區對于應用是透明的。
到此,相信大家對“Nosql 的存儲類型有哪些”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!