CN107451149B - 流量数据查询任务的监控方法及其装置 - Google Patents
流量数据查询任务的监控方法及其装置 Download PDFInfo
- Publication number
- CN107451149B CN107451149B CN201610375299.8A CN201610375299A CN107451149B CN 107451149 B CN107451149 B CN 107451149B CN 201610375299 A CN201610375299 A CN 201610375299A CN 107451149 B CN107451149 B CN 107451149B
- Authority
- CN
- China
- Prior art keywords
- sql
- log file
- grouping
- fields
- aggregation
- 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
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
Abstract
本公开是关于一种流量数据查询任务的监控方法及其装置,属于互联网通信技术领域。该方法包括:系统定时扫描获取预设时长内的日志文件;对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。本发明能够实现大数据环境下流量数据模型常用聚合字段和分组字段使用情况的监控。
Description
技术领域
本公开涉及互联网通信技术,尤其涉及一种流量数据查询任务的监控方法及其装置。
背景技术
随着互联网技术的发展以及各大电商公司业务的扩张,大数据分析已经起到了越来越重要的作用,而互联网行业体量最大的数据就是“网站流量(page view,PV,即页面浏览量)”数据,所有访客在网站的一切行为都会被记录下来,用来统计分析以及挖掘。而从巨大的流量数据中,通过执行数据查询任务的方式提取需要的数据,会耗用相当多的服务器集群资源。服务器集群,是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
因此,需要对流量数据的查询任务的执行过程做到有效的监控。现有技术是直接读取全部用户发起的查询任务的执行日志,通过配置好的规则统计执行中的任务数量、排队中的任务数量、任务执行时长、服务器集群资源占用等信息,并显示在大数据查询平台界面。这种方式仅实现了对用户发起的查询任务的外部情况的反馈,而缺少查询任务内容本身的监控,无法为流量数据模型的优化提供支撑。
因此,需要一种新的流量数据查询任务的监控方法及其装置。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种流量数据查询任务的监控方法及其装置,实现大数据环境下数据流量数据模型常用聚合字段和分组字段使用情况的监控,对模型的设计和优化提供决策依据。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种流量数据查询任务的监控方法,包括:系统定时扫描获取预设时长内的日志文件;对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
根据本公开的一实施方式,其中对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息包括:对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句;判断所述SQL语句中是否包含流量表名称;当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象;分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
根据本公开的一实施方式,其中提取所述日志文件中的SQL语句通过字符串匹配方式提取。
根据本公开的一实施方式,其中所述SQL解析工具包括JSqlParser、fdb-sql-parser和General SQL Parser for Java中的任意一种。
根据本公开的一实施方式,还包括:接收一用户终端的对所述监控数据的展示请求;读取所述监控数据,并对其进行格式化处理;响应所述展示请求,以预设格式向所述用户终端返回可视化的所述监控数据。
根据本公开实施例的另一方面,提供一种流量数据查询任务的监控装置,包括:扫描模块,其用于系统定时扫描获取预设时长内的日志文件;解析服务模块,其用于对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;统计存储模块,其用于匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
根据本公开的一实施方式,其中所述解析服务模块包括:日志解析服务子模块,其用于对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句,判断所述SQL语句中是否包含流量表名称;SQL解析服务子模块,其用于当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象,分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
根据本公开的一实施方式,还包括:展示服务模块,其用于响应来自于一用户终端的展示请求,对所述监控数据进行格式化处理并以预设格式向所述用户终端返回可视化的所述监控数据。
根据本公开的一实施方式,其中所述解析服务模块和所述展示服务模块位于同一应用服务层。
根据本公开的一实施方式,还包括:第一存储模块,其用于存储所述日志文件;第二存储模块,其用于存储所述监控数据;其中,所述第一存储模块和所述第二存储模块位于同一存储层。
根据本公开实施例的再一方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:系统定时扫描获取预设时长内的日志文件;对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
根据本公开的流量数据查询任务的监控方法及其装置,通过对流量数据模型查询任务的SQL解析,获得SQL中聚合函数及分组函数对应的聚合字段及分组字段的执行频次,进行实现流量数据模型查询任务内容本身的监控。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1示意性示出根据本公开示例实施方式的流量数据查询任务的监控方法的流程图;
图2A示意性示出根据本公开示例实施方式的流量数据查询任务的监控方法的流程图;
图2B示意性示出基于图2A所示监控方法中日志解析服务方法的流程图;
图2C示意性示出基于图2A所示监控方法中SQL解析服务方法的流程图;
图3示意性示出根据本公开示例实施方式的所述监控方法中监控数据的展示方法的流程图;
图4示意性示出根据本公开示例实施方式的流量数据查询任务的监控装置的框图;
图5示意性示出根据本公开示例实施方式的流量数据查询任务的监控装置的系统架构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、系统、步骤等。在其它情况下,不详细示出或描述公知结构、方法、系统、实现、材料或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。
图1示意性示出根据本公开示例实施方式的流量数据查询任务的监控方法的流程图。
如图1所示,在步骤S110,系统定时扫描获取预设时长内的日志文件。
例如,系统可以设置为每天获取前一天零点到当天零点之间的日志文件。当然,所述预设时长不限于此处所举例的,可以根据系统需求进行自由配置。
在步骤S120,对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息。
在示例性实施例中,其中所述步骤S120进一步包括:对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句;判断所述SQL语句中是否包含流量表名称;当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象;分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
本发明实施例中的所述分组函数,指数据库脚本的分组函数;所述聚合函数,指数据库脚本的聚合函数。
针对hive数据仓库,分组函数主要指:group by,cluster by,distributeby等。聚合函数是对一组值执行计算并返回单一的值的函数,它经常与select语句的group by子句一同使用。
SQL SERVER中具体有以下聚合函数:
(1)avg,返回指定组中的平均值,空值被忽略。
(2)count,返回指定组中项目的数量。
(3)max,返回指定数据的最大值。
(4)min,返回指定数据的最小值。
(5)sum,返回指定数据的和,只能用于数字列,空值被忽略。
(6)count_big,返回指定组中的项目数量,与count函数不同的是count_big返回bigint值,而count返回的是int值。
(7)grouping,产生一个附加的列,当用cube或rollup运算符添加行时,输出值为1;当所添加的行不是由cube或rollup产生时,输出值为0。
(8)binary_checksum,返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
(9)checksum_agg,返回指定数据的校验值,空值被忽略。
(10)checksum,返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
(11)stdev,返回给定表达式中所有值的统计标准偏差。
(12)stdevp,返回给定表达式中的所有值的填充统计标准偏差。
(13)var,返回给定表达式中所有值的统计方差。
(14)varp,返回给定表达式中所有值的填充的统计方差。
group by数据分组,SQL中数据可以按列名分组,搭配聚合函数十分实用。
例:假设分析师在大数据查询平台查询流量数据的SQL为:
select用户唯一标示,count(*)from流量表group by用户唯一标示
这里group by为分组函数,count为聚合函数;group by后面的“用户唯一标示”定义为分组字段;count中的字段“*”定义为聚合字段。
在示例性实施例中,其中提取所述日志文件中的SQL语句通过字符串匹配方式提取。
例如,假设日志的格式为:
2016-05-18 18:49:10,758Starting Job=job_1460114094787_2743749,sql=select用户唯一标示,count(*)from流量表group by用户唯一标示,result=succeed
通过匹配sql=之后和,result=之前,能够提取出SQL内容。
在示例性实施例中,其中所述SQL解析工具包括JSqlParser、fdb-sql-parser和General SQL Parser for Java中的任意一种。
其中,JSqlParser,一个基于Java的SQL解析的开源项目。它可以把SQL语句转换为Java对象。
在步骤S130,匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
在示例性实施例中,还包括:接收一用户终端的对所述监控数据的展示请求;读取所述监控数据,并对其进行格式化处理;响应所述展示请求,以预设格式向所述用户终端返回可视化的所述监控数据。
本发明实施方式提供的流量数据查询任务的监控方法,通过监控大数据环境下流量数据模型的SQL查询任务内容,通过对流量数据模型大量查询SQL的解析,获得SQL中聚合函数以及分组函数的执行频次,进而实现流量数据模型聚合字段和分组字段使用情况的监控,通过对SQL查询任务内容的监控,指导流量数据模型的持续优化。大数据环境下,流量数据模型基于其字段繁多并且体量巨大的特点,基本不会直接与其他表联查,从而使得通过解析SQL并统计SQL内容进行监控成为可能。
图2A示意性示出根据本公开示例实施方式的流量数据查询任务的监控方法的流程图。
如图2A所示,在步骤S210,系统设置定时扫描任务。
系统设置定时扫描任务,例如,每天凌晨定时启动扫描日志文件任务,并调用后续流程。
在步骤S220,读取存储于第一存储模块中预设时长内的日志文件。日志文件由大数据查询平台产生,是监控数据的来源,供解析服务处理。
例如,读取日志文件,逐行读取前一天的日志数据。
在步骤S230,判断是否该日志文件末尾?如果是,则跳转到步骤S290结束本次监控操作;如果否,则进入下一步。
在步骤S240,调用日志解析服务模块,获取相应的SQL语句。
如图2B所示,该日志解析步骤S240进一步包括以下步骤:
在步骤S241,判断该SQL语句是否包含流量表名称?如果该SQL语句不包含流量表名称,则直接跳转到步骤S245结束本次监控操作;如果该SQL语句包含流量表名称,则进入下一步。
在步骤S242,对该日志文件进行日志解析。
读取日志文件内容,并通过字符串匹配方式解析出SQL语句。
在步骤S243,判断本次日志解析是否成功?如果解析不成功,则直接跳转到步骤S245结束本次监控操作;如果解析成功,则进入下一步。
导致日志解析不成功的原因可能是:由于存储日志的源头变更引起日志中出现异常格式,不符合预设的规则,导致解析失败,或者由于网络或通信故障,导致日志解析失败。
在步骤S244,提取所述日志文件中解析出的SQL语句,进入主流程中的步骤S250。
在步骤S245,结束。
解析服务中的日志解析服务,获取前一天零点到当天零点之间的日志文件,循环逐行读取该日志文本,通过字符串匹配方式提取日志文本中的SQL脚本,并在每一次提取到SQL脚本后对脚本进行过滤,判断SQL是否包含流量表名称,若包含则调用下述的SQL解析服务进行后续处理,若不包含则舍弃。
在步骤S250,调用SQL解析服务模块,将所述SQL语句转化成SQL对象。
如图2C所示,该SQL解析服务步骤S250进一步包括以下步骤:
在步骤S251,接收所述日志解析服务模块传递过来的SQL语句并对其进行SQL解析。
利用SQL解析工具解析提取到的SQL语句。
在步骤S252,判断本次SQL解析是否成功?如果不成功,则跳转到步骤S255结束本次监控操作;如果解析成功,则进入下一步。
导致SQL解析失败的可能原因是由于SQL中含有特殊字符,与采用的SQL解析工具中的分隔符混淆。
在步骤S253,提取从所述SQL语句中解析出来的SQL元素。
解析成功后,将SQL语句解析后的对象逐层判断,提取与预设分组函数、聚合函数及分组字段、聚合字段匹配的SQL元素。
在步骤S254,将所述SQL元素分类,返回主流程S260。
在示例性实施例中,按照预设好的SQL元素分类,标识提取到的SQL元素所属类别。这里的分类只有两种:聚合函数;分组函数。上述提取出来的SQL元素包括:字段名称、函数名称等,字段名称和函数名称会成组出现,例如sum(a),a字段与sum函数是对应的,所匹配的分类就是聚合函数;而group by b,group by与b是对应的,所匹配的分类就是分组函数。
在步骤S255,结束。
解析服务中的SQL解析服务,接收日志解析服务传来的SQL语句,通过SQL解析工具(例如,JsqlParser)将SQL语句转换成Java程序中的SQL对象,并将对象中的元素分类提取,识别其中的分组函数和聚合函数,匹配流量表中预设好的“分组字段”和“聚合字段”,并进行该分组字段和聚合字段执行频次的统计,统计后的数据会存储在监控数据库表中。
在步骤S260,利用流量监控表来存储所述SQL对象中的数据明细。
其中,所述数据明细包括日期、字段名称、函数类别、函数名称、创建时间等。将解析后的SQL元素信息(即上述的SQL对象中的数据明细)存储在监控数据库中的流量监控表。
在步骤S270,识别所述数据明细中的聚合函数和分组函数,匹配流量中预设的聚合字段和分组字段。
在步骤S280,统计所述分组字段和所述聚合字段的执行频次,统计后的监控数据存储于流量监控统计表中,其中所述流量监控表和所述流量监控统计表均位于监控数据库中。继续跳回到步骤S230判断是否该日志文件末尾,循环执行上述步骤S230至步骤S280直至到该日志文件末尾。
将SQL元素信息明细按日期、字段名称、函数类别、函数名称统计条目数量,并存储在流量监控统计表中。
监控数据库存储处理后的数据,包括解析结果数据(流量监控表)和统计分析数据(流量监控统计表)以及相关维度表等。
流量监控表(如下表1所示)用来存储SQL解析的结果数据明细,每一天的每一条SQL的每一个字段形成一条记录;流量监控统计表(如下表2所示)用来存储流量监控表按层级汇总的数据,即按日期、字段名称、函数类别、函数名称统计条目数量。函数类别包括分组函数和聚合函数,字段名称与函数类别相对应,函数类别为“分组函数”时,其对应的字段则为分组字段;函数类别为聚合函数时,其对应的字段则为聚合字段,从而统计分组及聚合字段的使用频次。日期维度、字段维度、函数类别、函数名称表(如下表3,4,5和6所示)为维度表,用作统计分析使用。
表1流量监控表
表2流量监控统计表
表3日期维度表
表4字段维度表
表5函数类别维度表
表6函数名称维度表
其中,所述流量监控表和所述流量监控统计表为事实数据表(the facttable)。事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性维度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与维度表中对应项的相关索引字段之外的任何数据。
包含在事实数据表中的“度量值”有两种:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息。可以汇总具体时间段内分组字段、聚合字段的执行频次。一般来说,一个事实数据表都要和一个或多个维度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
例如,日期维度表中的日期id和事实表流量监控统计表中的日期id相匹配,称为“键属性”。因为每个日期id只有一个日期名称,显示时用名称来替代整数值,所以它仍然被认为是键属性的一部分。
在数据仓库中,维度表中的键属性必须为维度的每个成员包含一个对应的唯一值。用关系型数据库术语描述就是,键属性称为主键列。每个维度表中的主键值都与任何相关的事实表中的键值相关。在维度表中出现一次的每个键值都会在事实表中出现多次。这称为一对多关系。在事实表中,键值列(例如,FK1,FK2,FK3,FK4,它是一对多关系的“多”的一方)称为外键列。关系型数据库使用匹配的主键列(在维度表中)和外键列(在事实表中)值来联接维度表到事实表。
维度表示你要对数据进行分析时所用的一个量,比如你要分析分组字段执行频次情况,你可以选择按日期来进行分析,或按字段来分析。这样的按日期或者按字段分析就构成一个维度。前面的示例就可以有四个维度:日期、字段、函数类别和函数名称。另外每个维度还可以有子维度(称为属性)。
而事实表是数据聚合后依据某个维度生成的结果表。上面的这些表就是存在于数据仓库中的。维度表的主键(PK)一般都取整型值的标志列类型,这样也是为了节省事实表的存储空间。
在步骤S290,结束。
图3示意性示出根据本公开示例实施方式的所述监控方法中监控数据的展示方法的流程图。
如图3所示,所述监控方法还包括以下步骤:在步骤S310,接收用户从监控界面层发送来的展示请求。
用户通过浏览器浏览监控页面,通过大数据查询平台发送查询流量数据的请求。
在步骤S320,从监控数据库中读取相应的数据。
该浏览器页面调用后台读取相应的监控数据。
在步骤S330,对该相应的数据进行格式化处理。
后台调用数据格式化服务子模块,处理读取后的监控数据,进行格式化处理。
在步骤S340,将格式化后的数据返回该监控界面层,调用展示控件以预设图形显示该数据。
将格式化后的监控数据传递给展示控件,并显示在所述浏览器界面上。
用户浏览监控页面时,系统调用数据格式化服务,读取流量监控统计表中的数据,并按照前端监控界面层中的展示控件的格式标准将该数据组织成不同图形(例如,饼图,柱状图,直方图等)所需的XML格式,并传给所述展示控件,以便于用户可以直观的以可视化的方式查看。
本发明实施方式提供的流量数据查询任务的监控方法,基于电商大数据环境,从流量数据模型分组字段、聚合字段使用频次的角度进行监控,寻找规律,促进流量数据模型的优化。例如,假设在流量数据模型中,某天有1万个URL被访问,每个URL访问10万次,数据库里就会有10亿条记录。通过分组字段和聚合字段使用频率的监控,可以发现大多数都是按URL分组统计某天某个URL的访问量,那么就可以按URL的维度统计汇总数据设计新的流量数据模型,就可以节约大量的统计时间和资源。
图4示意性示出根据本公开示例实施方式的流量数据查询任务的监控装置的框图。
如图4所示,该装置包括:扫描模块410,其用于系统定时扫描获取预设时长内的日志文件;解析服务模块420,其用于对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;统计存储模块430,其用于匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5示意性示出根据本公开示例实施方式的流量数据查询任务的监控装置的系统架构图。
如图5所示,该系统架构包括监控界面层510,其通过展示控件511以图形化的方式展示获取到的监控结果数据,所述展示控件511位于所述监控界面层510;应用服务层520,解析服务模块521和展示服务模块522位于所述应用服务层520,其中所述解析服务模块521包括:日志解析服务子模块5212,其用于对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句,判断所述SQL语句中是否包含流量表名称;SQL解析服务子模块5211,其用于当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象,分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。其中所述展示服务模块522,其用于响应来自于一用户终端的展示请求,对所述监控数据调用格式化处理子模块5221进行格式化处理并以预设格式向所述用户终端返回可视化的所述监控数据。
在示例性实施例中,还包括存储层530,第一存储模块531和第二存储模块532位于所述存储层530。其中所述第一存储模块531分为两块区域,其第一区域5311其用于存储所述SQL日志数据,第二区域用于存储文本数据。其中所述第二存储模块532为监控数据库,其用于存储所述监控数据。
其中,所述第一存储模块531采用Hadoop。其最底部是Hadoop Distributed FileSystem(HDFS),它存储Hadoop集群中所有存储节点上的文件。HDFS的上一层是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。
本发明实施方式提供的流量数据查询任务的监控装置,由系统任务每天定时调用解析服务扫描当天日志,进行日志解析及SQL解析;系统任务将解析后的结果数据存储在监控数据库中;在用户浏览监控页面时,调用展示服务通过展示控件进行数据可视化并呈现。
根据本公开实施例的再一方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:系统定时扫描获取预设时长内的日志文件;对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据。
在示例性实施例,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明实施例中其它内容参考上述发明实施例中的内容,在此不再赘述。
图1、2A-2C和3示出根据本公开示例实施方式的流量数据查询任务的监控方法的流程图。该方法可例如利用如图4或5所示的流量数据查询任务的监控装置实现,但本公开不限于此。需要注意的是,图1、2A-2C和3仅是根据本公开示例实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,图1、2A-2C和3所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块/进程/线程中同步或异步执行的。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本公开的流量数据查询任务的监控方法及其装置,通过对流量数据模型查询任务的SQL解析,获得SQL中聚合函数及分组函数对应的聚合字段及分组字段的执行频次,进行实现流量数据模型查询任务内容本身的监控,对数据流量模型的设计和优化提供决策依据。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
以上具体地示出和描述了本公开的示例性实施方式。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (10)
1.一种流量数据查询任务的监控方法,其特征在于,包括:
系统定时扫描获取预设时长内的日志文件;
对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;
匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据;
其中对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息包括:
对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句;
判断所述SQL语句中是否包含流量表名称;
当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象;
分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
2.根据权利要求1所述的方法,其特征在于,其中提取所述日志文件中的SQL语句通过字符串匹配方式提取。
3.根据权利要求1所述的方法,其特征在于,其中所述SQL解析工具包括JSqlParser、fdb-sql-parser和General SQL Parser for Java中的任意一种。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收一用户终端的对所述监控数据的展示请求;
读取所述监控数据,并对其进行格式化处理;
响应所述展示请求,以预设格式向所述用户终端返回可视化的所述监控数据。
5.一种流量数据查询任务的监控装置,其特征在于,包括:
扫描模块,其用于系统定时扫描获取预设时长内的日志文件;
解析服务模块,其用于对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;
统计存储模块,其用于匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据;
其中所述解析服务模块包括:
日志解析服务子模块,其用于对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句,判断所述SQL语句中是否包含流量表名称;
SQL解析服务子模块,其用于当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象,分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
6.根据权利要求5所述的装置,其特征在于,还包括:
展示服务模块,其用于响应来自于一用户终端的展示请求,对所述监控数据进行格式化处理并以预设格式向所述用户终端返回可视化的所述监控数据。
7.根据权利要求6所述的装置,其特征在于,其中所述解析服务模块和所述展示服务模块位于同一应用服务层。
8.根据权利要求5所述的装置,其特征在于,还包括:
第一存储模块,其用于存储所述日志文件;
第二存储模块,其用于存储所述监控数据;其中,
所述第一存储模块和所述第二存储模块位于同一存储层。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
系统定时扫描获取预设时长内的日志文件;
对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息;
匹配所述元素信息中分别对应于所述SQL语句中的分组函数和聚合函数的分组字段和聚合字段,对所述分组字段和聚合字段的频次进行统计并存储为监控数据;
其中对所述日志文件进行解析服务,分类提取所述日志文件中包含用于存储流量数据的流量表的名称的SQL语句的元素信息包括:
对所述日志文件进行日志解析服务,提取所述日志文件中的SQL语句;
判断所述SQL语句中是否包含流量表名称;
当所述SQL语句中包含流量表名称时,通过SQL解析工具将所述SQL语句转换成SQL对象;
分类提取所述SQL对象中的元素,识别其中的分组函数和聚合函数,匹配所述流量表中预设的对应的分组字段和聚合字段。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610375299.8A CN107451149B (zh) | 2016-05-31 | 2016-05-31 | 流量数据查询任务的监控方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610375299.8A CN107451149B (zh) | 2016-05-31 | 2016-05-31 | 流量数据查询任务的监控方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451149A CN107451149A (zh) | 2017-12-08 |
CN107451149B true CN107451149B (zh) | 2020-11-24 |
Family
ID=60485806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610375299.8A Active CN107451149B (zh) | 2016-05-31 | 2016-05-31 | 流量数据查询任务的监控方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451149B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033404B (zh) * | 2018-08-03 | 2022-03-11 | 北京百度网讯科技有限公司 | 日志数据处理方法、装置和系统 |
CN109388621B (zh) * | 2018-10-12 | 2021-05-07 | 厦门市美亚柏科信息股份有限公司 | 用于解析日志文件的方法、装置以及计算机可读介质 |
CN110032560B (zh) * | 2018-11-06 | 2023-05-02 | 创新先进技术有限公司 | 一种监控图表的生成方法和装置 |
CN109656979B (zh) * | 2018-12-24 | 2021-05-04 | 北京小米移动软件有限公司 | 数据统计分析方法、装置及存储介质 |
CN110032445B (zh) * | 2019-03-07 | 2021-03-02 | 北京东方国信科技股份有限公司 | 大数据聚集计算方法及装置 |
CN110175161B (zh) * | 2019-04-25 | 2023-11-14 | 平安科技(深圳)有限公司 | 记录日志的方法、装置、计算机设备及存储介质 |
CN110309110A (zh) * | 2019-05-24 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 一种大数据日志监控方法及装置、存储介质和计算机设备 |
CN110941526A (zh) * | 2019-10-29 | 2020-03-31 | 平安科技(深圳)有限公司 | 日志存储方法、装置、服务器及计算机可读存储介质 |
CN110990433B (zh) * | 2019-11-21 | 2023-06-13 | 深圳马可孛罗科技有限公司 | 一种实时业务监控预警方法及预警装置 |
CN111090670B (zh) * | 2019-12-31 | 2023-08-04 | 杭州依图医疗技术有限公司 | 一种数据预聚合的方法、系统、计算设备及存储介质 |
CN112069021B (zh) * | 2020-08-21 | 2024-02-20 | 北京五八信息技术有限公司 | 流量数据的存储方法、装置、电子设备和存储介质 |
CN112818004B (zh) * | 2021-01-21 | 2023-06-27 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、查询方法及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294966A (zh) * | 2013-03-12 | 2013-09-11 | 中国工商银行股份有限公司 | 一种数据库的安全访问控制方法以及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156740B (zh) * | 2011-04-15 | 2013-02-13 | 国都兴业信息审计系统技术(北京)有限公司 | Sql语句的处理方法及系统 |
CN102253984A (zh) * | 2011-06-28 | 2011-11-23 | 用友软件股份有限公司 | 查询语句处理装置和查询语句处理方法 |
US20130262412A1 (en) * | 2012-03-28 | 2013-10-03 | Brett Derek Hawton | Method and System For Database Transaction Log Compression On SQL Server |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
US9146946B2 (en) * | 2013-05-09 | 2015-09-29 | International Business Machines Corporation | Comparing database performance without benchmark workloads |
CN103297435B (zh) * | 2013-06-06 | 2016-12-28 | 中国科学院信息工程研究所 | 一种基于web日志的异常访问行为检测方法与系统 |
-
2016
- 2016-05-31 CN CN201610375299.8A patent/CN107451149B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294966A (zh) * | 2013-03-12 | 2013-09-11 | 中国工商银行股份有限公司 | 一种数据库的安全访问控制方法以及系统 |
Non-Patent Citations (1)
Title |
---|
嵌入式数据库技术的研究与实现;刘飞;《中国优秀硕士学位论文全文数据库》;20080531;I138-517 * |
Also Published As
Publication number | Publication date |
---|---|
CN107451149A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451149B (zh) | 流量数据查询任务的监控方法及其装置 | |
CN110362544B (zh) | 日志处理系统、日志处理方法、终端及存储介质 | |
CN111526060A (zh) | 业务日志的处理方法及系统 | |
US20200372007A1 (en) | Trace and span sampling and analysis for instrumented software | |
KR101463974B1 (ko) | 마케팅을 위한 빅데이터 분석 시스템 및 방법 | |
CN106021583B (zh) | 页面流量数据的统计方法及其系统 | |
CN111930547A (zh) | 一种故障定位方法、装置及存储介质 | |
CN111881011A (zh) | 日志管理方法、平台、服务器及存储介质 | |
CN107291778B (zh) | 数据的收集方法及装置 | |
EP2802979A2 (en) | Processing store visiting data | |
CN112100149B (zh) | 日志自动化分析系统 | |
CN112988863A (zh) | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 | |
CN115392799B (zh) | 归因分析方法、装置、计算机设备及存储介质 | |
CN112307191A (zh) | 多系统交互式日志查询方法、装置、设备及存储介质 | |
CN111897867A (zh) | 一种数据库日志统计方法、系统及相关装置 | |
CN114564482A (zh) | 一种面向多实体的标签系统及处理方法 | |
CN106557483B (zh) | 一种数据处理、数据查询方法及设备 | |
CN117251414B (zh) | 一种基于异构技术的数据存储及处理方法 | |
CN110704472A (zh) | 数据查询统计方法及装置 | |
Yu et al. | Web content information extraction based on DOM tree and statistical information | |
US20200110815A1 (en) | Multi contextual clustering | |
US10346421B1 (en) | Data profiling of large datasets | |
CN112182025A (zh) | 日志分析方法、装置、设备与计算机可读存储介质 | |
CN112052259A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
US20230153357A1 (en) | Method of processing an observation information, electronic device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |