Hbase的列式存储和Parquet列式文件

  1. Parquet 列时存储和 Hbase的存储
  1. 1.特点
  2. 列式存储
  3. 自带Schema
  4. 具备Predicate Filter特性
  5. Predicate Filter。先判断一个文件中是否存在符合条件的数据,有则加载相应的数据,否则跳过
  6. 2.文件构成
  7. Parquet文件是以二进制方式存储的,不能直接读取和修改,文件中包括该文件的数据和schema
  8. Data Block是具体存放数据的区域
  9. 一个文件由多个 row group 组成,
  10. 一个 row group 包括了多个 column chunk
  11. 一个 column chunck 就是某个 column 的所有数据集,其中一列只会存在一个 column chunk。被分割成多个 page
  12. 一个page是最小的处理单元,可以被编码或者压缩
  13. 一个Parquet文件的内容由HeaderData BlockFooter三部分组成
  14. Footer部分由File MetadataFooter LengthMagic Number三部分组成
  15. Parquet文件对于每个page支持标准的压缩算法比如支持Snappy,gzip以及LZO压缩格式,也支持不压缩
  16. 分析和调优
  17. Parquet文件读写性能的参数主要有两个,dfs.blocksizeparquet.block.size
  18. parquet-tools 来分析 parquet 文件,Parquet是无法人类可读的,需要通过一些工具
  1. 面向列存储:HBase是面向列存储的。 K-V
  2. HBase 是一个稀疏的、分布式、持久、多维、排序的映射,它以行键(row key),列键(column key)和时间戳(timestamp)为索引
  3. 1. HBase的数据模型 Data Model
  4. 1. Table:
  5. 2. Column Family: Column Familycolumn和值的集合。HBase里面每个Row由相同的Column Family组成,每个Column Family包含若干的column,
  6. 3. Column: Coumn column familycolumn qualifier组成。column qualifier使用:分隔。
  7. 4. Row Key的设计就非常重要,设计Row Key的原则就是相互关联的行应该被存储在附近。
  8. 5. Cell 一个CellRow Column FamilyColumn Qualifier的综合。 {rowkey, column, version} 可以精确的指定一个cell
  9. 2. Hbase架构:
  10. RegionServer,理解为数据节点,存储数据的。 存放Regions的地方叫做RegionServer
  11. HMaster Master Server的实现,负责监控集群中的RegionServer实例
  12. Master RegionServer要实时的向Master报告信息 Master进程负责处理不同的RegionServer之间的Region的分发。
  13. Zookeeper 作为分布式的协调
  14. HDFS Hbase运行的底层文件系统
  15. 3. Hbase的存储模型
  16. 数据库的数据存储方式 探讨数据如何在磁盘上进行有效的组织
  17. HRegion
  18. HLog 预写日志文件,也叫做WAL(write-ahead log)
  19. HStore
  20. (1)HStore 对应了table中的一个CF列族.
  21. (2)HStore 包含 MemStore StoreFile (底层实现是HFile).
  22. HFile 真实的数据存储文件- HBase最底层的文件组织形式
  23. HFile 物理结构
  24. HFile DataBlock Meta信息(IndexBloomFilter)、Info等信息组成。
  25. HFile V1的逻辑数据组织格式 DataBlock 区域、MetaBlock(bloomfilter)
  26. FileInfoDataBlockIndexMetaBlockIndexTrailer分离
  27. HFile V2的逻辑数据组织格式
  28. 文件主要分为四个部分:
  29. Scanned block section
  30. Non-scanned block section
  31. Opening-time data section
  32. Trailer
  33. HFile 索引流程图
  34. 4.行键设计和Hbase优化
  35. 5.版本:参考 https://archive.apache.org/dist/hbase/
  36. 2.3.3 2020/11/02
  37. 2.2.6 2020/09/04
  38. 1.6.0 2020/03/06
  39. 1.4.13 2020/02/29
  40. 1.2.6/ 2018-05-04 17:41
  41. 1.3.1/ 2017-10-04 10:53
  42. hbase-1.3.6/ 2019-10-20 03:29
  43. 0.98.12.1/ 2015-05-21
  1. 比较
  2. Parquet Row group 相当于HBase HRegion
  3. Parquet colum trunk 相当于HBase Store
  4. Parquet colum trunk 则由最小单位page存储 HBaseStore StoreFile 组成
  5. Parquet colum trunk 的每个page则存储了一个 三元组 (Repetition LevelDefinition Levelvalue)。通过这个三元组page结构,
  6. Parquet做到了对复杂的嵌套数据结构序列化的支持
  7. HBase StoreFile仅是存储了某一特定列的阀值范围内的values集合
  8. 两者之间的主要区别,在page HFile文件之间的比较
  1. HDFS
  2. Block hdfs 中的最小的存储单元,使得其能将大文件切分为多个小文件
  1. 粗略对比ParquetHbase数据存储结构 https://blog.csdn.net/sudo5zzb/article/details/51276557
  2. Parquet的那些事(一)基本原理 https://blog.csdn.net/zwgdft/article/details/104582229/
  3. hbase实践之HFile结构 https://www.cnblogs.com/small-k/p/9715810.html
  4. Data Model http://hbase.apache.org/book.html#datamodel
  5. http://hbase.apache.org/downloads.html

版权声明:本文为ytwang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ytwang/p/14048044.html