基于HBase的时间序列数据库(改进)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于HBase的时间序列数据库(改进)相关的知识,希望对你有一定的参考价值。

基本知识:

  期望:1.利用高效的行、列键组织数据存储方式和使用平滑的数据持久策略缓解集群压力

     2.利用zookeeper保障数据一致性(选举Leader)

  提高性能的技术:数据压缩、索引技术、实体化视图

  zookeeper 监控HRegionServer,保存Root Region实际地址,HMaster物理地址,减轻分布式应用从头开发协作服务的负担

  HMaster管理HRegionServer负载均衡

  日志根据Hadoop的SequenceFile存储

  HBase主要处理实际数据文件和日志文件

  HRegionServer将请求提交给HRegion处理

  底层存储文件的合并和拆分:

    1.内存文件(MenStore)的不断刷入,文件数目增加达到一定数目,compaction线程会合并成大文件

    2.大文件体积达到分割的阈值,触发HRegionServer内的Regions的分割


架构:

  数据由物联网传感器设备群上传到实时历史数据库服务器群,经压缩、缓存写入HBase服务器集群

  ZooKeeper服务器群对物联网传感器设备群进行设备注册管理,对实时历史数据库服务器群进行进程监控,对HBase服务器集群进行集群服务


持久化策略:

  通俗点讲,原始采集数据通过实时数据缓存预处理监控,对不合格或时间错乱的数据摒弃处理,利用历史数据缓存及压缩,最后存入HBase中

  将数据缓存池分成大小相同的两块,用有损压缩线程池写入其中一块的固定位置,达到一块接收,一块进行HBase写入,写入方式分为定时刷入和阈值刷新


思考:

  1.Flush和Compaction优化

  2.Split机制的改进

数据库表选用窄表,行键设计为组合行键,即[tag_name][data_timestamp]

数据整理采用离线整理的机制,利用MapReduce将行键中tag_name和time范围内相同的合并为一行,缺点是耗时和耗资源

ZooKeeper:1.设备确认(注册一个数据节点,存储信息为所有采集点接入物理节点的位置信息)

       2.应用层开启查询事务功能,首先对查询事务进行分解,获取位置信息,查询请求路由到正确的物理节点

       3.设备索引改变,会将改变提交,完成自身维护


数据统计与分析模块:

  如 一次滑动平均法

  预测下一周期内的数据写入量,并与当前写入量进行比较,若呈下降趋势或预测文件小,则延迟递交Split请求


查询中间件:

  1.对数据项的行键进行解释

  2.对查询请求进行解析,对结果进行合并封装

  同时缓存实时查询需求较大的应用场景所需要的索引信息

 

以上是关于基于HBase的时间序列数据库(改进)的主要内容,如果未能解决你的问题,请参考以下文章

试用时间序列数据库InfluxDB

星环hyperbase和开源hbase的那些事

物联网时间序列数据库为何会突然成为宠儿?

HBase模式案例日志数据和时间序列数据

使用 AWS Elastic MapReduce 获取时间序列数据的 Hive、HBase 和 Pig

HBase模式案例Steroids上的日志数据_时间序列上