一种数据存储和分析方法、装置、设备和可读介质制造方法及图纸

技术编号:23024950 阅读:17 留言:0更新日期:2020-01-03 16:52
本说明书实施例公开了数据存储和分析方法、装置、设备和可读介质。一种数据存储方法包括:取埋点配置信息,所述埋点配置信息中定义了埋点和所述埋点的埋点参数字段,其中,所述埋点参数字段包括埋点标识字段;基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;从埋点日志信息中获取埋点参数字段的值,将所述埋点参数字段的值存储到所述列式存储表中的相应列中,其中,所述列式存储表中的每行对应于一条埋点日志信息。

A data storage and analysis method, device, device and readable medium

【技术实现步骤摘要】
一种数据存储和分析方法、装置、设备和可读介质
本申请涉及计算机
,尤其涉及一种数据存储和分析方法、装置、设备和可读介质。
技术介绍
在大数据领域,一种对数据仓库中的数据进行查询的方式称为“即席查询(AdHoc)”,即席查询是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。即席查询通常的实现方式是,将数据仓库中的维度表和事实表映射到语义层,用户可以通过语义层选择表,建立表间的关联,最终生成SQL语句。即席查询不同于通常的查询。通常的查询在系统设计和实施时是已知的,所以可以在系统实施时通过建立索引、分区等技术来优化这些查询,从而提高这些查询的效率。而即席查询是用户在使用时临时生成的,系统无法预先优化这些查询。客户端上报的用户行为日志数据多为文本化的JSON(JavaScriptObjectNotation)字符串,其中包括该埋点相关的参数信息,上层的分析系统需要基于这些数据进行筛选、聚合等操作,最终输出查询结果。对于客户端上报的日志数据,较常见的方式是将文本化的JSON数据直接存储为一列,在查询过程中通过数据仓库计算引擎提供的getJSONObject的方式进行字段的抽取和筛选。这种数据查询方法的问题在于需要多次解析JSON操作,会消耗大量的计算资源,花费大量的计算时间,无法满足即席查询时秒级的数据聚合和筛选需求。
技术实现思路
有鉴于此,本申请实施例提供了一种数据存储和分析方法、装置、设备及可读介质,用于提高即时用户行为查询和分析的效率。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种数据存储方法,包括:获取埋点配置信息,所述埋点配置信息中定义了埋点和所述埋点的埋点参数字段,其中,所述埋点参数字段包括埋点标识字段;基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同。本说明书实施例提供的一种数据分析方法,包括:获取数据分析配置信息,其中,所述数据分析配置信息包括时间粒度、待分析日期和待分析埋点标识;根据所述数据分析配置信息,筛选符合所述待分析日期和所述待分析埋点标识的埋点日志信息,其中,所述埋点日志信息存储在列式存储表中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;基于筛选的所述埋点日志信息,计算数据分析结果。本说明书实施例提供的一种数据存储装置,包括:获取模块,用于获取埋点配置信息,所述埋点配置信息中定义了埋点和所述埋点的埋点参数字段,其中,所述埋点参数字段包括埋点标识字段;存储表结构确定模块,用于基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;数据存储模块,用于从埋点日志信息中获取埋点参数字段的值,将所述埋点参数字段的值存储到所述列式存储表中的相应列中,其中,所述列式存储表中的每行对应于一条埋点日志信息。本说明书实施例提供的一种数据分析装置,包括:配置信息获取模块,用于获取数据分析配置信息,其中,所述数据分析配置信息包括时间粒度、待分析日期和待分析埋点标识;埋点日志信息获取模块,用于根据所述数据分析配置信息,筛选符合所述待分析日期和所述待分析埋点标识的埋点日志信息,其中,所述埋点日志信息存储在列式存储表中,所述列式存储表的每行对应于一条埋点日志信息,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;计算模块,用于基于筛选的所述埋点日志信息,计算数据分析结果。本说明书实施例提供的一种数据存储和分析设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:执行上述数据存储方法或上述数据分方法。本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述任一实施例所述的数据存储方法或数据分析方法。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过将埋点日志数据转存到列式存储表中,使得进行用户行为分析时,避免进行多次解析JSON的操作,对用户行为数据的筛选、聚合更加高效,可以消耗较少的计算资源、花费较短的时间,从而满足即席查询时秒级呈现查询结果的需求。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本说明书实施例中数据存储和数据分析方法的应用场景的示意图;图2为本说明书实施例提供的一种数据存储方法的流程示意图;图3示出了本申请实施例的数据存储方法的流程图;图4为本说明书实施例提供的一种数据分析方法的流程示意图;图5为本说明书实施例提供的对应于图2的一种数据存储装置的结构示意图;图6为本说明书实施例提供的对应于图4的一种数据分析装置的结构示意图;图7为本说明书实施例提供的一种数据存储和分析设备的结构示意图。具体实施方式为了解决数据查询过程中存在的需要多次解析JSON操作,消耗大量的计算资源,花费大量的计算时间,无法满足即席查询时达到秒级的数据聚合和筛选需求的问题,本申请提出了一种面向即席查询场景的非结构化文本数据转化为列式存储的数据存储方法。本申请的实施例通过将非结构化文本数据拆解为非重复的多列存储,合理利用列式存储在筛选和聚合操作上的高压缩比、高读取速率的优势,可以方便上层的查询引擎进行快速查询引用,使得在数据查询时无需进行多次解析JSON操作,消耗的计算资源少,花费的计算时间短,可以满足即席查询时的秒级数据聚合和筛选需求。为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本说明书实施例中数据存储和数据分析方法的应用场景的示意图。如图1所示,在本申请的实施例中,服务端包括用于设置埋点配置信息的埋点管理系统和行为分析系统。其中,埋点管理系统和行为分析系统可以设置在相同或不同的服务器上。埋点管理系统可以用于设置埋点配置信息和/或用于同步更新埋点配置信息。埋点管理系统可以提供一键同步的功本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:/n获取埋点配置信息,所述埋点配置信息中定义了埋点和所述埋点的埋点参数字段,其中,所述埋点参数字段包括埋点标识字段;/n基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;/n从埋点日志信息中获取埋点参数字段的值,将所述埋点参数字段的值存储到所述列式存储表中的相应列中,其中,所述列式存储表中的每行对应于一条埋点日志信息。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:
获取埋点配置信息,所述埋点配置信息中定义了埋点和所述埋点的埋点参数字段,其中,所述埋点参数字段包括埋点标识字段;
基于所述埋点配置信息,确定列式存储表的列结构,其中,所述列式存储表中的每列对应一个埋点参数字段并且各列对应的埋点参数字段彼此不同;
从埋点日志信息中获取埋点参数字段的值,将所述埋点参数字段的值存储到所述列式存储表中的相应列中,其中,所述列式存储表中的每行对应于一条埋点日志信息。


2.根据权利要求1所述的方法,其特征在于,所述基于所述埋点配置信息,确定列式存储表的列结构,具体包括:
将所述埋点参数字段存储到第一MySQL数据表中;
对所述第一MySQL数据表中的埋点参数字段进行去重,得到第二MySQL数据表;
基于所述第二MySQL数据表中的埋点参数字段,确定列式存储表的列结构,其中,所述列式存储表中的列一一对应于所述第二MySQL数据表中的埋点参数字段。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取更新的埋点配置信息,所述埋点配置信息中定义了更新的埋点参数字段;
基于所述更新的埋点参数字段,得到更新的第一MySQL数据表;
基于所述更新的第一MySQL数据表,与所述第二MySQL数据表中的字段进行对比;
若所述更新的第一MySQL数据表与所述第二MySQL数据表中具有不同的埋点参数字段,则基于所述更新的第一MySQL数据表,更新所述第二MySQL数据表,得到更新的第二MySQL数据表;
基于所述更新的第二MySQL数据表中的埋点参数字段,更新所述列式存储表,得到更新的列式存储表,其中,所述更新的列式存储表中的列一一对应于所述更新的第二MySQL数据表中的一个埋点参数字段;
从埋点日志信息中获取埋点参数字段的值,将埋点参数字段的值存储到所述更新的列式存储表的相应列中,其中,所述埋点日志信息是基于所述更新的埋点配置信息上报的。


4.根据权利要求1所述的方法,其特征在于,所述从埋点日志信息中获取埋点参数字段的值之前,还包括:
将用户端根据埋点配置信息上报的非结构化文本格式的用户行为日志数据存储到消息中间件中;
使用第一数据处理引擎,从所述消息中间件中读取所述用户行为日志数据;
将所述用户行为日志数据存储到hive底层表中,得到埋点日志信息。


5.根据权利要求4所述的方法,其特征在于,所述从埋点日志信息中获取埋点参数字段的值,将所述埋点参数字段的值存储到所述列式存储表中的相应列中,具体包括:
以预定周期,获取新的埋点日志信息;
将所述新的埋点日志信息中的埋点参数字段的值存储到所述列式存储表中的所述相应列中。


6.根据权利要求4所述的方法,其特征在于,所述将用户端根据埋点配置信息上报的非结构化文本格式的用户行为日志数据存储到消息中间件中之后,还包括:
使用第二数据处理引擎,从所述消息中间件中读取所述用户行为日志数据;
将所述用户行为日志数据存储到缓存中,所述缓存中的数据格式为键-值形式,其中,键为埋点标识-埋点参数字段,值为埋点参数字段的值。


7.一种数据分析方法,其特征在于,所述方法包括:
获取数据分析配置信息,其中,所述数据分析配置信息包括时间粒度、待分析日期和待分析埋点标识;
根据所述数据分析配置信息,筛选符合所述待分析日期和所述待分析埋点标识的埋点日志信息,其中,所述埋点日志信息存储在列式存储表中,所述列式存储表的每行对应于一条埋点日志信息,...

【专利技术属性】
技术研发人员:刘少伟陈璇高元胜徐嘉亮徐唐沈仁奎邓鑫鑫
申请(专利权)人:北京思维造物信息科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1