首页> 中国专利> 一种基于hbase的上网日志数据查询方法及装置

一种基于hbase的上网日志数据查询方法及装置

摘要

本发明公开一种基于hbase的上网日志数据查询方法,包括:通过客户端输入RowKey字段值,向bhase发送上网日志查询请求;hbase根据查询请求所输入的RowKey字段值获取满足条件的RowKey范围;其中,所述RowKey的长度小于预设的长度阈值;hbase根据所述RowKey字段值在所述的RowKey范围内找到对应的列族范围,并将查找到列族中的列值返回给客户端,其中,所有上网日志字段都存储在一个列族的一个列中;客户端接收并解析所述列值。本发明还公开一种基于hbase的上网日志数据查询装置。本发明既提高了上网日志数据的查询性能,又能够降低存储空间占用,方便外部接口直接查询上网清单数据。

著录项

  • 公开/公告号CN104252536A

    专利类型发明专利

  • 公开/公告日2014-12-31

    原文格式PDF

  • 申请/专利权人 福建新大陆软件工程有限公司;

    申请/专利号CN201410471568.1

  • 发明设计人 朱爱军;陈威;叶潇;席先广;

    申请日2014-09-16

  • 分类号G06F17/30(20060101);

  • 代理机构福州市鼓楼区博深专利代理事务所(普通合伙);

  • 代理人林志峥

  • 地址 350000 福建省福州市马尾区儒江西路1号新大陆科技园

  • 入库时间 2023-12-17 02:39:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-08

    授权

    授权

  • 2015-01-21

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20140916

    实质审查的生效

  • 2014-12-31

    公开

    公开

说明书

技术领域

本发明涉及非结构化数据存储与查询领域,特别是涉及一种基于hbase的上 网日志数据查询方法及装置。

背景技术

不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有 格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信 息等等。

在移动互联网不断发展、信息量不断膨胀的大环境背景下,各种移动通信 公司的大型系统都记录下了海量的用户上网日志。很多公司仍采用传统的ETL 工具进行数据采集、分析、查询,负责将分散的、异构数据源中的数据如关系 数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载 到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

随着移动互联网时代的到来,手机终端应用的普及,面对日益增长的海量 上网日志数据,原系统传统的ETL工具实际已彻底失效,主要原因是数据格式 转换的开销太大,在性能上无法满足海量数据的采集、分析、查询需求。传统 的数据分析算法必须依靠计算机性能的提升来满足,缺少一种分布式的可扩展 的架构的支持;并且传统的上网日志分析和数据统计及数据查询方法受到单机 内外存、CPU资源有限的限制,在进行海量上网日志数据的分析查询时遇到了 瓶颈。

在这种背景下,系统必须寻求一种新的分布式的可扩展的数据库架构,在 硬件基本不变的情况下来满足海量数据的采集、分析及查询功能。

发明内容

本发明所要解决的技术问题是:提供一种基于hbase的上网日志数据查询方 法,能够解决现有技术中大数据量分析、查询效率低的问题。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于hbase的上网日志数据查询方法,包括:通过客户端输入RowKey 字段值,向bhase发送上网日志查询请求;hbase根据查询请求所输入的RowKey 字段值获取满足条件的RowKey范围;其中,所述RowKey的长度小于预设的 长度阈值;hbase根据所述RowKey字段值在所述的RowKey范围内找到对应的 列族范围,并将查找到列族中的列值返回给客户端,其中,所有上网日志字段 都存储在一个列族的一个列中;客户端接收并解析所述列值。

为解决上述技术问题,本发明还提供另一技术方案:

一种基于hbase的上网日志数据查询装置,包括请求模块、RowKey范围确 定模块、列族范围确定模块和解析模块;所述请求模块用于通过客户端输入 RowKey字段值,向bhase发送上网日志查询请求;所述RowKey范围确定模块 用于hbase根据查询请求所输入的RowKey字段值获取满足条件的RowKey范 围;其中,所述RowKey的长度小于预设的长度阈值;所述列族范围确定模块 用于hbase根据所述RowKey字段值在所述的RowKey范围内找到对应的列族范 围,并将查找到列族中的列值返回给客户端,其中,所有上网日志字段都存储 在一个列族的一个列中;所述解析模块用于客户端接收并解析所述列值。

本发明的有益效果在于:区别于现有技术中ETL工具在性能上无法满足海 量数据的采集、分析、查询需求,本发明引入hbase分布式数据库用于存储清单 数据,使在硬件基本不变的情况满足海量数据的采集、分析及查询功能,并且 通过控制RowKey的长度与内容,同时优化列存储的字段个数与保存格式,既 提高了上网日志数据的查询性能,又能够降低存储空间占用,方便外部接口直 接并发查询上网清单数据。

附图说明

图1为本发明基于hbase的上网日志数据查询方法一实施方式的流程图;

图2为本发明基于hbase的上网日志数据查询装置一实施方式的功能框图;

图3为本发明基于hbase的上网日志数据查询方法一实施方式的过程示意 图;

标号说明:

10、请求模块;  20、RowKey范围确定模块;  30、列族范围确定模 块;  40、解析模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并 配合附图予以说明。

hbase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布 式存储系统,利用hbase技术可在廉价PCServer上搭建起大规模结构化存储集 群。

hbase建立在hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读 写的数据库系统。它介于nosql和RDBMS之间,仅能通过主键(RowKey)和主键 的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂 操作)。主要用来存储非结构化和半结构化的松散数据。与hadoop一样,hbase 目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储 能力。

hbase中的表一般有这样的特点:

1、大:一个表可以有上亿行,上百万列;

2、面向列:面向列(簇)的存储和权限控制,列(簇)独立检索;

3、稀疏:对于为空的列,并不占用存储空间,因此表可以设计的非常稀疏。

RowKey

与nosql数据库一样,RowKey是用来检索记录的主键。访问hbase table中 的行,只有三种方式:

1、通过单个RowKey访问;

2、通过RowKey的range;

3、全表扫描。

RowKey行键可以是任意字符串(最大长度是64KB,实际应用中长度一般 为10-100bytes),在hbase内部,RowKey保存为字节数组。存储时,数据按照 RowKey的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性, 将经常一起读取的行存储放到一起。

列族

hbase表中的每个列,都归属于某个列族。列族是表schema的一部分(而列 不是),必须在使用表之前定义。访问控制、磁盘和内存的使用统计都是在列族 层面进行的。实际应用中,列族上的控制权限能帮助我们管理不同类型的应用: 我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建 继承的列族、一些应用则只允许浏览数据。

本发明最关键的构思在于:利用hbase自身对非结构化数据的良好支持,通 过控制RowKey的长度与内容,同时优化列存储的字段个数与保存格式,既提 高了上网日志数据的查询性能,又能够降低存储空间占用,方便外部接口直接 并发查询上网清单数据。

请参照图1,一种基于hbase的上网日志数据查询方法,包括:

通过客户端输入RowKey字段值,向bhase发送上网日志查询请求;

hbase根据查询请求所输入的RowKey字段值获取满足条件的RowKey范 围;其中,所述RowKey的长度小于预设的长度阈值;

hbase根据所述RowKey字段值在所述的RowKey范围内找到对应的列族范 围,并将查找到列族中的列值返回给客户端,其中,所有上网日志字段都存储 在一个列族的一个列中;

客户端接收并解析所述列值。

在一实施方式中,所述RowKey=0128,13799942424,20140820070231, CMNET,19695683515405564110,即RowKey取值限定为手机号取模,手机号, 时间(STARTTIME直到秒),接入点,sid,则rowkey长度控制在58个字节, 即所述RowKey的长度阈值为58。

从上述描述可知,本发明的有益效果在于:本发明将hbase分布式数据库用 于存储手机上网数据清单,hbase独有的列存储不同于传统的关系型数据库,其 数据在表中是按列存储的,而按列存储所带来的重要好处之一,就是查询是的 选择规则是通过列来定义的,因此整个数据库在查询时是自动索引的,按列存 储每个字段的数据聚集存储,在查询时只需要少数几个字段的时候能大大减少 读取的数据量,而且本发明对hbase的RowKey的长度进行限定,避免因膨胀率 带来空间上的浪费,以及将所有上网日志字段都设计在一个列族的一个列中, 极大程度减少了列族与列的个数,进一步减少了磁盘空间的占用,从而大大提 高大数据量分析、查询效率。

进一步的,所述RowKey字段值为上网日志数据主键的集合,其中所述主 键为手机号、sid、接入点。

进一步的,所述RowKey字段值为手机号取模+手机号+开始时间+接入点。 同时在rowkey字段值中加入开始时间与手机号取模,能够快速确定范围,提高 查询效率

进一步的,所述列族中列值的格式为上网日志数据各字段值,所述字段值 之间以逗号分隔。

请参阅图2,本发明提供的另一技术方案为:

一种基于hbase的上网日志数据查询装置,包括请求模块10、RowKey范围 确定模块20、列族范围确定模块30和解析模块40;

所述请求模块10用于通过客户端输入RowKey字段值,向hbase发送上网 日志查询请求;

所述RowKey范围确定模块20用于hbase根据查询请求所输入的RowKey 字段值获取满足条件的RowKey范围;其中,所述RowKey的长度小于预设的 长度阈值;

所述列族范围确定模块30用于hbase根据所述RowKey字段值在所述的 RowKey范围内找到对应的列族范围,并将查找到列族中的列值返回给客户端, 其中,所有上网日志字段都存储在一个列族的一个列中;

所述解析模块40用于客户端接收并解析所述列值。

由上述描述可知,本发明将hbase分布式数据库用于存储手机上网数据清 单,hbase独有的列存储不同于传统的关系型数据库,其数据在表中是按列存储 的,而按列存储所带来的重要好处之一,就是查询是的选择规则是通过列来定 义的,因此整个数据库在查询时是自动索引的,按列存储每个字段的数据聚集 存储,在查询时只需要少数几个字段的时候能大大减少读取的数据量,而且本 发明对hbase的RowKey的长度进行限定,避免因膨胀率带来空间上的浪费,以 及将所有上网日志字段都设计在一个列族的一个列中,极大程度减少了列族与 列的个数,进一步减少了磁盘空间的占用,从而大大提高大数据量分析、查询 效率。

进一步的,所述RowKey字段值为上网日志数据主键的集合。

进一步的,所述RowKey字段值为手机号取模+手机号+时间+接入点。

本发明中将RowKey设计为上网日志数据几个主键的顺序集合,并严格控 制RowKey长度,避免因膨胀率带来空间上的浪费,如RowKey设计为:手机 号取模+手机号+时间+接入点。

进一步的,所述列族中列值的格式为上网日志数据各字段值,所述字段值 之间以逗号分隔。

在本发明中,我们将所有上网日志字段都设计在一个列族的一个列中,不 同字段之间以逗号分隔,如:手机号码,手机型号,流量类型,终端类型,上线时 间,下线时间,上行流量,下行流量,登录地址和网站,网络类型(2G/3G),服 务名,如此,极大程度减少了列族与列的个数,进一步减少了磁盘空间的占用

请参照图3,本发明的实施例一,在hbase中查询上网日志数据的具体流程 为:

步骤1,由客户端向hbase发起请求,传入RowKey相关字段值。只需传入 符合规则的RowKey、时间范围等简单条件即可在hbase中定位满足条件的记录;

步骤2,hbase收到请求,根据条件查找到对应RowKey范围。RowKey在 hbase中类似于主键,具有唯一性,并且hbase自身使用RowKey定位海量数据 的机制有利于提升性能,其效率更优于普通关系型数据库;

步骤3,hbase根据RowKey查找到对应的列族范围。首先定位RowKey范 围后,再定位列族范围,避免多余的查询开销;

步骤4,hbase将查找到列族中的列值返回给请求端,列值格式为各字段值 以逗号分隔,如13400026728,iPhone4,CMWAP,2014-01-02 19:20:42.125,2014-01-0219:20:42.443,204,114,111.13.12.58,2, \xE7\xBD\x91\xE7\xAB\x99,由请求端解析列值获取各上网日志字段内容。将各 字段值合并字符保存在一个列值中,有利于节省磁盘空间,由于直接从hbase 查询的数据量不大,将简单的字段解析工作交给外部请求端,能够降低集群开 销,提高查询效率;

至此,上网日志数据查询的具体流程结束。

其中,表一为上网日志数据HBase数据模型;

表一

表二为列族中的列值记录;

表二

经过分析计算,通过本发明膨胀率可从原有的8倍缩小为2倍,降低了维 护与设备成本,并将条件查询的筛选工作交给了RowKey,对查询性能无任何影 响。

综上所述,本发明提供的基于hbase的上网日志数据查询方法及装置引入了 hbase分布式数据库用于存储上网日志数据清单,hbase的数据在表中是按行存 储的,实现整个数据库是自动索引化的,本发明对hbase的RowKey的长度进行 限定,避免因膨胀率带来空间上的浪费,以及将所有上网日志字段都设计在一 个列族的一个列中,极大程度减少了列族与列的个数,进一步减少了磁盘空间 的占用,从而大大提高大数据量分析、查询效率。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利 用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术 领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号