資料儲存 HBase和Parquet結構

2022-09-17 06:48:13 字數 3167 閱讀 6976

parquet 列時儲存和 hbase的儲存
1.特點

列式儲存

自帶schema

具備predicate filter特性

predicate filter。先判斷乙個檔案中是否存在符合條件的資料,有則載入相應的資料,否則跳過

2.檔案構成

parquet檔案是以二進位制方式儲存的,不能直接讀取和修改,檔案中包括該檔案的資料和schema

data block是具體存放資料的區域

乙個檔案由多個 row group 組成,

乙個 row group 包括了多個 column chunk

乙個 column chunck 就是某個 column 的所有資料集,其中一列只會存在乙個 column chunk。被分割成多個 page,

乙個page是最小的處理單元,可以被編碼或者壓縮

乙個parquet檔案的內容由header、data block和footer三部分組成

footer部分由file metadata、footer length和magic number三部分組成

分析和調優

parquet檔案讀寫效能的引數主要有兩個,dfs.blocksize和parquet.block.size

parquet-tools 來分析 parquet 檔案,parquet是無法人類可讀的,需要通過一些工具

面向列儲存:hbase是面向列儲存的。 k-v

hbase 是乙個稀疏的、分布式、持久、多維、排序的對映,它以行鍵(row key),列鍵(column key)和時間戳(timestamp)為索引

1. hbase的資料模型 data model :

1. table:

2. column family: column family由column和值的集合。hbase裡面每個row由相同的column family組成,每個column family包含若干的column,

3. column: coumn 由column family和column qualifier組成。column qualifier使用:分隔。

4. row key的設計就非常重要,設計row key的原則就是相互關聯的行應該被儲存在附近。

5. cell: 乙個cell是row, column family和column qualifier的綜合。 可以精確的指定乙個cell。

2. hbase架構:

regionserver,理解為資料節點,儲存資料的。 存放regions的地方叫做regionserver

hmaster是 master server的實現,負責監控集群中的regionserver例項

master regionserver要實時的向master報告資訊 master程序負責處理不同的regionserver之間的region的分發。

zookeeper 作為分布式的協調

hdfs 是hbase執行的底層檔案系統

3. hbase的儲存模型

資料庫的資料儲存方式 **資料如何在磁碟上進行有效的組織

hregion

hlog, 預寫日誌檔案,也叫做wal(write-ahead log)

hstore

(1)hstore 對應了table中的乙個cf列族.

(2)hstore 包含 memstore 和 storefile (底層實現是hfile).

hfile 真實的資料儲存檔案- ,hbase最底層的檔案組織形式

hfile 物理結構

hfile由 datablock 、meta資訊(index、bloomfilter)、info等資訊組成。

hfile v1的邏輯資料組織格式 datablock 區域、metablock(bloomfilter)

與fileinfo、datablockindex、metablockindex、trailer分離

hfile v2的邏輯資料組織格式

檔案主要分為四個部分:

scanned block section

non-scanned block section

opening-time data section

trailer

hfile 索引流程圖

4.行鍵設計和hbase優化

5.版本:參考

2.3.3 2020/11/02

2.2.6 2020/09/04

1.6.0 2020/03/06

1.4.13 2020/02/29

1.2.6/ 2018-05-04 17:41

1.3.1/ 2017-10-04 10:53

hbase-1.3.6/ 2019-10-20 03:29

0.98.12.1/ 2015-05-21

比較

parquet的 row group 相當於hbase的 hregion

parquet的 colum trunk 相當於hbase的 store

parquet的 colum trunk 則由最小單位page儲存 hbase的store由 storefile 組成

parquet的 colum trunk 的每個page則儲存了乙個 三元組 (repetition level,definition level,value)。通過這個三元組page結構,

parquet做到了對複雜的巢狀資料結構序列化的支援

而 hbase storefile僅是儲存了某一特定列的閥值範圍內的values集合

兩者之間的主要區別,在page 和hfile檔案之間的比較

hdfs:

block 是 hdfs 中的最小的儲存單元,使得其能將大檔案切分為多個小檔案

粗略對比parquet和hbase資料儲存結構 

parquet的那些事(一)基本原理

hbase實踐之hfile結構

data model

HBase資料儲存

hbase的資料檔案都儲存在hdfs上,格式主要有兩種 hfile hbase中keyvalue資料的儲存格式,hfile是hadoop的二進位制檔案,實際上storefile就是對hfile做了輕量級的包裝,即storefile底層就是hfile hlog file hbase中wal write...

HBASE 資料儲存實踐

hbase 來自hadoop database 是乙個很好的bigtable的實現,能夠儲存上百億行和百萬列的資料,是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統。hbase的基本架構組成如下 hbase使用zookeeper作為協調服務,每個時刻只有乙個hmaster在執行,hmaster...

Hadoop資料儲存 Hbase

大家都知道hadoop是乙個資料庫,其實說的的就是hbase。它和我們平常理解的關係型資料庫有什麼區別呢?1.它是nosql的,它沒有sql的介面,有自己的一套api。通過以上描述,我們分析一下hbase的特點 1 儲存海量資料 pb 2 高吞吐 每秒每個節點上千次寫 3 適合處理稀疏資料 半結構化...