當前位置:首頁 » 操作系統 » 列存資料庫

列存資料庫

發布時間: 2022-05-15 09:27:53

⑴ 列式資料庫的優缺點

優點:
極高的裝載速度
(最高可以等於所有硬碟IO
的總和,基本是極限了)
適合大量的數據而不是小數據
實時載入數據僅限於增加(刪除和更新需要解壓縮Block
然後計算然後重新壓縮儲存)
高效的壓縮率,不僅節省儲存空間也節省計算內存和CPU。
非常適合做聚合操作。
缺點:
不適合掃描小量數據
不適合隨機的更新
批量更新情況各異,有的優化的比較好的列式資料庫(比如Vertica)表現比較好,有些沒有針對更新的資料庫表現比較差。
不適合做含有刪除和更新的實時操作。

⑵ 為什麼說HBase是列式資料庫

Hbase是一個面向列存儲的分布式存儲系統,它的優點在於可以實現高性能的並發讀寫操作,同時Hbase還會對數據進行透明的切分,這樣就使得存儲本身具有了水平伸縮性。

通常,順序讀取數據要比隨機訪問更快。而且,硬碟定址時間的提升比起CPU速度的進步要慢得多 (參看摩爾定律),在使用硬碟作為存儲媒介的系統上這種情況很可能還會持續一段時間。

下面簡單羅列了一些選擇行資料庫還是列資料庫的權衡依據。當然,如果能夠把數據全放在內存中,那麼使用內存資料庫性能會更好。

特點:

因為硬碟定址時間相較於計算機上其他部件的運行速度來說不是一般的慢,所以常用相同工作負載下的硬碟訪問性能來比較行資料庫和列資料庫。

在只需要根據某幾列來聚合數據的時候按列的數據組織方式更有效。因為這樣只需要讀取一部分數據,要比讀取全部數據更快。

當只需要修改某一列值的時候按列的數據組織方式更有效。因為可以直接找到某列數據並改,而與行中的其他列無關。

⑶ 列式資料庫的舉例

下面以GBase 8a分析型資料庫為例,描述列存儲對數據存儲與管理的作用。
面對海量數據分析的 I/O 瓶頸,GBase 8a 把表數據按列的方式存儲,其優勢體現在以下幾個方面。
不讀取無效數據:降低 I/O 開銷,同時提高每次 I/O 的效率,從而大大提高查詢性能。查詢語句只從磁碟上讀取所需要的列,其他列的數據是不需要讀取的。例如,有兩張表,每張表100GB 且有100 列,大多數查詢只關注幾個列,採用列存儲,不需要像行存資料庫一樣,將整行數據取出,只取出需要的列。磁碟 I/0 是行存儲的 1/10或更少,查詢響應時間提高 10 倍以上。
高壓縮比:壓縮比可以達到 5 ~ 20 倍以上,數據佔有空間降低到傳統資料庫的1/10 ,節省了存儲設備的開銷。
當資料庫的大小與資料庫伺服器內存大小之比達到或超過 2:1 (典型的大型系統配置值)時,列存的 I/O 優勢就顯得更加明顯;
GBase 8a 分析型資料庫的獨特列存儲格式,對每列數據再細分為「數據包」。這樣可以達到很高的可擴展性:無論一個表有多大,資料庫只操作相關的數據包,性能不會隨著數據量的增加而下降。通過以數據包為單位進行 I/O 操作提升數據吞吐量,從而進一步提高I/O效率。
由於採用列存儲技術,還可以實現高效的透明壓縮。
由於數據按列包存儲,每個數據包內都是同構數據,內容相關性很高,這使得GBase 8a 更易於實現壓縮,壓縮比通常能夠達到 1:10 甚至更優。這使得能夠同時在磁碟 I/O 和 Cache I/O 上都提升資料庫的性能,使 GBase 8a 在某些場景下的運算性能比傳統資料庫快 100 倍以上。
GBase 8a 允許用戶根據需要設置配置文件,選擇是否進行壓縮。在啟用壓縮的情況下GBase 8a 根據數據的不同特性以及不同的分布狀況,自動採用相應的壓縮演算法,如:
行程編碼(適用於大量連續重復的數據,特別是排序數據);
基於數據的差值編碼(適用於重復率低,但彼此差值較小的數據列);
基於位置的差值編碼(適用於重復率高,但分布比較隨機的數據列)。

⑷ 大數據常用哪些資料庫

通常資料庫分為關系型資料庫和非關系型資料庫,關系型資料庫的優勢到現在也是無可替代的,比如MySQL、SQL Server、Oracle、DB2、SyBase、Informix、PostgreSQL以及比較小型的Access等等資料庫,這些資料庫支持復雜的SQL操作和事務機制,適合小量數據讀寫場景;但是到了大數據時代,人們更多的數據和物聯網加入的數據已經超出了關系資料庫的承載范圍。

大數據時代初期,隨著數據請求並發量大不斷增大,一般都是採用的集群同步數據的方式處理,就是將資料庫分成了很多的小庫,每個資料庫的數據內容是不變的,都是保存了源資料庫的數據副本,通過同步或者非同步方式保證數據的一致性,每個庫設定特定的讀寫方式,比如主資料庫負責寫操作,從資料庫是負責讀操作,等等根據業務復雜程度以此類推,將業務在物理層面上進行了分離,但是這種方式依舊存在一定的負載壓力的問題,企業數據在不斷的擴增中,後面就採用分庫分表的方式解決,對讀寫負載進行分離,但是這種實現依舊存在不足,且需要不斷進行資料庫伺服器擴容。
NoSQL資料庫大致分為5種類型

1、列族資料庫:BigTable、HBase、Cassandra、Amazon SimpleDB、HadoopDB等,下面簡單介紹幾個

(1)Cassandra:Cassandra是一個列存儲資料庫,支持跨數據中心的數據復制。它的數據模型提供列索引,log-structured修改,支持反規范化,實體化視圖和嵌入超高速緩存

(2)HBase:Apache Hbase源於Google的Bigtable,是一個開源、分布式、面向列存儲的模型。在Hadoop和HDFS之上提供了像Bigtable一樣的功能。

(3)Amazon SimpleDB:Amazon SimpleDB是一個非關系型數據存儲,它卸下資料庫管理的工作。開發者使用Web服務請求存儲和查詢數據項

(4)Apache Accumulo:Apache Accumulo的有序的、分布式鍵值數據存儲,基於Google的BigTable設計,建立在Apache Hadoop、Zookeeper和Thrift技術之上。

(5)Hypertable:Hypertable是一個開源、可擴展的資料庫,模仿Bigtable,支持分片。

(6)Azure Tables:Windows Azure Table Storage Service為要求大量非結構化數據存儲的應用提供NoSQL性能。表能夠自動擴展到TB級別,能通過REST和Managed API訪問。

2、鍵值資料庫:Redis、SimpleDB、Scalaris、Memcached等,下面簡單介紹幾個

(1)Riak:Riak是一個開源,分布式鍵值資料庫,支持數據復制和容錯。(2)Redis:Redis是一個開源的鍵值存儲。支持主從式復制、事務,Pub/Sub、Lua腳本,還支持給Key添加時限。

(3)Dynamo:Dynamo是一個鍵值分布式數據存儲。它直接由亞馬遜Dynamo資料庫實現;在亞馬遜S3產品中使用。

(4)Oracle NoSQL Database:來自Oracle的鍵值NoSQL資料庫。它支持事務ACID(原子性、一致性、持久性和獨立性)和JSON。

(5)Oracle NoSQL Database:具備數據備份和分布式鍵值存儲系統。

(6)Voldemort:具備數據備份和分布式鍵值存儲系統。

(7)Aerospike:Aerospike資料庫是一個鍵值存儲,支持混合內存架構,通過強一致性和可調一致性保證數據的完整性。

3、文檔資料庫:MongoDB、CouchDB、Perservere、Terrastore、RavenDB等,下面簡單介紹幾個

(1)MongoDB:開源、面向文檔,也是當下最人氣的NoSQL資料庫。

(2)CounchDB:Apache CounchDB是一個使用JSON的文檔資料庫,使用Javascript做MapRece查詢,以及一個使用HTTP的API。

(3)Couchbase:NoSQL文檔資料庫基於JSON模型。

(4)RavenDB:RavenDB是一個基於.NET語言的面向文檔資料庫。

(5)MarkLogic:MarkLogic NoSQL資料庫用來存儲基於XML和以文檔為中心的信息,支持靈活的模式。

4、圖資料庫:Neo4J、InfoGrid、OrientDB、GraphDB,下面簡單介紹幾個

(1)Neo4j:Neo4j是一個圖資料庫;支持ACID事務(原子性、獨立性、持久性和一致性)。

(2)InfiniteGraph:一個圖資料庫用來維持和遍歷對象間的關系,支持分布式數據存儲。

(3)AllegroGraph:AllegroGraph是結合使用了內存和磁碟,提供了高可擴展性,支持SPARQ、RDFS++和Prolog推理。

5、內存數據網格:Hazelcast、Oracle Coherence、Terracotta BigMemorry、GemFire、Infinispan、GridGain、GigaSpaces,下面簡單介紹幾個

(1)Hazelcast:Hazelcast CE是一個開源數據分布平台,它允許開發者在資料庫集群之上共享和分割數據。

(2)Oracle Coherence:Oracle的內存數據網格解決方案提供了常用數據的快速訪問能力,一致性支持事務處理能力和數據的動態劃分。

(3)Terracotta BigMemory:來自Terracotta的分布式內存管理解決方案。這項產品包括一個Ehcache界面、Terracotta管理控制台和BigMemory-Hadoop連接器。

(4)GemFire:Vmware vFabric GemFire是一個分布式數據管理平台,也是一個分布式的數據網格平台,支持內存數據管理、復制、劃分、數據識別路由和連續查詢。

(5)Infinispan:Infinispan是一個基於Java的開源鍵值NoSQL數據存儲,和分布式數據節點平台,支持事務,peer-to-peer 及client/server 架構。

(6)GridGain:分布式、面向對象、基於內存、SQL+NoSQL鍵值資料庫。支持ACID事務。

(7)GigaSpaces:GigaSpaces內存數據網格能夠充當應用的記錄系統,並支持各種各樣的高速緩存場景。

⑸ 列式資料庫的描述

資料庫以行、列的二維表的形式存儲數據,但是卻以一維字元串的方式存儲,例如以下的一個表: EmpId Lastname Firstname Salary 1 Smith Joe 40000 2 Jones Mary 50000 3 Johnson Cathy 44000 這個簡單的表包括員工代碼(EmpId), 姓名欄位(Lastname and Firstname)及工資(Salary).
這個表存儲在電腦的內存(RAM)和存儲(硬碟)中。雖然內存和硬碟在機制上不同,電腦的操作系統是以同樣的方式存儲的。資料庫必須把這個二維表存儲在一系列一維的「位元組」中,由操作系統寫到內存或硬碟中。
行式資料庫把一行中的數據值串在一起存儲起來,然後再存儲下一行的數據,以此類推。
1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;
列式資料庫把一列中的數據值串在一起存儲起來,然後再存儲下一列的數據,以此類推。
1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000; 這是一個簡化的說法。
列式資料庫的代表包括:Sybase IQ,infobright、infiniDB、GBase 8a,ParAccel, Sand/DNA Analytics和 Vertica。
MPP的列存儲數據倉庫包括:Yonghong Z-DataMart

⑹ 什麼是資料庫列存儲,原理是怎樣的

資料庫列存儲不同於傳統的關系型資料庫,其數據在表中是按行存儲的,列方式所帶來的重要好處之一就是,由於查詢中的選擇規則是通過列來定義的,因 此整個資料庫是自動索引化的。

按列存儲每個欄位的數據聚集存儲,在查詢只需要少數幾個欄位的時候,能大大減少讀取的數據量,一個欄位的數據聚集存儲,那就 更容易為這種聚集存儲設計更好的壓縮/解壓演算法。這張圖講述了傳統的行存儲和列存儲的區別:

⑺ 常見的基於列存儲的大數據資料庫有哪些

目前大數據存儲有兩種方案可供選擇:行存儲和列存儲。業界對兩種存儲方案有很多爭持,集中焦點是:誰能夠更有效地處理海量數據,且兼顧安全、可靠、完整性。從目前發展情況看,關系資料庫已經不適應這種巨大的存儲量和計算要求,基本是淘汰出局。在已知的幾種大數據處理軟體中,Hadoop的HBase採用列存儲,MongoDB是文檔型的行存儲,Lexst是二進制型的行存儲。在這里,我不討論這些軟體的技術和優缺點,只圍繞機械磁碟的物理特質,分析行存儲和列存儲的存儲特點,以及由此產生的一些問題和解決辦法。

⑻ 列式資料庫有哪些

列式資料庫是以列相關存儲架構進行數據存儲的資料庫,主要適合與批量數據處理和即席查詢。相對應的是行式資料庫,數據以行相關的存儲體系架構進行空間分配,主要適合與小批量的數據處理,常用於聯機事務型數據處理。

不讀取無效數據:降低 I/O 開銷,同時提高每次 I/O 的效率,從而大大提高查詢性能。查詢語句只從磁碟上讀取所需要的列,其他列的數據是不需要讀取的。例如,有兩張表,每張表100GB 且有100 列,大多數查詢只關注幾個列,採用列存儲,不需要像行存資料庫一樣,將整行數據取出,只取出需要的列。磁碟 I/0 是行存儲的 1/10或更少,查詢響應時間提高 10 倍以上。

高壓縮比:壓縮比可以達到 5 ~ 20 倍以上,數據佔有空間降低到傳統資料庫的1/10 ,節省了存儲設備的開銷。

當資料庫的大小與資料庫伺服器內存大小之比達到或超過 2:1 (典型的大型系統配置值)時,列存的 I/O 優勢就顯得更加明顯;

GBase 8a 分析型資料庫的獨特列存儲格式,對每列數據再細分為「數據包」。這樣可以達到很高的可擴展性:無論一個表有多大,資料庫只操作相關的數據包,性能不會隨著數據量的增加而下降。通過以數據包為單位進行 I/O 操作提升數據吞吐量,從而進一步提高I/O效率。

由於採用列存儲技術,還可以實現高效的透明壓縮。

由於數據按列包存儲,每個數據包內都是同構數據,內容相關性很高,這使得GBase 8a 更易於實現壓縮,壓縮比通常能夠達到 1:10 甚至更優。這使得能夠同時在磁碟 I/O 和 Cache I/O 上都提升資料庫的性能,使 GBase 8a 在某些場景下的運算性能比傳統資料庫快 100 倍以上。

GBase 8a 允許用戶根據需要設置配置文件,選擇是否進行壓縮。在啟用壓縮的情況下GBase 8a 根據數據的不同特性以及不同的分布狀況,自動採用相應的壓縮演算法,如:

行程編碼(適用於大量連續重復的數據,特別是排序數據);

基於數據的差值編碼(適用於重復率低,但彼此差值較小的數據列);

基於位置的差值編碼(適用於重復率高,但分布比較隨機的數據列)。

⑼ 什麼是列式存儲資料庫

列式資料庫是以列相關存儲架構進行數據存儲的資料庫,主要適合與批量數據處理和即席查詢。
GBase 8a 分析型資料庫的獨特列存儲格式,對每列數據再細分為「數據包」。這樣可以達到很高的可擴展性:無論一個表有多大,資料庫只操作相關的數據包,性能不會隨著數據量的增加而下降。通過以數據包為單位進行 I/O 操作提升數據吞吐量,從而進一步提高I/O效率。

由於採用列存儲技術,還可以實現高效的透明壓縮。

⑽ 常用的資料庫有哪幾種試著闡述每種資料庫的特點和使用范圍

關系資料庫、非關系型資料庫。

1、關系資料庫

特點:數據集中控制;減少數據冗餘等。

適用范圍:對於結構化數據的處理更合適,如學生成績、地址等,這樣的數據一般情況下需要使用結構化的查詢。

2、非關系資料庫

特點:易擴展;大數據量,高性能;靈活的數據模型等。

使用范圍:據模型比較簡單;需要靈活性更強的IT系統;對資料庫性能要求較高。

(10)列存資料庫擴展閱讀:

非關系資料庫的分類:

1、列存儲資料庫

這部分資料庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak。

2、文檔型資料庫

文檔型資料庫的靈感是來自於Lotus Notes辦公軟體的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可 以看作是鍵值資料庫的升級版,允許之間嵌套鍵值。而且文檔型資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb. 國內也有文檔型資料庫SequoiaDB,已經開源。

熱點內容
jdk的編譯命令為什麼 發布:2022-05-15 10:47:47 瀏覽:83
怎麼查微密碼 發布:2022-05-15 10:44:57 瀏覽:309
智歌一體機密碼是多少 發布:2022-05-15 10:44:39 瀏覽:759
零學費php培訓機構 發布:2022-05-15 10:44:17 瀏覽:978
mac文件存儲在哪裡 發布:2022-05-15 10:40:45 瀏覽:283
安卓果盤怎麼改密碼 發布:2022-05-15 10:40:42 瀏覽:271
設置密碼最好記的有什麼 發布:2022-05-15 10:38:47 瀏覽:53
寧波加密軟體 發布:2022-05-15 10:35:26 瀏覽:75
策略手游編程 發布:2022-05-15 10:35:21 瀏覽:35
linuxmysql 發布:2022-05-15 10:35:14 瀏覽:550