CN105138592B - 一种基于分布式架构的日志数据存储和检索方法 - Google Patents
一种基于分布式架构的日志数据存储和检索方法 Download PDFInfo
- Publication number
- CN105138592B CN105138592B CN201510465138.3A CN201510465138A CN105138592B CN 105138592 B CN105138592 B CN 105138592B CN 201510465138 A CN201510465138 A CN 201510465138A CN 105138592 B CN105138592 B CN 105138592B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- solr
- log data
- daily record
- 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
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Abstract
本发明提供一种基于分布式架构的日志数据存储和检索方法,以解决海量用户上网日志数据的高性能存储问题和在多维度、多关键字条件下数据检索慢的问题。本发明的一个方面提供用户上网日志数据存储的方法,主要利用HBase和Solr实现分布式数据存储和索引创建,其中包括用户上网日志数据以条目形式存储到HBase中,建立唯一标识的方法,对用户上网日志数据进行维度拆分和维度分词处理,建立查询维度和分词关键字与数据标识之间的索引关系的方法,对日志数据进行维度拆分的方法,对维度进行分词处理的方法,还有根据维度和分词关键字建立索引的方法。本发明的另一方面提供用户上网日志数据检索方法,主要包括多维度、多关键字检索条件的组织和数据访问的方法。
Description
技术领域
本发明涉及移动通信领域,具体涉及移动通信网络中2G、3G和4G数据网络中海量用户上网日志数据的存储和检索方法,特别涉及一种基于分布式架构的日志数据存储和检索方法。
背景技术
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
HBase是基于Hadoop分布式系统的NoSQL数据库系统,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value内存数据库,提供内存数据缓存服务。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
深度包检测(DPI)技术,是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。
随着我国3G和4G移动通信网络的建设和发展,移动互联网用户数量迅速增长,网络流量也随之增长。运营商的思路全面转向智能化管道运营,重点关注数据网络的精细化运营。运用深度包检测(DPI)技术,运营商采集和生成海量用户上网日志数据。一是满足移动网络用户数据网络消费明细详单的实时查询需求;二是满足运营的深度数据挖掘和精细化运营的需求,通过用户上网日志数据分析用户网络使用习惯,挖掘用户的潜在需求,进而制定精细化服务策略,为用户提供个性化数据服务。面对每天数十亿,甚至数百亿条目的海量用户上网日志数据,需要解决的问题是如何高效安全的存储数据,另一个问题是如何按多个维度条件和多个关键字进行快速的数据检索。传统关系型数据库处理方案已无法满足数据的高效存储和快速检索要求。本发明针对上述问题,利用HBase和Solr实现海量用户日志数据的存储和检索问题,非常适合海量用户上网日志数据的高并发、低时延访问和高I/O吞吐率的应用场景。
发明内容
本发明提供一种基于HBase和Solr构建高效的分布式数据存储和数据检索系统的方法,解决海量用户上网日志数据的高性能存储问题和在多维度、多关键字条件下数据检索慢的问题;包括利用HBase和Solr实现海量日志数据的存储方法和日志数据的检索方法。
一种基于分布式架构的日志数据存储和检索方法,所述日志数据的存储方法包括日志数据的存储和索引创建方法,具体包括以下步骤:
a)从用户上网日志数据文件中获取日志数据条目,并按维度进行分解:支持多种用户上网日志数据格式文件,对每一条日志数据条目,按检索维度进行数据拆分。支持的数据文件格式有约定分隔符的普通文本(txt)格式,逗号分隔(csv)格式,扩展标记语言(xml)格式,系统日志(syslog)格式。
b)对用户上网日志数据业务摘要数据部分分词处理:利用Lucene中的中日韩(CJK)分词组件对业务数据进行分词处理。
c)生成全局唯一Rowkey,生成Solr索引数据:Rowkey起到主键的作用,是日志数据在HBase数据库系统中全局且唯一的标识。Rowkey的生成规则为:“时间截:UUID”。时间截的具体格式为:“YYYYMMDDhhmm”,解读为:“年月日时分”。UUID则使用通用的UUID生成器来生成。索引数据建立的过程就是生成一个Solr中一个文档(Document)数据,文档数据中主要描述日志数据拆分后的维度数据、业务数据分词后关键字与Rowkey之间接映射关系。
d)将原始用户上网日志数据和生成的索引数据写入到Redis消息队列:将Rowkey、用户上网日志数据,Solr索引数据写入到基于Redis实现的消息队列中。
e)从Redis消息队列中获取消息并解析,获取用户上网日志数据和Solr索引数据。
f)将用户上网日志数据写入到HBase数据库中:将Rowkey与用户上网日志数据以键值对(Key-Value Pair)的方式存储到HBase数据库中。
g)将Solr索引数据写入到Solr集群中:利用Solr提供的基于HTTP的SOA接口,利用HTTP POST方法将索引数据提交到Solr集群中。
一种基于分布式架构的日志数据存储和检索方法,所述日志数据的检索方法包括日志数据多维度、多关键字检索的方法,具体包括以下步骤:
h)客户端组织用户上网日志数据检索条件,调用Solr外部检索SOA接口:利用Solr的基于HTTP的SOA查询接口,通过组合维度条件和关键字条件,从Solr中检索出满足条件的日志数据条目的Rowkey。
i)客户端解析SOA接口调用返回的检索结果集,提取Rowkey列表:通过解析Solr返回的xml或json格式的检索结果数据,获取Rowkey列表。
j)客户端遍历或分页遍历Rowkey列表,从HBase中查询用户上网日志数据:利用HBase API访问HBase数据库,通过Rowkey从HBase数据库中检索出完整的用户上网日志数据。
利用本发明中描述的方法实现出的移动网络用户上网日志存储和检索,具有以下几个优点:
(1)实现高效的数据存储系统,满足海量用户上网日志数据的高效存储需求;
(2)实现数据多维度检索功能,满足海量用户上网日志数据在多维度条件下的快速检索需求。检索条件满足时间范围区间、用户标识、用户终端、用户IP、业务关键字等多维度组合;
(3)利用HBase和Solr实现的海量用户上网日志数据存储和检索系统,有效利用HBase和Solr系统的分布式特性,具有高性能、高可用,易扩展等优点。
附图说明
图1为本发明较佳实施例中各数据处理系统的拓扑连接图;
图2为本发明较佳实施例中用户上网日志数据的存储和索引创建流程图;
图3为本发明较佳实施例中通过多维度条件和多关键字条件进行快速检用户上网日志数据的流程图。
具体实施方式
本发明的一个方面实现用户上网日志数据在HBase和Solr分布式系统中存储和索引创建的方法,其中包括用户上网日志数据以条目形式存储到HBase中,建立唯一标识的方法,对用户上网日志数据进行维度拆分和维度分词预处理,建立查询维度和分词关键字与数据标识之间的索引关系的方法,对日志数据进行维度拆分的方法,对维度进行分词处理的方法,还有根据维度和分词关键字建立索引的方法。
其中,在用户上网日志数据预处理过程中,日志数据预处理装置从用户上网日志数据文件中,读取用户上网日志数据。日志数据文件的格式可以是:约定分隔符的普通文本(txt)格式,逗号分隔(csv)格式,扩展标记语言(xml)格式,系统日志(syslog)格式中的任一种格式。对每一条日志数据,按检索维度进行数据拆分。拆分的基本维度为:时间截,用户标识,用户终端标识,用户侧IP地址,用户侧端口,服务器侧IP地址,服务器侧端口,用户移动基站小区ID,业务类型,流量大小,业务持续时间长。还有根据具体业务类型,进行拆分的维度为:URL,网页内容摘要,具体网页内容,即时通信工具帐号,邮箱帐号。每一条日志数据拆分后,具体的维度划分可以认为是基本维度和具体业务维度的组合。
其中,在针对具体业务维度数据处理过程中,为了达到业务数据可检索的目的,利用Lucene中的中日韩(CJK)分词组件对业务数据进行分词处理。比如针对HTTP业务摘要数据,使用分词处理后,就可以根据关键字进行HTTP业务内容检索。
其中,在完成用户上网日志数据维度拆分和业务内容分词后,建立索引的过程中,首先生成全局唯一的Rowkey,Rowkey起到主键的作用,是日志数据在HBase数据库系统中全局且唯一的标识。Rowkey的生成规则为:“时间截:UUID”。时间截的具体格式为:“YYYYMMDDhhmm”,解读为:“年月日时分”。UUID则使用通用的UUID生成器来生成,因为时间截只精确到了分钟粒度,那么在大流量网络环境下,UUID的主要作用是用来区分同一时间截下不同的日志数据条目。Rowkey的生成规则主要从两个方面进行考量,一是用于唯一标识用户上网日志数据;二是在HBase数据库系统中,Rowkey的前半部分时间截是按时间区间检索日志数据的判断依据。
其中,在用户上网日志数据条目对应的Rowkey生成后,建立Solr索引的过程中,预处理装置生成xml格式的索引文件,索引文件建立的过程就是生成一个Solr中一个文档(Document)数据,文档数据中主要描述日志数据拆分后的维度数据、业务数据分词后关键字与Rowkey之间接映射关系,最终让条件检索成为可能。
其中,在完成Rowkey生成和Solr索引xml数据后,将Rowkey、用户上网日志数据,Solr索引数据写入到基于Redis实现的消息队列中。
最后,数据入库装置从Redis消息队列中取出用户上网日志数据和索引数据,将Rowkey与用户上网日志数据以键值对(Key-Value Pair)的方式存储到HBase数据库中,将生成的索引文件写入到Solr系统中,完成用户上网日志数据的存储。
本发明的另一方面提供用户上网日志数据多维度、多关键字检索的方法,主要包括检索条件的组织和数据访问的方法。
其中,在Solr系统中进行维度条件查询和业务关键字查询方面,利用Solr的基于HTTP的SOA查询接口,查询条件可以是各种维度和业务关键字的组合,从Solr中检索出满足条件的日志数据条目的Rowkey。
其中,根据维度条件和关键字条件组合检索出的日志数据条目的Rowkey集合,通过Rowkey从HBase中读取完整的用户上网日志数据。从而实现日志数据的快速检索。
下面结合附图及实施例对本发明做进一步说明:
本发明的较佳实施例基于HBase和Solr分布式集群环境,基本运行环境的拓扑图如图1所示,使用分布式架构,分布式集群规模支持平行扩展。HBase集群和Solr集群中主从节点协同作业功能使用ZooKeeper来实现,集群可以是多服务器节点的真实集群,也可以是单机的伪集群,但是ZooKeeper服务是必须的。还使用了基于Redis内存数据库的消息队列。
在进行具体实施之前,需要对HBase和Solr基础数据环境配置,进行数据表的初始化。
首先,在HBase中建立用户上网日志数据表,因为在本发明中,HBase承担了分布式数据存储和查询任务,只使用HBase基本的键值对(Key-Value Pair)数据存储功能,所以在HBase中建立数据表时,为了更好的说过本发明的实施过程,HBase中的用户上网日志数据表只设计一个列族(Column Family),详细的建表语句参考示例:create table‘userlog’,‘data’。表名为‘userlog’,一个列族‘data’,用户上网日志数据作为一条记录,存储在‘data’列中,在HBase中存在唯一的Rowkey与之对应。
其次,在Solr中配置检索维度,通常Solr的配置文件名称是schema.xml,其中主要的配置内容在fields字段中,具体的配置参考示例如下:
其中“id”字段对应用户上网日志数据在HBase中存储的Rowkey字段,形成一对一的映射关系。“date”字段描述用户上网时间戳,描述格式为“YYYYMMDDhhmmss”;“imsi”字段描述用户国际移动订阅标识(IMSI);“msisdn”字段描述用户的手机号码;“device”字段描述为用户的终端类型;“imei”字段描述为用户终端识别码(IMEI);“cell”字段描述为用户所在移动网络小区ID;“src_ip”字段描述用户的IP地址;“src_port”描述用户端口;“dest_ip”字段描述用户访问的服务器IP地址;“dest_port”字段描述用户访问服务器端口;“protocol”字段描述用户网络协议类型,一般为tcp或者udp;“type”字段描述用户的上网业务类型;“keywords”描述用户业务中关键字;“email”字段描述用户的电子邮箱帐号;“im”描述用户的即时通信工具帐号;注意其中的“keywords”字段是具有“multiValued”属性的,说明“keywords”字段是允许存储多个值,并支持多个关键字进行检索。
接下来,就本发明中的两个具体方法的流程进行描述:
本发明的用户上网日志数据的存储和索引创建方法S100流程如图2所示,其起始于步骤S101。
在步骤S102中,日志数据预处理装置从用户上网日志数据文件中,读取用户上网日志数据。日志数据文件的格式可以是:约定分隔符的普通文本(txt)格式,逗号分隔(csv)格式,扩展标记语言(xml)格式,系统日志(syslog)格式中的任一种格式。
其中,在日志预处理装置从日志数据文件中提取用户上网日志过程中,对每一条日志数据,按检索维度进行数据拆分。拆分的基本维度为:时间截,用户标识,用户终端类型,用户终端标识,用户移动基站小区ID,用户侧IP地址,用户侧端口,服务器侧IP地址,服务器侧端口,业务类型,网络数据包个数,网络流量大小,业务持续时间长。还有根据具体业务类型,进行拆分的维度为:URL,网页内容摘要,具体网页内容,即时通信工具帐号,邮箱帐号。每一条日志数据拆分后,具体的维度划分可以认为是基本维度和具体业务维度的组合。以逗号分隔(csv)文件格式为例,原始的用户上网日志数据描述如下:
20150201201208009,460000000000000,13000000000,
iphone,321001128420323,56021,
10.172.52.12,45129,94.12.2.34,80,tcp,24,390941,http,业务内容摘要。
对上述用户上网日志示例数据进行维度拆分后,可以得到时间戳20150201201208009;用户imsi为460000000000000;用户手机号码为13000000000;用户终端类型iphone;用户终端imei为321001128420323;用户所在小区ID为56021;用户IP为10.172.52.12;用户侧端口为45129;服务器侧IP为94.12.2.34;服务器侧端口为80;协议为tcp;数据包个数为24;网络流量为390941字节;业务类型为HTTP;还有HTTP业务内容摘要。
在步骤S103中,日志数据预处理装置中对用户业务数据分词处理,主要是针对HTTP业务和其它明文文本类数据。为了达到业务内容数据可检索的目的,利用Lucene中的中日韩(CJK)分词组件对业务数据进行分词处理。比如针对基于HTTP业务摘要数据,使用分词处理后,就可以根据关键字进行HTTP业务内容检索。
在步骤S104中,日志数据预处理装置生成Rowkey,生成Solr索引数据。
其中,Rowkey是全局唯一的,起到主键的作用,用来在HBase数据库系统中全局且唯一的标识用户上网日志数据。Rowkey的生成规则为:时间截:UUID。时间截的具体格式为:”YYYYMMDDhhmm”,解读为“年月日时分”。UUID则使用通用的UUID生成器来生成,因为时间截只精确到了分钟粒度,那么在大流量网络环境下,UUID的主要作用是用来标识相同时间截下不同的日志数据条目。Rowkey的生成规则主要从两个方面进行考量,一是用于唯一标识用户上网日志数据;二是在HBase数据库系统中,Rowkey的前半部分时间截是按时间区间检索日志数据的判断依据。按上述规则生成的Rowkey参考示例如:”201502012012:4344cde1-1ed8-11e5-9752-00ff27b158c6”。
其中,Solr索引数据生成规则参考示例如下:
上述Solr索引示例中描述了用户上网日志数据中各种关键维度。在示例中针对web业务,对用户上网业务摘要内容进行了分词处理,特别需要注意的是”keywords”字段,其中包含了几个不同的关键字,需要注意的是,”keywords”字段的”multiValued”属性发生作用的地方就在这里。而”email”字段和”im”字段为空,是因为业务类型为http,非email和im业务,用户上网日志数据中不包含邮箱帐号和即时通信工具帐号的信息。
在步骤S105中,日志数据预处理装置将完整的用户上网日志数据,Rowkey,Solr索引数据写入到Redis消息队列中。
其中,消息队列使用Redis列表List实现,形式如:Key->List[Value1,Value2,Value3,…,ValueN]。在消息队列操作上,使用”LPUSH Key Value”写消息队列,使用”LPOPKey”来读消息队列。
其中,消息队列中消息Value的结构具体组织形式如下:
消息结构中主要包括了数据唯一的标识Rowkey,完整的用户上网日志数据,Solr索引xml数据。完整的消息参考示例如下:
在步骤S106中,数据入库装置从Redis消息队列中读取消息并解析,获取消息中几大重要部分:Rowkey,用户上网日志数据条目,索引数据。数据在解析完成后,暂时存储在内存中,然后根据批量入库策略配置,数据入库装置将数据分别批量写入到HBase和Solr中。
其中,数据批量入库策略配置,配置规则可以是时间周期、数据条目的数量或者时间周期与数据条目的组合配置。参考示例:设置数据条目入库阈值为10000条,当内存中的数据到达10000条时,数据入库装置将会把内存中的数据指的写入到HBase数据库中。
在步骤S107中,数据入库装置进行HBase批量数据入库,使用HBase提供的API中的HTable操作接口批量写入。需要注意的是HBase数据库的连接配置,数据入库装置通过ZooKeeper API读取HBase集群中各节点状态信息,获取主节点地址信息,再建立与集群主节点的连接。
其中,ZooKeeper节点的配置信息,需要写入到HBase的配置hbase.xml中。
其中,HBase数据批量入库操作,可以使用API接口编程实现批量入库;也可以使用预先生成HFile,然后使用bulk load的方式进行批量入库。这两种方式都会引起HBaseRegioin分裂,只是API编程的实现方式中,分裂在入库时发生;而bulk load则在入库后分裂发生。HBase Region发生分裂时,都会引起HBase读写性能的下降,但是通过计算数据量与HBase集群节点数量的关系,合理的进行集群节点数量的规划,可以降低性能下降的幅度。
在步骤S108中,数据入库装置进行Solr索引数据批量入库,与HBase批量写库的策略配置相同,当到达批量入库策略配置阈值时,数据入库装置将把Solr索引数据批量写入到Solr集群中。
其中,索引数据在内存的组织形式如下:
其中,Solr索引入库节点的选择,数据入库装置通过ZooKeper API读取Solr集群的主节点信息,获取Solr集群主节点地址信息,确认Solr索引数据导入入口节点。
其中,在确认Solr集群的主节点信息后,根据批量导入策略条件触发索引数据批量入库操作。数据批量入库接口为Solr集群提供的基于HTTP的SOA接口。
其中,SOA接口为:“http://SOLR主节点地址:8982/solr/update”。数据入库装置编程实现一个HTTP客户端,访问SOA接口,使用HTTP POST方法将索引数据提交到Solr集群中,完成数据的。为了清楚说明Solr数据导入的过程,给出基本的导入原理,参考示例如下:
curl http://Solr主节点:8983/solr/update--data-binary@userlogs.xml\
-H'Content-type:text/xml;charset=utf-8'
至步骤S109,本发明的用户上网日志数据的存储和索引创建方法的具体实施流程描述完毕。
本发明中的通过多维度条件和多关键字条件进行快速检用户上网日志数据方法流程S200如图3所示,流程S200起始于S201。
在步骤S202中,客户端组织用户上网日志数据检索条件,按Solr提供的基于HTTP的SOA检索接口,完成检索接口参数的填写。然后通过ZooKeeper API查询Solr集群中在线且状态有效的主机节点,并向该节点发起检索请求。
其中,Solr提供的SOA检索接口形式如下:http://SOLR节点:8982/solr/query,该接口支持的参数与Solr配置文件schema.xml中数据表初始化配置中fields中的字段相同。检索接口参数的具本组织形式参考示例如下:
?imsi=460000000000000&begintime=201502010000&endtime=201502012359&type=http&keywords=新闻&keyworkds=体育&cell=560021
在上述示例中,指定了imsi、开始时间、结束时间、业务类型、关键字和基站小区ID。
调用Solr的SOA接口后,返回满足条件的检索结果,通常情况下返回的结果为json数据格式,在SOA接口中通过wt参数可以选择返回检索结果的格式,如wt=xml表示返回的检索结果为xml格式。
在步骤S203中,客户端解析返回的检索结果,提取检索结果中的Rowkey列表。
在步骤S204中,客户端访问HBase,使用HBase客户端API接口,使用遍历S203步骤中得到的Rowkey列表,将其中的一条Rowkey作为查询条件从HBase中获取完整的用户上网日志数据条目。
至步骤S205,本发明中的通过多维度条件和多关键字条件进行快速检用户上网日志数据方法流程描述完毕。
利用本发明中描述的方法实现出的移动网络用户上网日志存储和检索系统,具有以下几个优点:
(1)可以满足海量日志数据的高效存储,基本可以达到实时存储;
(2)可以实现海量日志的快速检索,检索条件满足时间范围区间、用户标识、用户终端、用户IP、业务关键字等多维度组合;
(3)利用HBase和Solr实现的海量用户上网日志数据存储和检索系统,有效利用HBase和Solr系统的分布式特性,具有高可用,易扩展,高性能等优点。
上述实施例流程描述仅为了清楚说明本发明的基本方法和装置,但本发明并不仅限于上述实施例;凡是依据本发明的技术实质上实施例所作的任何简单修改、等同变化与修饰,均落入本发明的技术方案的保护范围之内。
Claims (3)
1.一种基于分布式架构的日志数据存储和检索方法,其特征在于:包括利用HBase和Solr实现海量日志数据的存储方法和日志数据的检索方法;
所述日志数据的存储方法包括日志数据的存储和索引创建方法,具体包括以下步骤:
102、从用户上网日志数据文件中获取日志数据条目,并按维度进行分解;
103、对用户上网日志数据业务摘要数据部分进行分词处理;
104、生成全局唯一Rowkey,生成Solr索引数据,Rowkey起到主键的作用,是日志数据在HBase数据库系统中全局且唯一的标识;
105、将原始用户上网日志数据和生成的索引数据写入到Redis消息队列:将Rowkey、用户上网日志数据,Solr索引数据写入到基于Redis实现的消息队列中;
106、从Redis消息队列中获取消息并解析,获取用户上网日志数据和Solr索引数据;
107、将用户上网日志数据写入到HBase数据库中;
108、将Solr索引数据写入到Solr集群中;
所述步骤102的具体过程为:对于支持多种用户上网日志数据格式文件,对每一条日志数据条目,按检索维度进行数据拆分;支持的数据文件格式包括有约定分隔符的普通文本txt格式,逗号分隔csv格式,扩展标记语言xml格式,系统日志syslog格式;
所述步骤104中,全局唯一Rowkey的生成规则为:“时间戳:UUID”,时间戳的具体格式为:“YYYYMMDDhhmm”,解读为:“年月日时分”,UUID则使用通用的UUID生成器来生成;
所述Solr索引数据建立的过程就是生成一个Solr中一个文档Document数据,文档数据中主要描述日志数据拆分后的维度数据、业务数据分词后关键字与Rowkey之间接映射关系;
所述步骤107的具体过程为将Rowkey与用户上网日志数据以键值对Key-Value Pair的方式存储到HBase数据库中;
所述步骤108的具体过程为利用Solr提供的基于HTTP的SOA接口,利用HTTP POST方法将索引数据提交到Solr集群中;
所述日志数据的检索方法包括日志数据多维度、多关键字检索的方法,具体包括以下步骤:
202、客户端组织用户上网日志数据检索条件,调用Solr外部检索SOA接口,利用Solr的基于HTTP的SOA查询接口,通过组合维度条件和关键字条件,从Solr中检索出满足条件的日志数据条目的Rowkey;
203、客户端解析SOA接口调用返回的检索结果集,提取Rowkey列表;
204、客户端遍历Rowkey列表,从HBase中查询用户上网日志数据。
2.根据权利要求1中所述的一种基于分布式架构的日志数据存储和检索方法,其特征在于:所述步骤203中,通过解析Solr返回的xml或json格式的检索结果数据,获取Rowkey列表。
3.根据权利要求2中所述的一种基于分布式架构的日志数据存储和检索方法,其特征在于:所述步骤204中,利用HBase API访问HBase数据库,通过Rowkey从HBase数据库中检索出完整的用户上网日志数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510465138.3A CN105138592B (zh) | 2015-07-31 | 2015-07-31 | 一种基于分布式架构的日志数据存储和检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510465138.3A CN105138592B (zh) | 2015-07-31 | 2015-07-31 | 一种基于分布式架构的日志数据存储和检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138592A CN105138592A (zh) | 2015-12-09 |
CN105138592B true CN105138592B (zh) | 2019-03-26 |
Family
ID=54723941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510465138.3A Active CN105138592B (zh) | 2015-07-31 | 2015-07-31 | 一种基于分布式架构的日志数据存储和检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138592B (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991029A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种sequence数据的获取方法及装置 |
CN107025243B (zh) * | 2016-02-02 | 2020-04-24 | 北京神州泰岳软件股份有限公司 | 一种资源数据的查询方法、查询客户端和查询系统 |
CN105786990B (zh) * | 2016-02-17 | 2019-07-16 | 蓝网科技股份有限公司 | 数据库数据存储和快速查询的方法及装置 |
CN105956106B (zh) * | 2016-05-04 | 2019-12-13 | 北京思特奇信息技术股份有限公司 | 一种基于内存数据库和Hbase存取大数据的方法及系统 |
CN106055608B (zh) * | 2016-05-25 | 2019-06-07 | 北京百度网讯科技有限公司 | 自动采集和分析交换机日志的方法和装置 |
CN106055703B (zh) * | 2016-06-22 | 2020-01-14 | 北京科摩仕捷科技有限公司 | 一种日志实时分析方法及系统 |
CN107544894B (zh) * | 2016-06-23 | 2022-06-21 | 中兴通讯股份有限公司 | 一种日志处理的方法、装置及服务器 |
CN106227803A (zh) * | 2016-07-21 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种基于Hbase的海量数据导入方法及装置 |
CN106326429A (zh) * | 2016-08-25 | 2017-01-11 | 武汉光谷信息技术股份有限公司 | 一种基于solr的Hbase秒级查询方案 |
CN107870762B (zh) * | 2016-09-28 | 2021-01-26 | 北京京东尚科信息技术有限公司 | Soa调用链路跟踪的方法、装置及系统 |
CN106649679A (zh) * | 2016-12-15 | 2017-05-10 | 咪咕文化科技有限公司 | 一种基于HBase的网页日访问次数获得方法及装置 |
CN107644050A (zh) * | 2016-12-22 | 2018-01-30 | 北京锐安科技有限公司 | 一种基于solr的Hbase的查询方法及装置 |
CN106682148A (zh) * | 2016-12-22 | 2017-05-17 | 北京锐安科技有限公司 | 一种基于Solr数据搜索的方法及装置 |
CN108241541B (zh) * | 2016-12-23 | 2021-05-14 | 北京国双科技有限公司 | 数据传输的方法和装置 |
CN106709009A (zh) * | 2016-12-26 | 2017-05-24 | 镇江恒驰科技有限公司 | 一种基于云平台的电动车大数据处理系统 |
CN108255802B (zh) * | 2016-12-29 | 2021-08-24 | 北京国双科技有限公司 | 通用文本解析架构及基于所述架构解析文本的方法和装置 |
CN108268485B (zh) * | 2016-12-30 | 2021-04-30 | 亿阳安全技术有限公司 | 一种日志实时分析方法及系统 |
CN108319608A (zh) * | 2017-01-16 | 2018-07-24 | 中国移动通信集团湖南有限公司 | 访问日志存储查询的方法、装置及系统 |
CN106909671A (zh) * | 2017-02-28 | 2017-06-30 | 湖南蚁坊软件股份有限公司 | 一种NoSQL数据库条件查询的方法及系统 |
CN106777395A (zh) * | 2017-03-01 | 2017-05-31 | 北京航空航天大学 | 一种基于社区文本数据的话题发现系统 |
CN107423336B (zh) * | 2017-04-27 | 2021-01-15 | 努比亚技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN107220341A (zh) * | 2017-05-26 | 2017-09-29 | 北京中电普华信息技术有限公司 | 一种日志分析方法及日志分析系统 |
CN107273462B (zh) * | 2017-06-02 | 2020-09-25 | 浪潮云信息技术股份公司 | 一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法 |
CN107341230A (zh) * | 2017-07-03 | 2017-11-10 | 北京奇虎科技有限公司 | 异构数据库的数据同步方法及装置 |
CN107465549B (zh) * | 2017-08-18 | 2021-03-02 | 北京奇艺世纪科技有限公司 | 一种分布式消息处理方法和系统 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
CN109684279B (zh) * | 2017-10-18 | 2020-12-08 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及系统 |
CN108415925B (zh) * | 2018-01-10 | 2020-11-24 | 平安科技(深圳)有限公司 | 电子装置、数据调用日志生成及查询方法及存储介质 |
CN108133043B (zh) * | 2018-01-12 | 2022-07-29 | 福建星瑞格软件有限公司 | 一种基于大数据的服务器运行日志结构化存储方法 |
CN110109870A (zh) * | 2018-01-24 | 2019-08-09 | 江苏友上科技实业有限公司 | 一种基于Solr的海量数据快速检索系统 |
CN108363654B (zh) * | 2018-02-08 | 2021-03-23 | 上海闻泰电子科技有限公司 | 系统日志的协处理方法、系统及电子设备 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
CN109189856B (zh) * | 2018-08-15 | 2021-09-28 | 中国联合网络通信集团有限公司 | 分布式数据库服务管理方法、装置、服务器及存储介质 |
CN109446196A (zh) * | 2018-09-26 | 2019-03-08 | 努比亚技术有限公司 | 主键生成处理及确定方法、主键生成及应用服务器 |
CN109299141A (zh) * | 2018-10-19 | 2019-02-01 | 深圳市元征科技股份有限公司 | 一种数据查询的方法、系统及相关组件 |
CN109560965B (zh) * | 2018-12-03 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种分布式系统的流量获取方法、装置及设备 |
CN109559518A (zh) * | 2018-12-10 | 2019-04-02 | 安徽四创电子股份有限公司 | 一种基于结构化图像识别算法的新型智能交通卡口 |
CN109739821A (zh) * | 2018-12-18 | 2019-05-10 | 中国科学院计算机网络信息中心 | 日志数据分层存储方法、装置及存储介质 |
CN109697200A (zh) * | 2018-12-18 | 2019-04-30 | 厦门商集网络科技有限责任公司 | 一种基于Solr的HBase二级索引方法及设备 |
CN110263002A (zh) * | 2019-06-24 | 2019-09-20 | 北京小米移动软件有限公司 | 一种推送信息的存储、查询方法、装置及介质 |
CN110389989B (zh) * | 2019-07-15 | 2023-08-01 | 创新先进技术有限公司 | 一种数据处理方法、装置及设备 |
CN110569214B (zh) * | 2019-08-02 | 2023-07-28 | 杭州云纪网络科技有限公司 | 用于日志文件的索引构建方法、装置及电子设备 |
CN110704436B (zh) * | 2019-09-26 | 2022-07-19 | 郑州阿帕斯科技有限公司 | 基于Hbase的索引生成方法及装置 |
CN110888872A (zh) * | 2019-10-16 | 2020-03-17 | 浙江大搜车软件技术有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN111400267B (zh) * | 2019-11-19 | 2023-09-01 | 杭州海康威视系统技术有限公司 | 记录日志的方法和装置 |
CN110879857B (zh) * | 2019-11-27 | 2023-11-07 | 苏交科集团股份有限公司 | 一种隧道运维数据分析方法和系统 |
CN111813801B (zh) * | 2020-09-10 | 2021-01-05 | 天云融创数据科技(北京)有限公司 | 一种数据检索方法及装置 |
CN113111137A (zh) * | 2021-04-30 | 2021-07-13 | 深圳壹账通智能科技有限公司 | 分布式系统日志实时展示方法、装置、设备及存储介质 |
CN113342742A (zh) * | 2021-05-24 | 2021-09-03 | 浪潮软件股份有限公司 | 基于全文检索数据库的日志检索方法及系统 |
CN113282854A (zh) * | 2021-06-01 | 2021-08-20 | 平安国际智慧城市科技股份有限公司 | 数据请求响应方法、装置、电子设备及存储介质 |
CN113986519B (zh) * | 2021-12-29 | 2022-06-03 | 深圳市毕美科技有限公司 | 数据调度处理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036025A (zh) * | 2014-06-27 | 2014-09-10 | 蓝盾信息安全技术有限公司 | 一种基于分布式的海量日志采集系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9178935B2 (en) * | 2009-03-05 | 2015-11-03 | Paypal, Inc. | Distributed steam processing |
-
2015
- 2015-07-31 CN CN201510465138.3A patent/CN105138592B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036025A (zh) * | 2014-06-27 | 2014-09-10 | 蓝盾信息安全技术有限公司 | 一种基于分布式的海量日志采集系统 |
Non-Patent Citations (2)
Title |
---|
"(一)hbase+solr概念和环境搭建";驰驰的老爸;《http://blog.csdn.net/huoyunshen88/article/details/38082455》;20140724;第1页第1段-第9页第2段,以及代码附图 |
"基于Solr的HBase多条件查询测试";kky2010_110;《http://blog.csdn.net/kky2010_110/article/details/12970029》;20131023;第1页第1段-第10页第4段,以及附图 |
Also Published As
Publication number | Publication date |
---|---|
CN105138592A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138592B (zh) | 一种基于分布式架构的日志数据存储和检索方法 | |
US11663176B2 (en) | Data field extraction model training for a data intake and query system | |
US11704490B2 (en) | Log sourcetype inference model training for a data intake and query system | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN104699718B (zh) | 用于快速引入业务数据的方法和装置 | |
US20220036177A1 (en) | Data field extraction by a data intake and query system | |
CN106982150B (zh) | 一种基于Hadoop的移动互联网用户行为分析方法 | |
CN103559217A (zh) | 一种面向异构数据库的海量组播数据入库实现方法 | |
US9723045B2 (en) | Communicating tuples in a message | |
US9396448B2 (en) | Distributed and open schema interactions management system and method | |
TW201800967A (zh) | 分布式流式資料處理的方法和裝置 | |
CN108462888A (zh) | 用户电视及上网行为的智能关联分析方法及系统 | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN109902126B (zh) | 支持hive自动分区的加载系统及其实现方法 | |
US10747786B2 (en) | Spontaneous networking | |
CN109918425A (zh) | 一种实现数据导入非关系型数据库的方法和系统 | |
CN104636395A (zh) | 一种计数处理方法及装置 | |
CN110659283A (zh) | 数据标签处理方法、装置、计算机设备及存储介质 | |
US20180205790A1 (en) | Distributed data structure in a software defined networking environment | |
CN102724290B (zh) | 一种获取目标客户群的方法、设备及系统 | |
WO2017000592A1 (zh) | 数据处理方法、装置及系统 | |
CN103685485A (zh) | 移动终端VoIP通讯音频管理系统 | |
CN107786661B (zh) | 信息同步方法 | |
CN108846002B (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 |