埋点数据访问控制方法、装置以及计算机设备、存储介质转让专利

申请号 : CN202110764232.4

文献号 : CN113420099B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林佳铖

申请人 : 广州方硅信息技术有限公司

摘要 :

本申请公开一种埋点数据访问控制方法、装置以及计算机设备、存储介质,涉及互联网直播领域;该方法包括:响应埋点数据提交事件,解析出结构化数据及非结构化数据,添加到关系型数据结构的埋点数据表中;由数据仓库服务引擎启用数据视图,数据视图被构造为关系型数据结构,其数据引用自埋点数据表,其字段为埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;向数据仓库服务引擎查询表达式,从该查询表达式所指定的数据视图中查询获取结果数据;将结果数据推送至客户端显示。本申请能够对多源的埋点数据进行统一且标准化的处理,能提升互联网直播应用程序产品的埋点数据的采集和访问效率。

权利要求 :

1.一种埋点数据访问控制方法,其特征在于,包括如下步骤:

响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构化 数据被整体存储于单个字段中;

由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;

响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据;

将查询获取的结果数据推送至所述客户端显示以应答所述查询请求。

2.根据权利要求1所述的埋点数据访问控制方法,其特征在于,其还包括如下步骤:响应用于获取埋点数据采集代码的应用程序接入事件,获取为该应用程序锚定的埋点数据相对应的字段;

验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段;

接收用于获取所述新增字段相对应的埋点数据的表达式以完成新增字段与其相对应的埋点数据的关联关系配置;

根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码。

3.根据权利要求2所述的埋点数据访问控制方法,其特征在于,验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段,包括如下步骤:判断所述埋点数据相对应的字段是否为埋点数据表的可引用字段,若否,将新增字段配置为埋点数据表的可引用字段,若是则继续执行后续步骤;

判断所述埋点数据相对应的字段是否为数据视图的可引用字段,若否,将新增字段配置为数据视图的可引用字段,若是则继续执行后续步骤;

判断所述埋点数据相对应的字段是否为字段词典的可引用字段,若否,将新增字段配置为字段词典的可引用字段,若是则继续执行后续步骤;

将字段词典中的可引用字段配置为数据视图的可引用字段;

将数据视图中的可引用字段配置为埋点数据表的可引用字段。

4.根据权利要求2所述的埋点数据访问控制方法,其特征在于,根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码之后,还包括如下步骤:将所述为该 应用程序锚定的埋点数据相对应的字段与各个数据视图的数据结构模型进行结构匹配,将数据结构模型与之相匹配的数据视图其所引用的埋点数据表配置为用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据,否则,接收新建的相匹配的数据结构模型及用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据新的埋点数据表,根据该数据结构模型生成新的数据视图。

5.根据权利要求1至4中任意一项所述的埋点数据访问控制方法,其特征在于,所述数据仓库服务引擎为数据视图引用数据而执行如下步骤:获取该数据视图所引用的每个埋点数据表的结构化数据,一一对应引用该结构化数据中各个字段的内容;

获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容;

将所述非结构化数据所包含的多个字段的内容对应引用至所述数据视图预设的各个相应字段中。

6.根据权利要求5中所述的埋点数据访问控制方法,其特征在于,获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容,包括如下步骤:确定数据视图所引用的各个埋点数据表,针对各个埋点数据表获取其中的非结构化数据,所述非结构化数据被封装为基于键值对实现的格式;

根据相应格式规范对所获取的非结构化数据进行解析,提取出其中的各个键值对;

将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的内容。

7.根据权利要求1至4中任意一项所述的埋点数据访问控制方法,其特征在于,所述数据仓库服务引擎执行所述查询表达式时,包括如下步骤:解析所述查询表达式,所述查询表达式包含统计表达式;

根据所述查询表达式从其指定的数据视图中获取相关数据记录;

根据所述查询表达式中的统计表达式对所述相关数据记录进行统计运算,获得统计运算结果;

将所述统计运算结果格式化为结果数据。

8.一种埋点数据访问控制装置,其特征在于,其包括:

数据采集模块,用于响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构化 数据被整体存储于单个字段中;

数据映射模块,被配置为由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;

查询请求模块,用于响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据;

结果反馈模块,用于将查询获取的结果数据推送至所述客户端显示以应答所述查询请求。

9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述埋点数据访问控制方法的步骤。

10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述埋点数据访问控制方法的步骤。

说明书 :

埋点数据访问控制方法、装置以及计算机设备、存储介质

技术领域

[0001] 本申请实施例涉及互联网直播领域,尤其涉及一种埋点数据访问控制方法、装置以及计算机设备、存储介质。

背景技术

[0002] 为了管控互联网的各种在线服务的各方面质量,一般会在在线服务相对应的应用程序(例如网络直播应用程序)或访问页面中植入埋点数据采集代码,在相关采集代码被运行时,采集到相关埋点数据,提交至云端服务器存储以便进行数据分析。对于此类互联网在线服务产品而言,埋点的数据量与上报维度基本占据了其业务数据最大的比例,其统计、监控及分析已成为互联网产品的各个发展阶段不可或缺的工作之一。
[0003] 随着互联网平台所提供的业务的不断发展丰富,互联网产品多样化,产品版本多样化,埋点上报内容也随之不断变化。海量不同类型不同内容的埋点数据集中到数据仓库中,如何优化埋点事件管理方案,使之管理规范、清晰的同时,能够高效输出相关数据结果,并且降低各类用户的使用难度,已成为互联网数据领域的共同关注点。
[0004] 目前互联网业内有一定规模的企业都已开始搭建埋点管理、数据仓库管理与可视化自助查询中的一个或多个系统。但这些系统一般各自为政,无法将三者高效有机统一起来,不利于在降低用户使用门槛的同时提升埋点数据采集和分析效率。

发明内容

[0005] 本申请的目的在于克服现有技术中至少部分不足而提供一种埋点数据访问控制方法及其相应的装置、计算机设备及存储介质。
[0006] 为解决上述技术问题,本申请实现的一个技术方案是:
[0007] 本申请的一种埋点数据访问控制方法,其包括如下步骤:
[0008] 响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构数据被整体存储于单个字段中;
[0009] 由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;
[0010] 响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据;
[0011] 将查询获取的结果数据推送至所述客户端显示以应答所述查询请求。
[0012] 本申请的另一实施例中,所述埋点数据访问控制方法还包括如下步骤:
[0013] 响应用于获取埋点数据采集代码的应用程序接入事件,获取为该应用程序锚定的埋点数据相对应的字段;
[0014] 验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段;
[0015] 接收用于获取所述新增字段相对应的埋点数据的表达式以完成新增字段与其相对应的埋点数据的关联关系配置;
[0016] 根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码。
[0017] 进一步具体化的实施例中,验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段,包括如下步骤:
[0018] 判断所述埋点数据相对应的字段是否为埋点数据表的可引用字段,若否,将新增字段配置为埋点数据表的可引用字段,若是则继续执行后续步骤;
[0019] 判断所述埋点数据相对应的字段是否为数据视图的可引用字段,若否,将新增字段配置为数据视图的可引用字段,若是则继续执行后续步骤;
[0020] 判断所述埋点数据相对应的字段是否为字段词典的可引用字段,若否,将新增字段配置为字段词典的可引用字段,若是则继续执行后续步骤;
[0021] 将字段词典中的可引用字段配置为数据视图的可引用字段;
[0022] 将数据视图中的可引用字段配置为埋点数据表的可引用字段。
[0023] 进一步扩展的实施例中,根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码之后,还包括如下步骤:
[0024] 将所述为应用程序锚定的埋点数据相对应的字段与各个数据视图的数据结构模型进行结构匹配,将数据结构模型与之相匹配的数据视图其所引用的埋点数据表配置为用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据,
[0025] 否则,接收新建的相匹配的数据结构模型及用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据新的埋点数据表,根据该数据结构模型生成新的数据视图。
[0026] 较佳的一种实施例中,所述数据仓库服务引擎为数据视图引用数据而执行如下步骤:
[0027] 获取该数据视图所引用的每个埋点数据表的结构化数据,一一对应引用该结构化数据中各个字段的内容;
[0028] 获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容;
[0029] 将所述非结构化数据所包含的多个字段的内容对应引用至所述数据视图预设的各个相应字段中。
[0030] 进一步扩展的实施例中,获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容,包括如下步骤:
[0031] 确定数据视图所引用的各个埋点数据表,针对各个埋点数据表获取其中的非结构化数据,所述非结构化数据被封装为基于键值对实现的格式;
[0032] 根据相应格式规范对所获取的非结构化数据进行解析,提取出其中的各个键值对;
[0033] 将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的内容。
[0034] 优选的一种实施例中,所述数据仓库服务引擎执行所述查询表达式时,包括如下步骤:
[0035] 解析所述查询表达式,所述查询表达式包含统计表达式;
[0036] 根据所述查询表达式从其指定的数据视图中获取相关数据记录;
[0037] 根据所述查询表达式中的统计表达式对所述相关数据记录进行统计运算,获得统计运算结果;
[0038] 将所述统计运算结果格式化为结果数据。
[0039] 为解决上述技术问题,本申请实现的一个技术方案是:
[0040] 本申请的一种埋点数据访问控制装置,其包括:
[0041] 数据采集模块,用于响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构数据被整体存储于单个字段中;
[0042] 数据映射模块,被配置为由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;
[0043] 查询请求模块,用于响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据;
[0044] 结果反馈模块,用于将查询获取的结果数据推送至所述客户端显示以应答所述查询请求。
[0045] 本申请的另一实施例中,所述埋点数据访问控制装置还包括用于执行如下功能的验证同步模块,其包括:接入响应子模块,被配置为响应用于获取埋点数据采集代码的应用程序接入事件,获取为该应用程序锚定的埋点数据相对应的字段;验证新增子模块,用于验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段;接收配置子模块,被配置为接收用于获取所述新增字段相对应的埋点数据的表达式以完成新增字段与其相对应的埋点数据的关联关系配置;代码生成子模块,被配置为根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码。
[0046] 进一步具体化的实施例中,所述验证新增子模块被配置为实现如下具体功能:判断所述埋点数据相对应的字段是否为埋点数据表的可引用字段,若否,将新增字段配置为埋点数据表的可引用字段,若是则继续执行后续步骤;判断所述埋点数据相对应的字段是否为数据视图的可引用字段,若否,将新增字段配置为数据视图的可引用字段,若是则继续执行后续步骤;判断所述埋点数据相对应的字段是否为字段词典的可引用字段,若否,将新增字段配置为字段词典的可引用字段,若是则继续执行后续步骤;将字段词典中的可引用字段配置为数据视图的可引用字段;将数据视图中的可引用字段配置为埋点数据表的可引用字段。
[0047] 进一步扩展的实施例中,所述验证同步模块还包括结构匹配子模块,被配置为将所述为应用程序锚定的埋点数据相对应的字段与各个数据视图的数据结构模型进行结构匹配,将数据结构模型与之相匹配的数据视图其所引用的埋点数据表配置为用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据,否则,接收新建的相匹配的数据结构模型及用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据新的埋点数据表,根据该数据结构模型生成新的数据视图。
[0048] 较佳的一种实施例中,所述数据仓库服务引擎被配置为为数据视图引用数据而实现如下模块:结构化引用子模块,用于获取该数据视图所引用的每个埋点数据表的结构化数据,一一对应引用该结构化数据中各个字段的内容;非结构化解析子模块,用于获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容;非结构化引用子模块,将所述非结构化数据所包含的多个字段的内容对应引用至所述数据视图预设的各个相应字段中。
[0049] 进一步扩展的实施例中,所述非结构化解析子模块实现如下功能:确定数据视图所引用的各个埋点数据表,针对各个埋点数据表获取其中的非结构化数据,所述非结构化数据被封装为基于键值对实现的格式;根据相应格式规范对所获取的非结构化数据进行解析,提取出其中的各个键值对;将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的内容。
[0050] 优选的一种实施例中,所述数据仓库服务引擎执行所述查询表达式时,运行如下功能:解析所述查询表达式,所述查询表达式包含统计表达式;根据所述查询表达式从其指定的数据视图中获取相关数据记录;根据所述查询表达式中的统计表达式对所述相关数据记录进行统计运算,获得统计运算结果;将所述统计运算结果格式化为结果数据。
[0051] 为解决上述技术问题本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述埋点数据访问控制方法的步骤。
[0052] 为解决上述技术问题本申请实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述埋点数据访问控制方法的步骤。
[0053] 与现有技术相比,本申请具有如下优点:
[0054] 本申请通过字段词典对埋点数据提交事件的数据报文、埋点数据表、数据视图等所采用的字段进行标准化统一,针对非结构化数据,在数据报文与埋点数据表中借助专用字段进行集中统一存储,对于结构化数据,则按字段逐一对应存储,然后在进行数据呈现的数据视图中,则将所述非结构数据从埋点数据表中以字段为单位提取出来对应到数据视图的相应字段中,数据视图基于关系型数据结构建立各个字段,这些字段涵盖被引用的结构化数据中的各个具体字段,也涵盖被引用的非结构化数据内的各个具体字段。因此,结构化数据中的各个字段可以被规划为埋点所需的基础数据,而非结构化数据可以被规划为埋点所需的扩展数据,前者提供标准化框架,后者提供扩展性能,在本申请中便被有机统一为标准化的信息单元。由此,便于适用高度统一的查询模板对数据视图所引用的埋点数据执行数据查询,并且整个查询过程高效迅速,所得结果数据格式也能高度统一,实现了数据仓储、数据治理、数据分析的高度协调统一,方便将各个原本分立的数据处理模块进行统一的系统化部署,适于服务互联网在线服务产品较多情况下的埋点数据统筹管理之需。
[0055] 概而言之,本申请通过统一的元信息管理,在埋点设计时引入结构化与非结构化数据,并利用数据传输协议设计与主流数据仓库服务引擎兼容结构化与非结构化数据的特性,经过数据仓库设计与开发,成功实现将上报数据接入可视化自助查询平台。故此,本申请出于互联网产品(应用)需要通过海量埋点数据监控、分析用户行为的考虑,设计、管理可扩展性埋点元信息,并结合数据仓库技术将之接入可视化自助查询平台,可以实现数据上报至统计结果全流程即席半自动或自动化产出的功能,减少元数据管理压力的同时,降低了用户查询多结构上报数据的使用门槛,有效提高互联网产品埋点数据的管理及数据分析/监控效率。

附图说明

[0056] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0057] 图1为本申请的埋点数据访问控制方法在其典型实施例中体现的流程示意图;
[0058] 图2为本申请的数据结构映射关系示意图,用于表示数据报文、埋点数据表、数据视图、字段词典之间的数据结构对应关系;
[0059] 图3为本申请用于编辑查询模板的一个编辑页面的一种实施例的示意图;
[0060] 图4为本申请用于获取埋点数据采集代码的一种实施例的流程示意图;
[0061] 图5为本申请为从应用程序接入事件触发至实现自助查询全流程的一种实施例所编制的属于参考性质的程序流程图;
[0062] 图6为本申请处理新增字段的一种实施例所体现的流程示意图;
[0063] 图7为本申请实施例中为所接入的应用程序产品实现埋点数据、埋点数据表、数据视图之间关联所体现的判断流程示意图;
[0064] 图8为本申请实施例中数据仓库服务引擎实现数据视图的数据引用所体现的流程示意图;
[0065] 图9为本申请实施例中数据仓库服务引擎解析非结构化数据所体现的流程示意图;
[0066] 图10为本申请实施例中数据仓库服务引擎解析执行查询表达式的过程所体现的流程示意图;
[0067] 图11为本申请的埋点数据访问控制装置的基本结构示意图;
[0068] 图12为本申请一个实施例的计算机设备的基本结构框图。

具体实施方式

[0069] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
[0070] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0071] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0072] 本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0073] 本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
[0074] 需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
[0075] 本申请相关技术方案可部署在云端服务器,其可以与业务上相关的服务器实现数据通信连接以协调在线服务,还可与其他相关服务器构成逻辑上相关联的服务机群,来为相关的终端设备例如智能手机、个人计算机、第三方服务器等提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与本申请的服务器建立数据通信链路,以便访问和使用所述服务器所提供的服务。
[0076] 对于服务器而言,一般通过提供在线服务的服务引擎开放相应的程序接口供各种终端设备进行远程调用,本申请中适于部署于服务器的相关技术方案,便可以此种方式实现于服务器中。
[0077] 本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
[0078] 请参阅图1,本申请的一种埋点数据访问控制方法,被编程实现为应用程序,部署在分布式服务器集群的一个或多个服务器中,在其典型实施例中,包括如下步骤:
[0079] 步骤S1100、响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构数据被整体存储于单个字段中:
[0080] 为便于理解,请先结合图2了解本申请的数据结构。图2是示意出本申请基于SQL、Oracle、Foxpro等关系型数据结构所实现的数据仓库中埋点数据表、数据视图、携带埋点数据的数据报文以及预设的字段词典之间彼此数据结构、字段之间的协同对应关系。
[0081] 图2中,所述的数据报文一般由预植入客户端应用程序或访问页面中的埋点数据采集代码触发所述的埋点数据提交事件,由该提交事件所携带,由服务器解析而获取。所述数据报文按照预协议的格式规范,以便服务器能够准确解析出其携带的各种具体元信息。其中,埋点数据主要包括两种性质的数据,即基础数据和扩展数据,所述的基础数据是标准化的,具有多个通用指定的字段,在构造所述埋点数据采集代码时即按照标准化的基础数据的结构来预定要采集的内容,可以通用于多种所述的采集代码中;所述的扩展数据则可以是具体适应每个互联网产品、每份埋点数据采集代码而个性化定制的,其字段通常只是该互联网产品或该采集代码而单独指定。可以理解,所述扩展数据相对所述基础数据而言,具有可扩展性,方便通过预先添加或删除字段来实现对所述的扩展数据所包含的内容的增删。
[0082] 所述的基础数据采用结构化数据进行表征,结构化数据主要是基于关系型数据结构的特点,按照字段与其内容之间的对应关系进行列表式描述,方便关系型数据结构进行解析。相反,所述扩展数据采用非结构化数据进行表征,例如Map、JSON等基于键值对的数据结构格式来进行表征为一个字符串,其中每个键值对的键域对应关系型数据结构中的一个字段,而其值域则为该字段的数据内容,数据报文于是便可将整份非结构化数据视为一个整体字段来处理。因此,在所述数据报文以及埋点数据表中,对于所述结构化数据,可以按其所包含的各个字段对应存储相关数据;对于所述非结构化数据,则专门为其设立单个字段,将其字符串集中存储为该单个字段的对应内容。也即是说,对于所述数据报文及埋点数据表而言,无需对所述的非结构化数据,也即所述的扩展数据的数据内容做解析处理,这样才能实现兼容性统一处理各种埋点数据采集方案,为实现统一的数据治理奠定标准化的技术架构。
[0083] 所述的数据报文还可以携带一个埋点类型属性,以便通过其埋点类型属性建立起其与用于存储其所携带的埋点数据的埋点数据表之间的关联,使得根据该埋点数据类型便可迅速定位到所述数据报文中的埋点数据所应存储的具体埋点数据表。一般而言,埋点数据采集代码会预先建立起这种关联,即在产生该采集代码之前,即已经预先匹配好该采集代码所采集的埋点数据的数据结构与一个或多个埋点数据表之间的对应存储关系,因此,在埋点数据提交事件提交其数据报文后,便可根据数据报文中指出的埋点类型,确定对应的埋点数据表,将数据报文中携带的埋点数据对应存储到该埋点数据表中。
[0084] 所述的埋点数据表,一般是预先设计的,用于存储埋点数据的原始形式,实践中,在一些实施例中,其基于关系型数据结构实现,因而包括多个字段,其中一个字段用于专门存储非结构化数据,其余字段用于存储结构化数据中相应字段的数据内容。
[0085] 所述埋点数据表一般根据其数据结构与所述的数据报文相匹配,以便确保数据报文中的各个具体数据均可对应存储到埋点数据表中,且,理论上只要数据结构能兼容,则无论数据报文是否来源于同一互联网产品或同一埋点数据采集代码,均可存储于同一埋点数据表中。一般而言,由于不同的采集代码其所采集的埋点数据的数据结构可能不同,因此,埋点数据表适宜按不同采集代码类型进行划分设计。当然,某些实施例中,也可为不同的互联网产品单独匹配一张埋点数据表,本领域技术人员对此可灵活实施。
[0086] 步骤S1200、由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中:
[0087] 请继续结合图2,在本申请部署的实现关系型数据结构的数据仓库服务引擎中,相应提供数据视图的功能,这种情况下,可以借助数据视图来展现一个或多个埋点数据表的各种信息,包括埋点数据表中埋点数据的原始信息和/或统计信息。
[0088] 所述数据视图同理被构造为关系型数据结构,包括多个字段,每个字段均分别对应存储各个数据记录的具体的数据内容。与埋点数据表不同的是,在数据结构上,数据视图的字段不仅包括所述结构化数据中的各个字段,也将所述非结构化数据的字符串内的各个键值对相对应的字段还原到数据视图的数据结构中,使每个键值对均有一个字段与之相对应,以便键值对中值域的数据内容可以存储为该字段的数据内容。
[0089] 所述数据视图可以是到其中一个或多个埋点数据表的各个预选定的字段之间的映射,这种映射关系使得数据视图中的数据记录不仅可以是与埋点数据表中的数据记录一一对应的情况,在一些实施例中,也可以是通过将埋点数据表中的数据记录进行统计之后形成的数据视图中的一个数据记录的一对多映射的情况。视乎本领域技术人员如何预先定义数据视图与一个或多个埋点数据表之间的具体映射算法而定。
[0090] 由此可知,所述数据视图中各个字段的数据内容,实际上是引用自其预先指定的一个或多个埋点数据表的,这些埋点数据表可以是同一所述的埋点类型所指向的,也可以是多个所述的埋点类型所指向的。所述数据视图可以仅包括埋点数据表中的结构化数据,也可以仅包括数据表中的非结构化数据,但是,所述非结构化数据在数据视图中不再被整体存储于单个字段,而是被解析成多个属于关系型数据结构的字段并对应存储。这种情况下,埋点数据采集代码所获取的埋点数据属于扩展数据部分,便在数据视图中得以更直观的呈现,方便查询引用。
[0091] 如图2所示,为了实现标准化规范,本申请采用字段词典对在数据报文、埋点数据表、数据视图中呈现的字段进行统一,具体而言,本申请约束各个环节所采用的字段必须是预置于所述字段词典内的字段,否则将不被相应的环节所接受。由此,在某些实施例中涉及各个具体环节的业务逻辑中,可以对这种统一性进行验证以确保遵守所述的标准化规范。
[0092] 本申请的数据仓库服务引擎负责自动启用网络管理用户预配置的数据视图,以便按照其预配置的映射关系,自动从所述埋点数据表中引用各种数据,包括所述结构化数据和非结构化数据,而所述埋点数据表中的埋点数据则如前所述由埋点数据提交事件所提供,由此,可以理解,通过访问数据视图,便可间接访问所述的埋点数据表中所存储的埋点数据。
[0093] 步骤S1300、响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据:
[0094] 为了实现对所述数据视图中的数据的调用,本申请通过其构建的查询系统为客户端访问埋点数据开放服务,客户端可以通过进入该查询系统所提供的可视化查询模板编辑页面,在其中调用、新建、修改查询模板构造查询表达式后,通过提交该查询表达式至本申请的查询系统所在的服务器,来实现数据查询的目的。
[0095] 所述的编辑页面,请参阅图3的示例,构造出位于图中左侧的查询模板编辑区和位于图中右侧的查询表达式编辑区,在该查询模板编辑区的下方,还配置有图表化呈现查询表达式执行后返回的结果数据的图表区。以此为例,客户端用户可以通过所述的查询模板编辑区调用历史使用过的查询模板进行修改,或者自行新建编辑新的查询模板等等,实现对查询模板的部分编辑。对应查询模板编辑区的编辑操作,会在查询表达式编辑区自动生成相应的查询表达式,客户端用户当然也可在其中对查询表达式进行更为具体的编辑。最后,客户端用户可以将其编辑成果加以保存,以备后用。客户端用户可以以编辑页面自动触发提交的方式,或者通过编辑页面提供的提交控件来实现构造埋点数据查询请求以向本申请所部署的远程服务器提交查询表达式,以便由远程服务器驱动数据仓库服务引擎根据该查询表达式在数据视图中执行查询。
[0096] 所述查询表达式一般包括对要查询的数据视图、数据视图中具体字段的指定,通常还可以结合时间信息进行表达,或者进一步结合一些诸如分类汇总、求均值之类的统计运算表达式等,以便指示数据仓库服务引擎为其查询某一时间段内某些数据视图中的数据,返回相应的查询结果数据。关于查询表达式的构造,本领域技术人员熟知关系型数据库原理,均可根据实际需求灵活实施,恕不赘述。
[0097] 所述的数据仓库服务引擎接收到所述查询表达式后,便根据该查询表达式所指定的数据视图执行对应的查询检索,获取符合该查询表达式的规范所要求的结果数据,原路返回至该远程服务器。
[0098] 步骤S1400、将查询获取的结果数据推送至所述客户端显示以应答所述查询请求:
[0099] 本申请的所述远程服务器从数据仓库服务引擎获取其执行查询返回的结果数据后,可以按需进一步对其进行格式化处理,然后推送至所述的客户端完成对所述查询请求的响应,以触发该客户端显示该结果数据。
[0100] 至此,埋点数据自采集后以数据报文上报提交存储于埋点数据表,到被转换为数据视图展现形式,再到被查询表达式查询获取,期间涉及依据本申请的技术方案所构建的数据采集代码、数据仓库服务引擎以及查询系统,这些不同部分均通过本申请的技术方案实现了有机统一,构成统一服务框架,即使该些部分部署于不同的服务器中,也不影响本申请的创造精神的体现。
[0101] 便于实现埋点数据采集的实施例中,相较于本申请的典型实施例,请结合图4所示的流程示意图以及图5所示的程序流程图,所述埋点数据访问控制方法还包括如下步骤:
[0102] 步骤S2100、响应用于获取埋点数据采集代码的应用程序接入事件,获取为该应用程序锚定的埋点数据相对应的字段:
[0103] 在本申请架构了统一服务框架的基础上,可以开放新增互联网产品的接入,为其提供埋点数据采集代码,以便为其服务于其埋点数据的采集与访问。
[0104] 为此,所述服务框架可以接收需要获取埋点数据采集代码的应用程序的接入事件,从该接入事件中获取为该应用程序锚定的埋点数据相对应的字段。
[0105] 为了实现为该应用程序锚定其所需采集的埋点数据相对应的字段,可以开放一个配置页面给相应的管理用户进行配置。所述管理用户在该配置页面中指定其所需采集的埋点数据的具体字段实现所述的锚定,然后在发起所述的接入请求时,将这些字段封装在一起包含于所述的接入事件中传递给本申请提供服务的服务器即可。
[0106] 步骤S2200、验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段:
[0107] 一般而言,所述被锚定的字段,一般是所述字段词典中已有的字段。为了确保在所述埋点数据表、数据视图以及字段词典中统一对被锚定的字段的定义,因此,需要判断被锚定的字段是否为新增字段,如果并非新增字段,则略过本步骤;否则,需要确保三者中均存在所述的新增字段,使该字段在埋点数据表、数据视图以及字段词典中均为可引用字段。
[0108] 步骤S2300、接收用于获取所述新增字段相对应的埋点数据的表达式以完成新增字段与其相对应的埋点数据的关联关系配置:
[0109] 当被锚定的字段是新增字段时,开发人员可能需要为其编写相应的代码表达式,以便被引用至后续产生的所述埋点数据采集代码中,当该采集代码被运行时,可以借助其所引用的表达式获取到相应字段的埋点数据。根据开发人员配置完新增字段与表达式的关联关系后便可提交给本申请的服务器,本申请的服务器于是便可掌握这种关联关系,后续方可服务于采集代码的生成。
[0110] 步骤S2400、根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码:
[0111] 当完成前述的准备工作后,本申请的服务器便可根据所述被锚定的字段,生成相应的埋点数据采集代码,用于在其被运行时实现各个字段的数据内容的采集。可以理解,所生成的埋点数据采集代码适于为其相对应的应用程序所引用,开发人员可以将其植入所述应用程序的开发代码中。
[0112] 由于本实施例的建基于本申请典型实施例的实施,因此,可以充分利用本申请所构造的服务框架的优势,为程序开发提供高效的代码获取方式,提高软件工程的开发效率。
[0113] 请结合图5和图6,本申请更具体的一个实施例中,所述步骤S2200被实现为包括如下具体步骤:
[0114] 步骤S2211、判断所述埋点数据相对应的字段是否为埋点数据表的可引用字段,若否,将新增字段配置为埋点数据表的可引用字段,若是则继续执行后续步骤:
[0115] 针对所述被锚定的字段,逐个字段的进行验证,判断每个被锚定的字段是否为埋点数据表的可引用字段,判断是否属于埋点数据表的可引用字段的方式,可以通过为埋点数据表预构建一个可引用字段池,在可引用字段池中查询该被锚定的字段是否存在来实现。如果是则继续执行后续步骤,如果不是,则表示该被锚定的字段至少是该可引用字段池中的新增字段,因此,可将其添加到该可引用字段池中,作为埋点数据表的可引用字段。
[0116] 步骤S2212、判断所述埋点数据相对应的字段是否为数据视图的可引用字段,若否,将新增字段配置为数据视图的可引用字段,若是则继续执行后续步骤:
[0117] 进一步判断同一被锚定的字段是否是数据视图的可引用字段。同理,判断是否属于数据视图的可引用字段的方式,可以通过为数据视图预构建一个可引用字段池,在可引用字段池中查询该被锚定的字段是否存在来实现。如果是则继续执行后续步骤,如果不是,则表示该被锚定的字段至少是该可引用字段池中的新增字段,因此,可将其添加到该可引用字段池中,作为视图数据的可引用字段。
[0118] 步骤S2213、判断所述埋点数据相对应的字段是否为字段词典的可引用字段,若否,将新增字段配置为字段词典的可引用字段,若是则继续执行后续步骤:
[0119] 进一步判断同一被锚定的字段是否为所述字段词典中的可引用字段,也即是否存在于该字段词典中,若是,则继续执行后续步骤,否则,则表示该被锚定的字段至少是该字段词典中的新增字段,因此,可将其添加到该字段词典中,作为字段词典中的可引用字段。
[0120] 步骤S2214、将字段词典中的可引用字段配置为数据视图的可引用字段:
[0121] 为了确保字段词典中的新增字段被同步至数据视图的可引用字段池中,因此,可以在本步骤中进一步查询确认所述新增字段是否存在于数据视图的可引用字段池中,确保将其同步至该可引用字段池中。
[0122] 步骤S2215、将数据视图中的可引用字段配置为埋点数据表的可引用字段:
[0123] 同理,为了确保字段词典和数据视图的可引用字段池中的新增字段被同步至埋点数据表的可引用字段池中,因此,可以在本步骤中进一步查询确认所述新增字段是否存在于埋点数据表的可引用字段池中,确保将其同步至该可引用字段池中。
[0124] 本实施例给出了具体的程序实现业务逻辑,通过该业务逻辑能够确保同一被锚定的字段能够在字段词典、埋点数据表、数据视图,乃至所述的数据报文中得到标准化规范,其实现简单高效。
[0125] 请结合图5与图7,本申请进一步扩展的实施例中,所述步骤S2400被具体实现为包括如下步骤:
[0126] 步骤S2411、将所述为应用程序锚定的埋点数据相对应的字段与各个数据视图的数据结构模型进行结构匹配,将数据结构模型与之相匹配的数据视图其所引用的埋点数据表配置为用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据,
[0127] 步骤S2412、否则,接收新建的相匹配的数据结构模型及用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据新的埋点数据表,根据该数据结构模型生成新的数据视图。
[0128] 可以理解,本实施例中的两个步骤,实际可通过同一条件语句来实现,其适应所述被锚定的字段所形成的关系数据结构是否能与已存在的任意一个数据视图的数据结构模型进行匹配,来决定是否采用既有的数据视图的数据结构模型,或者接收新的数据结构模型来实现新增数据视图。一般而言,当数据视图的数据结构模型被新增时,相应的埋点数据表的数据结构也会改变,因此,不仅需要接收新建的用于生成数据视图的数据结构模型,往往也需接收新建的用于生成埋点数据表的数据结构模型,然后根据这些数据结构模型生成的新的数据视图及新的埋点数据表即可。当然,如果已存在相匹配的埋点数据表,则重点考虑新建数据视图所需的业务逻辑即可,对此,本领域技术人员可灵活实施。
[0129] 请结合图1和图8,本申请进一步具体化的实施例中,本申请所述数据仓库服务引擎为数据视图引用数据而执行如下步骤:
[0130] 步骤S1210、获取该数据视图所引用的每个埋点数据表的结构化数据,一一对应引用该结构化数据中各个字段的内容:
[0131] 对于结构化数据而言,每个埋点数据表,其属于结构化数据部分相应的字段,映射到数据视图中,以彼此的字段相对应而引用数据内容,也即,数据视图中各个字段对应引用自其关联埋点数据表中属于结构化数据的各个相应字段。
[0132] 步骤S1220、获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容:
[0133] 对于非结构化数据而言,由于其在埋点数据表中被存储于一个独立字段中,因此,当数据结构对这一独立字段进行引用时,需要先将该独立字段中的数据内容提取出来进行解析,以键值对为单位,将每个键值对解析为一个字段及其对应的数据内容之间的对应关系数据。
[0134] 步骤S1230、将所述非结构化数据所包含的多个字段的内容对应引用至所述数据视图预设的各个相应字段中:
[0135] 如前所述,数据视图是按照关系型数据结构进行组织的,因此,其将用于与各个键值对相对应的字段也一并配置好,由此,从埋点数据表中解析出来的各个键值对中的字段和数据内容,便可被数据视图中相应的字段所引用,从而将埋点数据表中的非结构化转换为数据视图中的结构化数据。
[0136] 本实施例进一步实现了将埋点数据表中的非结构化数据转换成数据视图中的结构化数据的转换业务逻辑,实现这一逻辑,使非结构化数据的引用更趋统一,可以借助数据视图的灵活性来进行各种非结构化数据的组织和呈现,使统一服务框架的实现标准化。
[0137] 请结合图8和图9,进一步具体化的实施例,所述步骤S1220包括如下具体步骤:
[0138] 步骤S1221、确定数据视图所引用的各个埋点数据表,针对各个埋点数据表获取其中的非结构化数据,所述非结构化数据被封装为基于键值对实现的格式:
[0139] 如前所述,每个数据视图可能关联于一个或数个埋点数据表,这种关联映射关系主要是在构造数据视图时预先配置好,因此,调用数据视图时,便自然确定了数据视图所引用的各个埋点数据表。
[0140] 同理,如前所述,本申请适宜采用Map、JSON等数据格式来封装所述的非结构化数据,这种情况下,非结构化数据表现为一个字符串,字符串内包含多个键值对,每个键值对中的键域代表一个字段,其值域用于存储该字段相对应的数据内容。因此,针对各个埋点数据表获取其中的非结构化数据时,实际也就是获取这种非结构化数据相应的字符串。
[0141] 步骤S1222、根据相应格式规范对所获取的非结构化数据进行解析,提取出其中的各个键值对:
[0142] 可以理解,适应所述的Map或JSON等相应格式规范,便可对所获取的非结构化数据进行解析,提取出其中的各个键值对。
[0143] 步骤S1223、将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的内容:
[0144] 自然也可以理解,将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的数据内容,由此,后续将其引用至数据视图中时,便可将该键值对的数据内容相应填充到相同字段中,完成转换。
[0145] 由于基于键值对的非结构化数据存储方式具有平台无关的特性,因此,可以进一步丰富本申请所实现的统一服务框架的普遍适应性。
[0146] 请结合图1和图10,本申请为强化数据查询功能而提出的一个实施例中,所述数据仓库服务引擎执行所述查询表达式时,包括如下步骤:
[0147] 步骤S1311、解析所述查询表达式,所述查询表达式包含统计表达式:
[0148] 如前所述,本申请适宜采用SQL、Oracle、Foxpro等关系型数据库服务引擎来实现,这种情况下,这些服务引擎自身支持遵照其语法规范编写的查询表达式的解析,而且,还支持在查询表达式中添加一些统计表达式,以便在执行查询过程中由服务引擎执行相应的统计运算。因此,对于客户端所提交过程的查询表达式,可以由本申请的数据仓库服务引擎负责对其进行解析。
[0149] 步骤S1312、根据所述查询表达式从其指定的数据视图中获取相关数据记录:
[0150] 所述查询表达式中,会指定其所要查询的一个或多个数据视图,因此,数据仓库服务引擎根据该查询表达式解析出来的数据视图指定信息,可以从指定的数据视图中获取符合查询表达式的其他约束条件的要求的相关数据记录。
[0151] 步骤S1313、根据所述查询表达式中的统计表达式对所述相关数据记录进行统计运算,获得统计运算结果:
[0152] 如前所述,如果所述查询表达式中携带统计表达式,数据仓库服务引擎便可以对所述相关数据记录执行统计运算,如分类汇总等,最后获取统计运算结果。应当理解,该运算结果仍然可以表述为若干数据记录,由查询表达式具体内容而定。
[0153] 步骤S1314、将所述统计运算结果格式化为结果数据:
[0154] 为了便于客户端呈现,可以进一步将统计而成的统计运算结果进行格式化,格式化为符合客户端展示页面可以解析并以诸如图表的形式呈现的结果数据,以便后续将结果数据推送给客户端后,触发客户端解析显示相应的图表。
[0155] 通过本实施例,本申请完善了使埋点数据查询结果具备可视化能力的技术准备,有利于提高基于查询的交互的效率,提升用户交互体验。
[0156] 本申请所提供的一种埋点数据访问控制装置,请参阅图11,在其典型实施例中,其包括数据采集模块1100、数据映射模块1200、查询请求模块1300、结果反馈模块1400,其中:所述的数据采集模块1100,用于响应埋点数据提交事件,获取其中携带的数据报文及埋点类型,解析出该数据报文所包含的结构化数据及非结构化数据,添加到与所述埋点类型相对应的关系型数据结构的埋点数据表中,所述结构化数据按其字段结构存储,所述非结构数据被整体存储于单个字段中;所述的数据映射模块1200,被配置为由数据仓库服务引擎启用一个或多个数据视图,每张数据视图被构造为关系型数据结构,其数据引用自至少一种埋点类型的埋点数据表,其字段为被引用的埋点数据表中属于结构化数据的字段和/或属于非结构化数据的字段,所述字段预置于字段词典中;所述的查询请求模块1300,用于响应客户端自可视化查询模板编辑页面触发的埋点数据查询请求,向数据仓库服务引擎提交该查询模板所构造的查询表达式,由该服务引擎执行所述查询表达式,以从该查询表达式所指定的数据视图中查询获取结果数据;所述的结果反馈模块1400,用于将查询获取的结果数据推送至所述客户端显示以应答所述查询请求。
[0157] 本申请的另一实施例中,所述埋点数据访问控制装置还包括用于执行如下功能的验证同步模块,其包括:接入响应子模块,被配置为响应用于获取埋点数据采集代码的应用程序接入事件,获取为该应用程序锚定的埋点数据相对应的字段;验证新增子模块,用于验证所述埋点数据相对应的字段是否为新增字段,使新增字段成为所述埋点数据表、所述数据视图、所述字段词典的可引用字段;接收配置子模块,被配置为接收用于获取所述新增字段相对应的埋点数据的表达式以完成新增字段与其相对应的埋点数据的关联关系配置;代码生成子模块,被配置为根据所述为该应用程序锚定的埋点数据相对应的字段生成供该应用程序引用的埋点数据采集代码。
[0158] 进一步具体化的实施例中,所述验证新增子模块被配置为实现如下具体功能:判断所述埋点数据相对应的字段是否为埋点数据表的可引用字段,若否,将新增字段配置为埋点数据表的可引用字段,若是则继续执行后续步骤;判断所述埋点数据相对应的字段是否为数据视图的可引用字段,若否,将新增字段配置为数据视图的可引用字段,若是则继续执行后续步骤;判断所述埋点数据相对应的字段是否为字段词典的可引用字段,若否,将新增字段配置为字段词典的可引用字段,若是则继续执行后续步骤;将字段词典中的可引用字段配置为数据视图的可引用字段;将数据视图中的可引用字段配置为埋点数据表的可引用字段。
[0159] 进一步扩展的实施例中,所述验证同步模块还包括结构匹配子模块,被配置为将所述为应用程序锚定的埋点数据相对应的字段与各个数据视图的数据结构模型进行结构匹配,将数据结构模型与之相匹配的数据视图其所引用的埋点数据表配置为用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据,否则,接收新建的相匹配的数据结构模型及用于存储所述埋点数据采集代码被运行后所触发的埋点数据提交事件所携带的数据报文中的埋点数据新的埋点数据表,根据该数据结构模型生成新的数据视图。
[0160] 较佳的一种实施例中,所述数据仓库服务引擎被配置为为数据视图引用数据而实现如下模块:结构化引用子模块,用于获取该数据视图所引用的每个埋点数据表的结构化数据,一一对应引用该结构化数据中各个字段的内容;非结构化解析子模块,用于获取该数据视图所引用的每个埋点数据表的非结构化数据,解析出该非结构化数据所包含的多个字段的内容;非结构化引用子模块,将所述非结构化数据所包含的多个字段的内容对应引用至所述数据视图预设的各个相应字段中。
[0161] 进一步扩展的实施例中,所述非结构化解析子模块实现如下功能:确定数据视图所引用的各个埋点数据表,针对各个埋点数据表获取其中的非结构化数据,所述非结构化数据被封装为基于键值对实现的格式;根据相应格式规范对所获取的非结构化数据进行解析,提取出其中的各个键值对;将每个键值对中的键域解析为一个对应的字段,将该键域所对应的值域解析为该字段的内容。
[0162] 优选的一种实施例中,所述数据仓库服务引擎执行所述查询表达式时,运行如下功能:解析所述查询表达式,所述查询表达式包含统计表达式;根据所述查询表达式从其指定的数据视图中获取相关数据记录;根据所述查询表达式中的统计表达式对所述相关数据记录进行统计运算,获得统计运算结果;将所述统计运算结果格式化为结果数据。
[0163] 为解决上述技术问题,本申请实施例还提供计算机设备。如图12所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种埋点数据访问控制方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的埋点数据访问控制方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0164] 本实施方式中处理器用于执行图11中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的埋点数据访问控制装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
[0165] 本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的埋点数据访问控制方法的步骤。
[0166] 本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read‑Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
[0167] 综上所述,本申请实现对多源的埋点数据进行数据采集、数据仓储、数据分析的统一且标准化的处理,能提升互联网应用程序产品的埋点数据的采集和访问效率,具备以统一服务框架服务于海量的互联网应用程序产品的能力。
[0168] 本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0169] 以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。