基于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.对查询请求进行解析,对结果进行合并封装

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

时间: 2024-12-28 23:55:56

基于HBase的时间序列数据库(改进)的相关文章

时间序列数据库(TSDB)初识与选择

背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这种简单的管理和控制了.数据可视化分析,大数据信息挖掘,统计预测,建模仿真,智能控制成了各种业务的追求. "所有一切如泪水般消失在时间之中,时间正在死去",以前我们利用互联网解决现实的问题.现在我们已经不满足于现实,数据将连接成时间序列,可以往前可以观其历史,揭示其规律性,往后可以把握其趋势

时间序列数据库(TSDB)初识与选择(InfluxDB、OpenTSDB、Druid、Elastic

背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这种简单的管理和控制了.数据可视化分析,大数据信息挖掘,统计预测,建模仿真,智能控制成了各种业务的追求. "所有一切如泪水般消失在时间之中,时间正在死去",以前我们利用互联网解决现实的问题.现在我们已经不满足于现实,数据将连接成时间序列,可以往前可以观其历史,揭示其规律性,往后可以把握其趋势

时间序列数据库(TSDB)初识与选择(InfluxDB,OpenTSDB,Druid)

背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这种简单的管理和控制了.数据可视化分析,大数据信息挖掘,统计预测,建模仿真,智能控制成了各种业务的追求. "所有一切如泪水般消失在时间之中,时间正在死去",以前我们利用互联网解决现实的问题.现在我们已经不满足于现实,数据将连接成时间序列,可以往前可以观其历史,揭示其规律性,往后可以把握其趋势

OpenTSDB介绍——基于Hbase的分布式的,可伸缩的时间序列数据库,而Hbase本质是列存储

原文链接:http://www.jianshu.com/p/0bafd0168647 OpenTSDB介绍 1.1.OpenTSDB是什么?主要用途是什么? 官方文档这样描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase: 翻译过来就是,基于Hbase的分布式的,可伸缩的时间序列数据库. 主要用途,就是做监控系统:譬如收集大规模集群(包括网络设备.操作系统.应用程序)

试用时间序列数据库InfluxDB

Hadoop集群监控需要使用时间序列数据库,今天花了半天时间调研使用了一下最近比较火的InfluxDB,发现还真是不错,记录一下学习心得. Influx是用Go语言写的,专为时间序列数据持久化所开发的,由于使用Go语言,所以各平台基本都支持.类似的时间序列数据库还有OpenTSDB,Prometheus等. OpenTSDB很有名,性能也不错,但是基于HBase,要用那个还得先搭一套HBase,有点为了吃红烧肉自己得先去杀猪,烫皮,拔毛的感觉.Prometheus相关文档和讨论太少,而Influ

时间序列数据库选型——本质是列存储,B-tree索引,抑或是搜索引擎中的倒排索引

时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper.这类工具附属于监控告警工具,底层没有一个正规的数据库引擎.只是简单的有一个二进制的文件结构. 基于K/V数据库构建:opentsdb(基于hbase),blueflood,kairosDB(基于cassandra),influxdb,prometheus(基于leveldb) 基于关系型数据库构建:m

重新定义数据库历史的时刻——时间序列数据库Schwartz认为InfluxDB最有前途,Elasticsearch也不错

转自:http://www.infoq.com/cn/news/2017/04/redefine-database-history 提起VividCortex公司的创建者兼CEO Baron Schwartz,大家可能会比较陌生,但读过他的著作<高性能MySQL>的一定大有人在.他同时也做过许多开源软件的性能分析.监控和管理工作.同时他还对许多不同的数据库社区有所贡献,包括Oracle.PostgreSQL.Redis和MongoDB等.最近他在博客上分享了一些关于数据库的想法.从2000年左

时间序列数据库的秘密(3)——加载和分布式计算

时间序列数据库的秘密(3)——加载和分布式计算 加载 如何利用索引和主存储,是一种两难的选择. 选择不使用索引,只使用主存储:除非查询的字段就是主存储的排序字段,否则就需要顺序扫描整个主存储. 选择使用索引,然后用找到的row id去主存储加载数据:这样会导致很多碎片化的随机读操作. 没有所谓完美的解决方案.MySQL支持索引,一般索引检索出来的行数也就是在1~100条之间.如果索引检索出来很多行,很有可能MySQL会选择不使用索引而直接扫描主存储,这就是因为用row id去主存储里读取行的内容

时间序列数据库的秘密(1)—— 介绍

什么是时间序列数据?最简单的定义就是数据格式里包含timestamp字段的数据.比如股票市场的价格,环境中的温度,主机的CPU使用率等.但是又有什么数据是不包含timestamp的呢?几乎所有的数据都可以打上一个timestamp字段.时间序列数据更重要的一个属性是如何去查询它.在查询的时候,对于时间序列我们总是会带上一个时间范围去过滤数据.同时查询的结果里也总是会包含timestamp字段. 选择什么样的时间序列数据库 时间序列数据无处不在.而几乎任意数据库都可以存时间序列数据.但是不同的数据