基于HBase的实时历史数据库设计思路
2017-10-23 11:00
260 查看
实时历史数据库是实现工业海量数据采集存储的有效手段。HBase的写入性能优于查询性能,这个特点使其适合作为实时历史数据库开发的基础。
所有的开发是基于HBase的API进行,主要开发节点和数据的增删改查方法的实现,并且使用Thrift作为软件的RPC,最终提供Server服务和Client API。其中Server功能是连接HBase以及实现增删改查的方法。
设计HBase的表结构是最重要的部分。首先,使用HBase的命名空间功能,为不通场景提供不通数据库。然后就是表结构设计,根据经验,要有三张基本表,分别是id,data,info。info表保存节点信息,节点名作为rowkey;id表提供可以给节点分配的id;data表保存节点数据,rowkey为“节点id+时间”形式。然后根据三个表结构的特点实现增删改查的方法。
数据在HBase表中存储排序是字典格式。如果所有数据都在data表中保存时,获取实时最新数据是一个问题。可以使用过滤器取出符合条件的节点数据,然后reverse即可获取最后一个插入的数据。但是这种方法在测试时很慢,效率低。可以考虑增加realTime表,保存节点最新数据,只要在插入实时数据的方法中同事写入此表和data表即可,但结果却提高了查询实时数据的速度。
除了表结构的设计,HBase自身的分布式架构也使得该数据库试用大数据环境。剩下的 就是提高HBase的读写性能,特别是读取性能。
以上思路是根据生产实际经验总结而来,并且实现了beta版本,但是并没有发布。
所有的开发是基于HBase的API进行,主要开发节点和数据的增删改查方法的实现,并且使用Thrift作为软件的RPC,最终提供Server服务和Client API。其中Server功能是连接HBase以及实现增删改查的方法。
设计HBase的表结构是最重要的部分。首先,使用HBase的命名空间功能,为不通场景提供不通数据库。然后就是表结构设计,根据经验,要有三张基本表,分别是id,data,info。info表保存节点信息,节点名作为rowkey;id表提供可以给节点分配的id;data表保存节点数据,rowkey为“节点id+时间”形式。然后根据三个表结构的特点实现增删改查的方法。
数据在HBase表中存储排序是字典格式。如果所有数据都在data表中保存时,获取实时最新数据是一个问题。可以使用过滤器取出符合条件的节点数据,然后reverse即可获取最后一个插入的数据。但是这种方法在测试时很慢,效率低。可以考虑增加realTime表,保存节点最新数据,只要在插入实时数据的方法中同事写入此表和data表即可,但结果却提高了查询实时数据的速度。
除了表结构的设计,HBase自身的分布式架构也使得该数据库试用大数据环境。剩下的 就是提高HBase的读写性能,特别是读取性能。
以上思路是根据生产实际经验总结而来,并且实现了beta版本,但是并没有发布。
相关文章推荐
- 一脸懵逼学习HBase---基于HDFS实现的。(Hadoop的数据库,分布式的,大数据量的,随机的,实时的,非关系型数据库)
- 实现基于组织机构的数据集权限系统的设计思路讲解【提供完整数据库设计下载】
- 高并发 强实时 强一致数据库业务系统设计的一个思路
- 实现基于组织机构的数据集权限系统的设计思路讲解【提供完整数据库设计下载】
- 基于HBase的海量数据实时查询系统设计与实现
- 基于mvc3的razor多用户店铺模板切换设计思路
- 基于实时仿真的嵌入式系统结构设计
- 基于PowerDesigner数据库设计实践
- 基于python的接口测试框架设计(一)连接数据库
- 基于GIS、公路测量与地图学及全国路况统计普查数据库的山西省公路信息管理系统技术设计
- 一种手游中实时战斗系统的设计思路
- 基于Solr的HBase实时查询方案
- 优雅设计封装基于Okhttp3的网络框架(四):多线程下载添加数据库支持(greenDao)及 进度更新
- 基于Powerdesigner 的数据库设计流程
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- Android中实时视频监控方案设计思路
- 实时/历史数据库和关系型数据库的区别
- 基于数据字典的通用查询系统(三)数据库的设计
- 基于ArcGIS的空间数据库设计及实现
- 阶段4-独挡一面\项目-基于视频压缩的实时监控系统\Sprint3-采集端传输子系统设计