CN104102711B - 一种HBase数据库存储上网记录的方法和*** - Google Patents
一种HBase数据库存储上网记录的方法和*** Download PDFInfo
- Publication number
- CN104102711B CN104102711B CN201410337176.6A CN201410337176A CN104102711B CN 104102711 B CN104102711 B CN 104102711B CN 201410337176 A CN201410337176 A CN 201410337176A CN 104102711 B CN104102711 B CN 104102711B
- Authority
- CN
- China
- Prior art keywords
- internet records
- concordance list
- contents
- line unit
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003860 storage Methods 0.000 claims abstract description 40
- 238000010586 diagram Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种HBase数据库存储上网记录的方法和***,其中,所述方法包括:建立行健值为上网记录标识、内容值为上网记录的内容表;建立行健值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行健值为网页访问地址、上网开始时间以及所述上网记录标识的索引表。本发明提高了HBase存储上网记录的速度。
Description
技术领域
本发明涉及HBase数据库对上网记录进行存储的方法和***。
背景技术
移动终端通过无线上网每天能够产生数以亿计,占用存储空间TB量级的上网记录。目前采用分布式数据库HBase存储这些上网记录。基于查询的需要,目前分别以“公网IP地址+上网开始时间”以及“网页地址URL+上网开始时间”为行健存储上网记录,如表1、表2所示。
表1
表2
表1中公网IP地址为移动终端通过防火墙之后的公网IP地址,同一时刻使用该公网IP地址的移动终端允许多个,不同的移动终端之间建立的上网链路以不同的端口号进行区分,按表1的方式存储上网记录,后存储的上网记录会覆盖先存储的与之相同行健的上网记录,造成上网记录丢失,即实际得到的表1中仅能显示一条记录。若按表2的方式存储上网记录,由于不同移动终端存在同时访问相同网页的情况,因此相同网页地址、相同上网开始时间对应的上网记录不只一条,后存储的上网记录也会覆盖先存储的与之相同行健的上网记录,造成上网记录丢失。
为了避免丢失上网记录,目前有两种解决方法:一是利用HBase存储值Value的多版本特性,进行Value扩展存储上网记录;二是利用HBase列能够任意动态扩展的特点,进行Column列扩展存储上网记录。
利用Value的多版本特性进行存储以及进行Column列扩展进行存储包括:将上网记录单独存储在一个表格中,该表格称为内容表,其中,将与上网记录对应的通用唯一识别码(UUID)作为行健值,如表3所示;其中UUID的计算过程为现有技术,其在计算的过程中以当前主机网卡的MAC地址和主机当前为计算参数,现有的API接口可直接生成UUID。由于不同终端对应的MAC地址不同,因此不同终端产生的上网记录对应不同的UUID不同;对于相同终端,由于每条记录对应的上网开始时间不同,因此相同终端在不同时间段产生的上网记录对应的UUID也不同。
表3
对于多版本特性存储,还包括:建立索引表,该索引表中以“公网IP+上网开始时间”或“URL+上网开始时间”为行健值,以UUID为内容value,允许相同的行健值对应多个UUID,每个UUID对于一个版本号,不同的版本号用于标识HBase数据库记录上网记录的***时间戳的大小,版本号越大对应的***时间戳越大,说明记录的上网记录越新,如表4所示。现有的HBase数据库通常运行在linux***上并且基于java语言实现,所述***时间戳是java语言的固有参数,其记录了从1970年1月1日至linux***当前时间的毫秒数。
表4
对于Column列扩展存储,还包括:建立索引表,该索引表中以“公网IP+上网开始时间”或“URL+上网开始时间”为行健值,以UUID为列名,由于HBase列能够任意动态扩展,允许相同的行健值对应多个列名。该索引表不需要使用“内容value”,如表5所示,其中,列名这一列中的标识“cf:”表示列簇。
表5
虽然利用Value多版本特性进行存储以及进行Column列扩展进行存储能够克服上网记录的丢失的问题,但由于索引表一个行健值对应的数据不唯一,当有新的上网记录需要存储进HBase数据库时,对于建立的索引表,不仅要按照行健值排序以合并相同的行健值对应的上网记录标识,而且还要进行“列名排序”(对应Column列扩展存储)或者进行“版本号排序”(对应多版本特性存储)以加快HBase数据库检索到上网记录的速度。
如现有的HBase数据中以多版本特性的方式存储上网记录,其内容表如表3所示,索引表如表4所示,当有一条新的上网记录“18511535972|2013-10-04:22:59:57|2013-10-04:23:00:10|10.8.237.244|114.242.248.110|42836|123.125.65.115|80|http://loc.map.***.com/sdk.php”需要存储进HBase数据库时,内容表进行更新,如表6所示;
表6
当更新索引表时,发现新增上网记录对应的“公网IP+上网开始时间”与索引表中已有的行健内容相同,由于新增上网记录对应的版本号大于索引表中已有上网记录对应的版本号,因此对现有的索引表中的内容value进行重新排序,排序后新增的上网记录对应的内容value位于索引表的内容value这一列的首行,排序后的索引表如表7所示;
表7
当索引表中存储了大量数据时,会导致排序花费的时间长,进而影响上网记录的存储速度。
发明内容
本发明提供了一种HBase数据库存储上网记录的方法和***,以解决如何提高HBase存储上网记录的速度的技术问题。
为解决上述技术问题,本发明提供了一种HBase数据库存储上网记录的方法,所述方法包括:
建立行健值为上网记录标识、内容值为上网记录的内容表;
建立行健值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行健值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
根据建立的内容表和索引表完成对所述上网记录的存储。
进一步地,
所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳。
进一步地,
所述索引表除包含行健外,还包括列名和说明项;或者,还包括内容和版本号项。
为解决上述技术问题,本发明还提供了一种HBase数据库存储上网记录的***,所述***包括:
内容表建立单元,用于建立行健值为上网记录标识、内容值为上网记录的内容表;
索引表建立单元,建立行健值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行健值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
存储单元,用于根据建立的内容表和索引表完成对所述上网记录的存储。
进一步地,
所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳。
进一步地,
所述索引表除包含行健外,还包括列名和说明项;或者,还包括内容和版本号项。
上述实施例,对现有HBase数据库存储上网记录时用到的索引表进行了改进,使得索引表中行健值对应的数据唯一,当更新索引表时,不需要对索引表进行排序,进而加快了上网记录的存储速度。
附图说明
图1为本实施例的HBase数据库存储上网记录的方法流程图;
图2为本实施例的HBase数据库存储上网记录的***组成图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本实施例的HBase数据库存储上网记录的方法流程图。
S101建立行健值为上网记录标识、内容值为上网记录的内容表;所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳;
所述MD5编码算法已为公开的算法,根据公开的MD5算法对上网记录进行数学变换能够得到一个唯一的128位(bit)的特征码;
所述上网记录通常包括:手机号码|上网开始时间|上网结束时间|私网IP|NAT后IP(公网IP)|NAT后端口|网站IP|网站端口|网站URL;
S102建立行健值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行健值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
所述索引表可继承现有Column列扩展存储采用的索引表,除包含行健外,还包括列名和说明项;或者,所述索引表可继承多版本特性存储采用的索引表,除包含行健外,还包括内容value和版本号项;采用现有存储的索引表,对HBase数据库的存储机制改动少,方便将本实施例的存储方法快速应用于现有的HBase数据库;
S103根据建立的内容表和索引表完成对所述上网记录的存储。
上述实施例,对现有HBase数据库存储上网记录时用到的索引表进行了改进,使得索引表中行健值对应的数据唯一,当更新索引表时,不需要对索引表进行排序,进而加快了上网记录的存储速度。
下面以一个具体的应用实例对本实施例进行说明。
步骤一:建立行健值UUID的内容表,见表8;
表8
步骤二,建立行健值为公网IP地址、上网开始时间以及UUID的索引表,如表9所示;该表沿用了现有Column列扩展存储采用的索引表格式,列名和说明项未使用;
表9
步骤三:当有一条新的上网记录“14530115307|2013-11-0508:33:36|2013-11-0508:33:42|10.27.36.249|114.242.250.74|58795|60.28.115.31|80|http://dl.360safe.com/softmupdate/softup.cab”需要存储进HBase数据库时,对表8的内容表进行更新,更新后的内容表如表10所示;
表10
对表9的索引表进行更新,更新后的索引表如表11所示;
表11
相对现有技术,本应用示例中HBase数据库当存储新的上网记录时,仅需将新上网记录对应的内容添加在现有索引表已有记录之后,不需要对索引表进行排序。
为了更加形象地说明采用本实施例的HBase数据库存储上网记录方法对HBase存储上网记录速度的提升,分别采用本实施例记载的HBase数据库存储上网记录方法、现有的Column列扩展存储方法和多版本特性存储对1千万条上网记录进行数据入库试验,其结果记录如表12所示:
表12
如上表12所示,三种存储方案经过入库测试,采用本实施例的方法后入库速度是采用Column列扩展存储后入库速度的6.4倍,采用本实施例的方法后入库速度是采用Value多版本特性存储后入库速度的5.2倍。
图2为本实施例的HBase数据库存储上网记录的***组成图。
该***包括:
内容表建立单元,用于建立行健值为上网记录标识、内容值为上网记录的内容表;所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳;
所述MD5编码算法已为公开的算法,根据公开的MD5算法对上网记录进行数学变换能够得到一个唯一的128位(bit)的特征码;
所述上网记录通常包括:手机号码|上网开始时间|上网结束时间|私网IP|NAT后IP(公网IP)|NAT后端口|网站IP|网站端口|网站URL。
索引表建立单元,建立行健值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行健值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
所述索引表可继承现有Column列扩展存储采用的索引表,除包含行健外,还包括列名和说明项;或者,所述索引表可继承多版本特性存储采用的索引表,除包含行健外,还包括内容value和版本号项。采用现有存储的索引表,对HBase数据库的存储机制改动少,方便将本实施例的存储方法快速应用于现有的HBase数据库;
存储单元,用于根据建立的内容表和索引表完成对所述上网记录的存储。
上述实施例,对现有HBase数据库存储上网记录时用到的索引表进行了改进,使得索引表中行健值对应的数据唯一,当更新索引表时,不需要对索引表进行排序,进而加快了上网记录的存储速度。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种HBase数据库存储上网记录的方法,其特征在于,所述方法包括:
建立行键值为上网记录标识、内容值为上网记录的内容表;
建立行键值为公网IP地址、上网开始时间以及所述上网记录标识的索引表,或者建立行键值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
根据建立的内容表和索引表完成对所述上网记录的存储;所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳,使得索引表中行键值对应的数据唯一,当更新索引表时,不需要对索引表进行排序。
2.如权利要求1所述的方法,其特征在于:
所述索引表除包含行键值外,还包括列名和说明项;或者,还包括内容和版本号项。
3.一种HBase数据库存储上网记录的***,其特征在于,所述***包括:
内容表建立单元,用于建立行键值为上网记录标识、内容值为上网记录的内容表;
索引表建立单元,建立行键值为公网IP地址、上网开始访问时间以及所述上网记录标识的索引表,或者建立行键值为网页访问地址、上网开始时间以及所述上网记录标识的索引表;
存储单元,用于根据建立的内容表和索引表完成对所述上网记录的存储;
所述上网记录标识包括:通用唯一识别码(UUID)、由MD5编码算法得到的特征码或者与上网记录对应的***时间戳,使得索引表中行键值对应的数据唯一,当更新索引表时,不需要对索引表进行排序。
4.如权利要求3所述的***,其特征在于,
所述索引表除包含行键值外,还包括列名和说明项;或者,还包括内容和版本号项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410337176.6A CN104102711B (zh) | 2014-07-15 | 2014-07-15 | 一种HBase数据库存储上网记录的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410337176.6A CN104102711B (zh) | 2014-07-15 | 2014-07-15 | 一种HBase数据库存储上网记录的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104102711A CN104102711A (zh) | 2014-10-15 |
CN104102711B true CN104102711B (zh) | 2017-12-01 |
Family
ID=51670865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410337176.6A Active CN104102711B (zh) | 2014-07-15 | 2014-07-15 | 一种HBase数据库存储上网记录的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104102711B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056211A (zh) * | 2007-06-22 | 2007-10-17 | 中兴通讯股份有限公司 | 一种实现用户上网行为审计的方法及*** |
CN103020204A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对分布式顺序表进行多维区间查询的方法及其*** |
CN103703467A (zh) * | 2013-08-29 | 2014-04-02 | 华为技术有限公司 | 存储数据的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086610B2 (en) * | 2009-01-16 | 2011-12-27 | International Business Machines Corporation | Autonomic self configuring building-block database index |
-
2014
- 2014-07-15 CN CN201410337176.6A patent/CN104102711B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056211A (zh) * | 2007-06-22 | 2007-10-17 | 中兴通讯股份有限公司 | 一种实现用户上网行为审计的方法及*** |
CN103020204A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对分布式顺序表进行多维区间查询的方法及其*** |
CN103703467A (zh) * | 2013-08-29 | 2014-04-02 | 华为技术有限公司 | 存储数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104102711A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2127251B1 (en) | Propagation of conflict knowledge | |
CN101795272B (zh) | 非法网站过滤方法及装置 | |
CN106790112A (zh) | 一种集成轻量级区块链的节点操作***及数据更新的方法 | |
CA3032682C (en) | Method for managing information using tree structure based on blockchain, server and terminal using the same | |
CN106599322A (zh) | 数据脱敏的方法及设备 | |
US11558531B2 (en) | Systems and methods for authenticating an image | |
US20180198819A1 (en) | Method and apparatus for generating incident graph database | |
CN106648445B (zh) | 用于网络爬虫的数据存储方法及装置 | |
CN112925954A (zh) | 用于在图数据库中查询数据的方法和装置 | |
CN106649602A (zh) | 业务对象数据处理方法、装置和服务器 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN104700030B (zh) | 一种病毒数据查找方法、装置及服务器 | |
US9836491B1 (en) | Method and apparatus for hardware-implemented AVL tree updates | |
CN105701405B (zh) | 对软件程序集的本机图像进行防病毒检查的***和方法 | |
CN104125254B (zh) | 获取平台用户资料的方法和*** | |
CN109165712A (zh) | 分布式分期号的生成方法、装置和计算机存储介质 | |
CN103414756B (zh) | 一种任务分发方法、分发节点及*** | |
CN104102711B (zh) | 一种HBase数据库存储上网记录的方法和*** | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN108055299A (zh) | Portal页面推送方法、网络接入服务器及Portal认证*** | |
CN115687276B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN107277126A (zh) | 一种云计算资源管理方法及装置 | |
CN104834549B (zh) | 移动终端的应用程序文件更新方法及装置 | |
CN105653540B (zh) | 文件属性信息的处理方法和装置 | |
CN102333070A (zh) | 一种信息的获取方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |