数据查询方法、装置、电子设备及计算机可读存储介质转让专利

申请号 : CN202110931992.X

文献号 : CN113377805B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王崟垄

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请提供了一种数据查询方法、装置、设备及计算机可读存储介质;方法包括:接收用于查询指标的特定语言查询语句,其中,所述特定语言查询语句是基于针对所述指标设定的查询参数生成的;对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,并对所述多个数据集进行筛选处理,得到目标数据集;生成与所述目标数据集以及所述目标数据集的数据引擎对应的通用语言查询语句;基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果。通过本申请,能够提高指标查询效率以及准确率。

权利要求 :

1.一种数据查询方法,其特征在于,包括:接收用于查询指标的特定语言查询语句,其中,所述特定语言查询语句是基于针对所述指标设定的查询参数生成的;

对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,并对所述多个数据集进行筛选处理,得到目标数据集;

获取对应所述目标数据集的数据引擎;

基于指标名称进行计算方式查询处理,得到对应所述指标的计算方式;

将所述计算方式、所述指标的过滤条件、所述指标的维度以及所述指标的时间范围组成查询信息;

其中,所述指标名称、所述过滤条件、所述维度以及所述时间范围是对所述特定语言查询语句进行语义拆分处理得到的;

基于与所述数据引擎匹配的语法,将所述指标的查询信息以及所述目标数据集组成初始通用语言查询语句;

对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;

基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果。

2.根据权利要求1所述的方法,其特征在于,所述对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,包括:对所述特定语言查询语句进行语义拆分处理,得到特定语言对象;

当所述特定语言对象包括数据集名称时,基于所述数据集名称进行数据集查询处理,得到对应所述指标的多个数据集。

3.根据权利要求2所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到目标数据集,包括:

当所述特定语言对象还包括指标名称时,对所述指标名称进行语义关联处理,得到至少一个查询指标名称;

针对每个所述查询指标名称执行以下处理:对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集。

4.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:针对每个所述数据集执行以下处理:获取所述数据集所在数据仓库的等级、所述数据集的热度、以及所述数据集的对应所述查询指标名称的完整度;

基于所述等级、所述热度以及所述完整度各自对应的权重,对所述等级、所述热度以及所述完整度进行加权求和处理,得到所述数据集的取数性能分数;

将最高的取数性能分数对应的数据集确定为所述目标数据集。

5.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:针对每个所述数据集执行以下处理:对所述数据集进行特征提取处理,得到所述数据集的等级特征、热度特征以及完整度特征;

基于所述等级特征、所述热度特征以及所述完整度特征调用第一神经网络模型,得到所述数据集的预测取数性能分数;

其中,所述第一神经网络模型的训练样本包括历史数据集,所述训练样本的标注数据包括所述历史数据集的预标记取数性能分数;

将最高的预测取数性能分数对应的数据集确定为所述目标数据集。

6.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:通过调用区块链网络中共识节点的接口,向所述共识节点发送交易;

其中,所述交易中携带包括所述筛选处理的智能合约的标识、以及所述多个数据集;

当接收超出数量阈值的共识节点发送的共识数据集被确定为所述目标数据集的消息时,将所述共识数据集确定为所述目标数据集,其中,所述共识数据集为所述多个数据集中的数据集。

7.根据权利要求1所述的方法,其特征在于,所述对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句,包括:对所述初始通用语言查询语句进行特征提取处理,得到所述初始通用语言查询语句的效率特征;

基于所述效率特征调用第二神经网络模型,得到所述初始通用语言查询语句的预测效率评分;

其中,所述第二神经网络模型的训练样本包括历史初始通用语言查询语句,所述训练样本的标注数据包括所述历史初始通用语言查询语句的预标记效率评分;

当所述预测效率评分低于效率评分阈值时,对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;

所述方法还包括:

当所述效率评分不低于效率评分阈值时,将所述初始通用语言查询语句确定为所述通用语言查询语句。

8.根据权利要求1所述的方法,其特征在于,所述对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句,包括:基于所述语法,对所述初始通用语言查询语句进行等效重写处理,得到与所述初始通用语言查询语句等效的多个等效通用语言查询语句;

对所述多个等效通用语言查询语句进行去重处理,得到与多个执行计划一一对应的等效通用语言查询语句;

对经过去重的等效通用语言查询语句进行批量效率测试处理,将得到的效率测试性能最高的等效通用语言查询语句作为所述通用语言查询语句。

9.根据权利要求1所述的方法,其特征在于,所述基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果,包括:生成基于所述通用语言查询语句的执行计划;

调用对应所述目标数据集的数据引擎执行以下处理:按照所述执行计划执行取数逻辑,得到引擎取数结果;

当所述目标数据集的数目为一个时,将所述引擎取数结果作为对应所述特定语言查询语句的查询结果;

当所述目标数据集的数目为多个时,将与所述多个目标数据集一一对应的多个引擎取数结果合并,并将合并取数结果作为对应所述特定语言查询语句的查询结果。

10.一种数据查询装置,其特征在于,包括:语法解析模块,用于接收用于查询指标的特定语言查询语句,其中,所述特定语言查询语句是基于针对所述指标设定的查询参数生成的;

所述语法解析模块,还用于对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,并对所述多个数据集进行筛选处理,得到目标数据集;

通用语言生成模块,用于获取对应所述目标数据集的数据引擎;基于指标名称进行计算方式查询处理,得到对应所述指标的计算方式;将所述计算方式、所述指标的过滤条件、所述指标的维度以及所述指标的时间范围组成查询信息;其中,所述指标名称、所述过滤条件、所述维度以及所述时间范围是对所述特定语言查询语句进行语义拆分处理得到的;基于与所述数据引擎匹配的语法,将所述指标的查询信息以及所述目标数据集组成初始通用语言查询语句;对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;

取数执行模块,还用于基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果。

11.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项所述的数据查询方法。

12.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至9任一项所述的数据查询方法。

说明书 :

数据查询方法、装置、电子设备及计算机可读存储介质

技术领域

[0001] 本申请涉及大数据技术,尤其涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。

背景技术

[0002] 数据库系统(Database System),是由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际
可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的
集合体。
[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] 图1A是相关技术中提取数据的流程示意图;
[0034] 图1B是相关技术中提取数据的流程示意图
[0035] 图2是本申请实施例提供的数据查询系统的架构示意图;
[0036] 图3是本申请实施例提供的电子设备的结构示意图;
[0037] 图4A是本申请实施例提供的数据查询方法的流程示意图;
[0038] 图4B是本申请实施例提供的数据查询方法的流程示意图;
[0039] 图4C是本申请实施例提供的数据查询方法的流程示意图;
[0040] 图4D是本申请实施例提供的数据查询方法的流程示意图;
[0041] 图5是本申请实施例提供的数据查询方法的人机交互界面图;
[0042] 图6是本申请实施例提供的数据查询方法的系统架构图;
[0043] 图7是本申请实施例提供的DSL语义分析模块的结构示意图;
[0044] 图8是本申请实施例提供的通用语言生成模块的结构示意图;
[0045] 图9是本申请实施例提供的数据存储引擎的结构示意图;
[0046] 图10是本申请实施例提供的取数执行模块的结构示意图;
[0047] 图11是本申请实施例提供的数据查询系统的结构示意图;
[0048] 图12是本申请实施例提供的区块链网络的应用架构示意图;
[0049] 图13是本申请实施例提供的区块链网络600中区块链的结构示意图;
[0050] 图14是本申请实施例提供的区块链网络600的功能架构示意图。

具体实施方式

[0051] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有
做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0052] 在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突
的情况下相互结合。
[0053] 在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定
的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的
顺序实施。
[0054] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,
不是旨在限制本申请。
[0055] 对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[0056] 1)领域特定语言(DSL,Domain Specific Language),以极其高效的方式描述特定领域的对象、规则和运行方式的语言,需要有特定的解释器与其配合,与通用语言相比能极
大降级理解和使用难度,同时极大提高开发效率。基于领域特定语言的查询语句称为特定
语言查询语句。
[0057] 2)通用编程语言(GPL,General Purpose Language),指被设计为各种应用领域服务的编程语言,通常通用编程语言不含有为特定应用领域设计的结构,基于通用编程语言
的查询语句称为通用语言查询语句。
[0058] 例如,通用语言可以是结构化查询语言(SQL,Structured Query Language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0059] 3)数据集:又称为资料集、数据集合或资料集合,是一种由数据所组成的集合,数据集的具体形式包括数据库以及数据表。
[0060] 4)数据引擎:数据引擎是用于存储、处理和保护数据的核心服务。利用数据引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要
求。
[0061] 5)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交
易”这一术语,本发明实施例遵循了这一习惯。
[0062] 例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区
块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值
对)和查询操作(即查询状态数据库中的键值对)。
[0063] 6)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
[0064] 7)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
[0065] 8)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的
键值对数据进行更新或查询的操作。
[0066] 9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括
工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,
Delegated Proof‑of‑Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
[0067] 10)分布式数据仓库(TDW,Text distributed Data Warehouse),是基于开源软件研发的大数据处理平台,它基于Hive之上进行研发,并在开源软件的基础上做了大量的定
制和优化。
[0068] 11)维纳斯(VENUS),是一种数据库服务框架,提供远程服务,具有开发简单、高性能、高并发能力的特点。
[0069] 12)Mysql,是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一。
[0070] 13)Hive,是数据仓库工具,用来进行数据提取、转化、加载,是一种可以存储、查询和分析大规模数据的机制。
[0071] 14)THive,是与Hive具有不同语法的数据仓库工具,用来进行数据提取、转化、加载,是一种可以存储、查询和分析大规模数据的机制。
[0072] 参见图1A‑图1B,图1A‑图1B是相关技术中提取数据的流程示意图,在相关技术的提取数据的流程中,针对需要计算的指标,需要向数据库的管理员询问数据所在的位置以
及指标计算方式,再根据数据库管理员的回复编写结构化查询语句,并通过结构化查询语
句进行跑数以提取对应指标的数据,针对不需要计算的指标,需要向数据库的管理员询问
数据所在的位置(报表),查看报表,然后提取对应指标的数据。
[0073] 相关技术的缺点在于提取数据的流程中,用户需要关心数据的存储位置、存储形式、指标定义等具体细节,当指标发生变动时,用于进行跑数处理的结构化查询语句或者数
据所在的位置(例如,底层报表)都需要逐个修改,带来了巨大的工作量。
[0074] 针对上述技术问题,本申请实施例提供一种数据查询方法、装置、电子设备和计算机可读存储介质,能够将用户通过自然语言直接输入的取数内容转化为DSL语言,并且将复
杂的数据存储位置、存储形式、指标定义等细节完全屏蔽,直接返回给用户用于提取数据的
结构化查询语句以及取数结果,下面说明本申请实施例提供的电子设备的示例性应用,本
申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动
设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)
等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应
用。
[0075] 参见图2,图2是本申请实施例提供的数据查询系统的架构示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
[0076] 在一些实施例中,数据查询系统的功能是基于服务器200和终端400实现的,在用户使用终端400的过程中,响应于终端400接收到用户针对指标的查询参数设定操作,终端
400显示设定操作中规定的查询参数,终端400基于查询参数生成针对指标的特定语言查询
语句,终端400将特定语言查询语句发送至服务器200,通过服务器200对特定语言查询语句
进行语法解析处理,得到对应指标的多个数据集,并对多个数据集进行筛选处理,得到目标
数据集;生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句;基于通
用语言查询语句调用数据引擎,以从数据引擎500读取指标的查询结果,服务器200将查询
结果以及通用语言查询语句返回至终端400,在终端400上显示查询结果以及通用语言查询
语句。
[0077] 在一些实施例中,当数据查询系统应用于推荐系统时,响应于终端400接收到用户针对点击率指标的查询参数设定操作,终端400显示设定操作中规定的查询参数,例如,时
间范围等等,终端400基于查询参数生成针对点击率的特定语言查询语句,终端400将特定
语言查询语句发送至服务器200,通过服务器200对特定语言查询语句进行语法解析处理,
得到对应点击率的多个数据集,并对对应点击率的多个数据集进行筛选处理,得到目标数
据集;生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句;基于通用
语言查询语句调用数据引擎,以从数据引擎500读取点击率的查询结果,服务器200将点击
率的查询结果以及通用语言查询语句返回至终端400,在终端400上显示点击率的查询结果
以及通用语言查询语句。
[0078] 在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存
储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台
等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算
机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方
式进行直接或间接地连接,本发明实施例中不做限制。
[0079] 接下来,说明本申请实施例提供的用于实施数据查询方法的电子设备的结构,如前,本申请实施例提供的电子设备可以是图2中的服务器200或终端400。参见图3,图3是本
申请实施例提供的电子设备的结构示意图,以该电子设备为服务器200为例进行说明。图3
所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220。服务器200
中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间
的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总
线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统240。
[0080] 处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者
晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理
器等。
[0081] 存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一
个或多个存储设备。
[0082] 存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可
以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在
包括任意适合类型的存储器。
[0083] 在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0084] 操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理根据硬件的任务;
[0085] 网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,
Universal Serial Bus)等。
[0086] 在一些实施例中,本申请实施例提供的数据查询装置可以采用软件方式实现,图3示出了存储在存储器250中的数据查询装置255,其可以是程序和插件等形式的软件,包括
以下软件模块:语法解析模块2551、通用语言生成模块2552以及取数执行模块2553,这些模
块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说
明各个模块的功能。
[0087] 将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的数据查询方法。
[0088] 参见图4A,图4A是本申请实施例提供的数据查询方法的流程示意图,将结合图4A示出的步骤101‑104进行说明。
[0089] 在步骤101中,接收用于查询指标的特定语言查询语句。
[0090] 作为示例,特定语言查询语句是基于针对指标设定的查询参数生成的。
[0091] 参见图5,图5是本申请实施例提供的数据查询方法的人机交互界面图,响应于用户针对数据集、时间范围、维度、指标、过滤条件等查询参数的输入操作,在人机交互界面
501中显示输入的查询参数505,终端根据用户通过人机交互界面输入的查询参数生成特定
语言查询语句,响应于针对提交控件502的触发操作,向服务器发送数据查询请求,并向服
务器发送用于查询指标的特定语言查询语句,指标可以为点击率、曝光率等等,特定语言查
询语句可以为DSL查询语句,若人机交互界面中接收的查询参数为“用户账号”,则特定语言
查询语句中查询参数为“puin”,特定语言查询语句的语法满足于特定领域的语言规则,但
是人机交互界面中接收的查询参数的语法是用户的日常用语。
[0092] 在步骤102中,对特定语言查询语句进行语法解析处理,得到对应指标的多个数据集,并对多个数据集进行筛选处理,得到目标数据集。
[0093] 在一些实施例中,参见图4B,图4B是本申请实施例提供的数据查询方法的流程示意图,步骤102中对特定语言查询语句进行语法解析处理,得到对应指标的多个数据集,可
以通过图4B示出的步骤1021‑1022实现。
[0094] 在步骤1021中,对特定语言查询语句进行语义拆分处理,得到特定语言对象。
[0095] 作为示例,对特定语言查询语句进行语义拆分处理,即按照拆分逻辑将特定语言查询语句拆分成为多个对象,例如经过拆分得到以下几个对象:1、数据集名称是“xx信息
流”,2、时间范围是“2020.12.01‑2020.12.31”,3、维度是“图文”,4、指标名称是点击数,5、
过滤条件是“活跃天数>5”。
[0096] 在步骤1022中,当特定语言对象包括数据集名称时,基于数据集名称进行数据集查询处理,得到对应指标的多个数据集。
[0097] 作为示例,例如,数据集名称为“xx信息流”时,则调用超文本传输协议(HTTP,Hyper Text Transfer Protocol)接口向数据资产管理平台发出查询请求,以使数据资产
管理平台基于“xx信息流”这个数据集名称进行数据集查询处理,得到可以用于查询指标的
多个数据集,例如,数据集A、数据集B和数据集C,数据集A、数据集B和数据集C的数据集名称
均为QB信息流,数据集A、数据集B和数据集C均可以用于查询指标,例如数据集A、数据集B和
数据集C均可以用于查询点击数,数据资产管理平台通过HTTP接口将查询到的具体数据集
A‑C返回至服务器。
[0098] 在一些实施例中,参见图4C,图4C是本申请实施例提供的数据查询方法的流程示意图,步骤102中对多个数据集进行筛选处理,得到目标数据集,可以通过图4C示出的步骤
1023‑1024实现。
[0099] 在步骤1023中,当特定语言对象还包括指标名称时,对指标名称进行语义关联处理,得到至少一个查询指标名称。
[0100] 作为示例,指标名称是点击数时,对指标名称进行语义关联处理,得到至少一个查询指标名称,所得到的查询指标名称与指标名称可以相同或者不同,例如指标名称是总时
长,经过语义关联出处理后并未得到不同于“总时长”的查询指标名称,则查询指标名称即
为“总时长”,例如,指标名称是“点击数”,经过语义关联出处理后并得到不同于“点击数”的
查询指标名称“点击率”,则查询指标名称为“点击率”和“点击数”,查询指标名称与指标名
称相似或者相同。
[0101] 在步骤1024中,针对每个查询指标名称执行以下处理:对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标数据集。
[0102] 在一些实施例中,步骤1024中对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标数据集,可以通过以下技术方案实现:针对每个数据集执行以下
处理:获取数据集所在数据仓库的等级、数据集的热度(即数据集的使用频率)、以及数据集
的对应查询指标名称的完整度;基于等级、热度以及完整度各自对应的权重,对等级、热度
以及完整度进行加权求和处理,得到数据集的取数性能分数;将最高的取数性能分数对应
的数据集确定为目标数据集。
[0103] 作为示例,数据仓库具有不同的层级,例如应用层级,数据仓库层级、操作数据存储层级,数据仓库层级中由下到上为细节数据层,数据基础层,数据服务层。细节数据层是
应用层级与数据仓库层级的隔离层,主要对操作数据存储层级的数据执行数据清洗和规范
化的操作,数据基础层存储的是客观数据,可以认为是大量指标的数据层,数据服务层用于
提供后续的业务查询,数据分发等,应用层级的数据仓库的等级高于细节数据层的数据仓
库的等级,细节数据层的数据仓库的等级高于数据基础层的数据仓库的等级,数据基础层
的数据仓库的等级高于数据服务层的数据仓库的等级,数据服务层的数据仓库的等级高于
操作数据存储层级的数据仓库的等级。
[0104] 作为示例,筛选出最优的数据集时可以参考“数据集使用热度”(数据集的热度)、“数据集所在数据仓库层级”(数据集所在数据仓库的等级)、“指标完整度”(数据集的对应
查询指标名称的完整度)等信息求解最优数据集,具体计算方法如下:Y=a1*X1+a2*X2+a3*
X3+…+an*Xn,其中,Y为取数性能分数,a1,a2,a3,an为X1,X2,X3,Xn的权重,a1是“数据集所
在数据仓库等级”的权重,a2是“数据集使用热度”的权重,a3是“指标信息完整度”的权重,
X1代表数据仓库的等级,X2代表“数据集使用热度”,热度该数据集被下游数据集使用的次
数,X3代表“指标完整度”,指标完整度代表在在数据资产管理平台中信息的完整度,例如,
已经填写了指标相关信息的行数,Xn是其他信息,an是其他信息的权重。将每个数据集的
“数据集所在数据仓库等级”、“数据集使用热度”、“指标信息完整度”以及其他信息分别带
入X1、X2、X3、Xn,分别计算每个数据集的取数性能分数,选择取数性能分数最高者返回。
[0105] 在一些实施例中,步骤1024中对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标数据集,可以通过以下技术方案实现:针对每个数据集执行以下
处理:对数据集进行特征提取处理,得到数据集的等级特征、热度特征以及完整度特征;基
于等级特征、热度特征以及完整度特征调用第一神经网络模型,得到数据集的预测取数性
能分数;其中,第一神经网络模型的训练样本包括历史数据集,训练样本的标注数据包括历
史数据集的预标记取数性能分数;将最高的预测取数性能分数对应的数据集确定为目标数
据集。
[0106] 作为示例,还可以通过人工智能的方式预测数据集的取数性能分数,通过训练样本训练第一神经网络模型,训练样本包括历史数据集,训练样本的标注数据包括历史数据
集的预标记取数性能分数,历史数据集是从历史指标查询请求的历史记录中提取得到的,
历史记录中记录有历史指标查询请求过程中所获取的多个历史数据集,历史目标数据集以
及用户反馈的针对查询结果的满意度,满意度与预标记取数性能分数成正相关关系,直接
通过第一神经网络模型基于实时的数据集的等级特征预测数据集的预测取数性能分数,从
而可以提高实施例中筛选得到目标数据集的智能程度,减少人工设置权重所带来的干预,
通过真实可验的历史数据来确定可靠的目标数据集,从而实现了筛选过程的高效性。
[0107] 在一些实施例中,步骤1024中对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标数据集,可以通过以下技术方案实现:通过调用区块链网络中共
识节点的接口,向共识节点发送交易;其中,交易中携带包括筛选处理的智能合约的标识、
以及多个数据集;当接收超出数量阈值的共识节点发送的共识数据集被确定为目标数据集
的消息时,将共识数据集确定为目标数据集,其中,共识数据集为多个数据集中的数据集。
[0108] 作为示例,服务器的对应筛选处理的接口可以为区块链网络中共识节点的接口,通过共识节点的接口可以向共识节点发送交易;其中,交易中携带包括筛选处理的智能合
约的标识、以及多个数据集;基于智能合约的标识获取对应筛选处理的智能合约,调用对应
筛选处理的智能合约可以执行对应筛选处理的逻辑,交易中还携带有多个数据集,从而针
对多个数据集执行对应筛选处理的逻辑,在进行完筛选处理之后,当接收超出数量阈值的
共识节点发送的共识数据集被确定为目标数据集的消息时,将共识数据集确定为目标数据
集,通过共识节点调用智能合约来执行,共识节点执行智能合约的结果需要获得其他节点
的共识才能有效,从而保证了目标数据集的可靠性和一致性。
[0109] 在步骤103中,生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句。
[0110] 在一些实施例中,参见图4D,图4D是本申请实施例提供的数据查询方法的流程示意图,步骤103中生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句,
可以通过图4D示出的步骤1031‑1032实现。
[0111] 在步骤1031中,获取对应目标数据集的数据引擎。
[0112] 作为示例,数据引擎是用于存储、处理和保护数据的核心服务。利用数据引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要
求。使用数据引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建
用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过
程),每个目标数据集对应有各自的数据引擎,因此在读取每个目标数据集的数据时,需要
通过对应各个数据引擎的通用语言查询语句进行读取。
[0113] 在步骤1032中,按照与数据引擎匹配的语法生成对应目标数据集的通用语言查询语句。
[0114] 在一些实施例中,步骤1032中按照与数据引擎匹配的语法生成对应目标数据集的通用语言查询语句,可以通过以下技术方案实现:基于语法,将指标的查询信息以及目标数
据集组成初始通用语言查询语句;对初始通用语言查询语句进行优化处理,得到通用语言
查询语句。
[0115] 作为示例,参见图8,图8是本申请实施例提供的通用语言生成模块的结构示意图,服务器的通用语言生成模块主要负责根据目标数据集和指标计算方式(查询信息中的一
种)生成可执行的通用语言查询语句,通用语言查询语句可以为SQL语句,可以通过对象关
系映射器或者数据库组件实现SQL语句的生成,通用语言生成模块包括两个子模块:SQL引
擎方言子模块根据目标数据集的数据引擎的组织和结构不同,按照不同的语法进行通用语
言查询语句的组装,返回初始通用语言查询语句,SQL优化模块对初始通用语言查询语句在
执行上进行优化,可以达到最佳的执行效果,以减少执行的耗时,最后将通用语言查询语句
输出到Mysql中存储并返回至终端展示,参见图9,图9是本申请实施例提供的数据存储引擎
的结构示意图,数据引擎TDW、数据引擎VENUS以及数据引擎SQL,均具有各自的数据存储引
擎以及各自的取数引擎,三个数据引擎对应有各自的语法,数据引擎TDW对应有语法THive,
数据引擎VENUS对应有语法Hive,数据引擎SQL对应有语法Mysql。
[0116] 在一些实施例中,在基于语法,将指标的查询信息以及目标数据集组成初始通用语言查询语句之前,基于指标名称进行计算方式查询处理,得到对应指标的计算方式;将计
算方式、指标的过滤条件、指标的维度以及指标的时间范围组成查询信息;其中,指标名称、
过滤条件、维度以及时间范围是对特定语言查询语句进行语义拆分处理得到的。
[0117] 作为示例,对特定语言查询语句进行语义拆分处理所得到的特定语言对象还可以包括指标名称、过滤条件、维度以及时间范围,基于指标名称进行计算方式查询处理,得到
对应指标的计算方式,例如,指标名称为“点击数”时,服务器调用HTTP接口向数据资产管理
平台发出计算方式查询请求,以使数据资产管理平台基于“点击数”这个指标名称进行计算
方式查询处理,得到用于计算“点击数”的计算方式,数据资产管理平台通过HTTP接口将查
询到的具体数据集A‑C返回至服务器,并且,基于指标名称进行计算方式查询处理,得到对
应指标的计算方式时,可以先对指标名称进行语义关联处理,得到至少一个查询指标名称,
基于至少一个查询指标名称进行计算方式查询处理,得到对应指标的计算方式。
[0118] 在一些实施例中,上述对初始通用语言查询语句进行优化处理,得到通用语言查询语句,可以通过以下技术方案实现:对初始通用语言查询语句进行特征提取处理,得到初
始通用语言查询语句的效率特征;基于效率特征调用第二神经网络模型,得到初始通用语
言查询语句的预测效率评分;其中,第二神经网络模型的训练样本包括历史初始通用语言
查询语句,训练样本的标注数据包括历史初始通用语言查询语句的预标记效率评分;当预
测效率评分低于效率评分阈值时,对初始通用语言查询语句进行优化处理,得到通用语言
查询语句;当效率评分不低于效率评分阈值时,将初始通用语言查询语句确定为通用语言
查询语句。
[0119] 作为示例,还可以通过人工智能的方式预测初始通用语言查询语句的预测效率评分,通过训练样本训练第二神经网络模型,训练样本包括历史初始通用语言查询语句,训练
样本的标注数据包括历史初始通用语言查询语句的预标记效率评分,历史初始通用语言查
询语句是从历史指标查询请求的历史记录中提取得到的,历史记录中记录有历史指标查询
请求过程中所获取的多个历史初始通用语言查询语句,历史通用语言查询语句以及执行历
史通用语言查询语句的时间,时间与预标记效率评分成负相关关系,直接通过第二神经网
络模型基于实时的初始通用语言查询语句的效率特征预测初始通用语言查询语句的预测
效率评分,从而可以提高实施例中优化初始通用语言查询语句的智能程度,并且有效筛选
出需要优化的初始通用语言查询语句,提高优化过程中的资源利用率。
[0120] 作为示例,效率特征来源于初始通用语句的效率数据,效率数据包括初始通用语句的语句遍历类型(例如,全局遍历),每个语句遍历类型的出现次数(例如,存在两次全局
遍历),初始通用语句的模拟执行时间等等。
[0121] 在一些实施例中,上述对初始通用语言查询语句进行优化处理,得到通用语言查询语句,可以通过以下技术方案实现:基于语法,对初始通用语言查询语句进行等效重写处
理,得到与初始通用语言查询语句等效的多个等效通用语言查询语句;对多个等效通用语
言查询语句进行去重处理,得到与多个执行计划一一对应的等效通用语言查询语句;对经
过去重的等效通用语言查询语句进行批量效率测试处理,将得到的效率测试性能最高的等
效通用语言查询语句作为通用语言查询语句。
[0122] 作为示例,同一条初始通用语言查询语句,不同的写法性能可能不一样,“人工智能反馈式搜索引擎”对输入的初始通用语言查询语句结合检测到的数据库结构和索引进行
重写,产生与初始通用语言查询语句等效的多个等效通用语言查询语句,再通过“人工智能
反馈式搜索引擎”对产生的多个等效通用语言查询语句进行重写,直至无法产生新的等效
通用语言查询语句或等效通用语言查询语句的数目达到数目阈值,接下来对等效通用语言
查询语句进行去重处理,选出具有不同执行计划的等效通用语言查询语句(不同的执行计
划意味着不同的执行效率),最后,对得到的等效通用语言查询语句进行批量测试,将得到
的效率测试性能最高的等效通用语言查询语句作为通用语言查询语句。
[0123] 在步骤104中,基于通用语言查询语句调用数据引擎,以从数据引擎读取指标的查询结果。
[0124] 在一些实施例中,步骤104中基于通用语言查询语句调用数据引擎,以从数据引擎读取指标的查询结果,可以通过以下技术方案实现:生成基于通用语言查询语句的执行计
划;调用对应目标数据集的数据引擎执行以下处理:按照执行计划执行取数逻辑,得到引擎
取数结果;当目标数据集的数目为一个时,将引擎取数结果作为对应特定语言查询语句的
查询结果;当目标数据集的数目为多个时,将与多个目标数据集一一对应的多个引擎取数
结果合并,并将合并取数结果作为对应特定语言查询语句的查询结果。
[0125] 作为示例,参见图10,图10是本申请实施例提供的取数执行模块的结构示意图,取数执行模块生成基于通用语言查询语句的执行计划,调用对应目标数据集的数据引擎执行
以下处理:按照执行计划执行取数逻辑,得到引擎取数结果,当目标数据集的数目为一个
时,将引擎取数结果作为对应特定语言查询语句的查询结果;当目标数据集的数目为多个
时,取数执行模块负责不同的数据引擎的取数逻辑,并且将不同数据引擎的数据合并返回
最终的数据给到用户,即将与多个目标数据集一一对应的多个引擎取数结果合并,并将合
并取数结果作为对应特定语言查询语句的查询结果。
[0126] 参见图12,图12为本申请实施例提供的区块链网络的应用架构示意图,包括业务主体100、区块链网络600(示例性示出了共识节点610‑1至共识节点610‑3)、认证中心700,
下面分别说明。
[0127] 区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要
授权的情况下接入区块链网络600;以联盟链为例,业务主体在获得授权后其下辖的计算机
设备(例如终端/服务器)可以接入区块链网络600,此时,如成为区块链网络600中的客户端
节点。
[0128] 在一些实施例中,客户端节点可以只作为区块链网络600的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络600的共
识节点的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性
(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理
逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可
信和可追溯。
[0129] 区块链网络600中的共识节点接收来自业务主体100的客户端节点提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体
的客户端节点中显示。
[0130] 例如,客户端节点410可以订阅区块链网络600中感兴趣的事件,例如区块链网络600中特定的组织/通道中发生的交易,由共识节点推送相应的交易通知到客户端节点410,
从而触发客户端节点410中相应的业务逻辑。
[0131] 下面以业务主体接入区块链网络以实现数据查询为例,说明区块链的示例性应用。
[0132] 参见图12,数据查询涉及的业务主体100,从认证中心700进行登记注册获得数字证书,数字证书中包括业务主体的公钥、以及认证中心700对业务主体的公钥和身份信息签
署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块
链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡
改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发
起交易的权限。业务主体下辖的计算机设备(例如终端或者服务器)运行的客户端都可以向
区块链网络600请求接入而成为客户端节点。
[0133] 业务主体100客户端节点410用于呈现查询参数以及指标,例如,响应于针对某个指标以及查询参数的指标查询操作,终端将对应的指标查询请求以及特定语言查询语句发
送至区块链网络600,其中,将指标查询请求以及特定语言查询语句发送至区块链网络600
的操作,可以预先在客户端节点410设置业务逻辑,当终端获取指标查询操作时,客户端节
点410将指标查询请求自动发送至区块链网络600,在发送时,客户端节点410根据指标查询
请求生成对应查询操作的交易,在交易中指定了实现查询操作需要调用的智能合约、以及
向智能合约传递的参数,交易还携带了客户端节点410的数字证书、签署的数字签名(例如,
使用客户端节点410的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到
区块链网络600中的共识节点。
[0134] 区块链网络600中的共识节点中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体100的身份,确认业务主体100是否是
具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功
后签署节点自己的数字签名(例如,使用共识节点610‑1的私钥对交易的摘要进行加密得
到),并继续在区块链网络600中广播。
[0135] 区块链网络600中的共识节点接收到验证成功的交易后,区块链网络600中的共识节点会对交易进行基于智能合约的共识过程,共识过程中,每个节点均会执行通用语言查
询语句生成处理以及指标查询处理,其中,节点所执行的处理是通过与数据引擎交互实现
的,如果共识成功,则将查询结果以及通用语言查询语句作为交易结果返回至业务主体
100,并将查询结果填充到区块,形成新的区块,区块链网络600中的共识节点广播的新区块
时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾
部,并根据交易结果(查询结果以及通用语言查询语句)更新状态数据库,状态数据库中还
存储有交易所产生的中间结果,例如对应指标的多个数据集、目标数据集。
[0136] 作为区块链示例,参见图13,图13为本申请实施例提供的区块链网络600中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个
区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的
共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构
保证了区块中交易的防篡改和防伪造。
[0137] 下面说明本申请实施例提供的区块链网络的示例性的功能架构,参见图14,图14为本申请实施例提供的区块链网络600的功能架构示意图,区块链网络包括应用层601、共
识层602、网络层603、数据层604和资源层605,下面分别进行说明。
[0138] 资源层605封装了实现区块链网络600中的各个节点的计算资源、存储资源和通信资源。
[0139] 数据层604封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
[0140] 网络层603封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
[0141] 其中,P2P网络协议实现区块链网络600中节点之间的通信,数据传播机制保证了交易在区块链网络600中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字
签名、公/私钥对)实现节点之间传输数据的可靠性;接入认证机制用于根据实际的业务场
景对加入区块链网络600的业务主体的身份进行认证,并在认证通过时赋予业务主体接入
区块链网络600的权限;业务主体身份管理用于存储允许接入区块链网络600的业务主体的
身份、以及权限(例如能够发起的交易的类型)。
[0142] 共识层602封装了区块链网络600中的节点对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法
的可插拔。
[0143] 交易管理用于验证节点接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信
息);对于获得接入区块链网络600的授权的业务主体而言,均拥有认证中心颁发的数字证
书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法
身份。
[0144] 账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,
当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询
结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希
值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询
交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中
的区块链。
[0145] 应用层601封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
[0146] 下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
[0147] 在一些实施例中,当数据查询系统应用于推荐系统时,为了构建推荐准确度更高的推荐系统,需要对推荐系统所使用的神经网络模型进行训练,训练数据中需要使用点击
率等指标,以通过数据查询系统查询点击率指标为例进行说明,响应于终端400接收到用户
针对点击率指标的查询参数设定操作,终端400显示设定操作中规定的查询参数,例如,时
间范围等等,终端400基于查询参数生成针对点击率的特定语言查询语句,终端400将特定
语言查询语句发送至服务器200,通过服务器200对特定语言查询语句进行语法解析处理,
得到对应点击率的多个数据集,并对对应点击率的多个数据集进行筛选处理,得到目标数
据集;生成与所述目标数据集以及所述目标数据集的数据引擎对应的通用语言查询语句;
基于通用语言查询语句调用数据引擎,以从数据引擎500读取点击率的查询结果,服务器
200将点击率的查询结果以及通用语言查询语句返回至终端400,在终端400上显示点击率
的查询结果以及通用语言查询语句。
[0148] 参见图5,响应于用户针对数据集、时间范围、维度、指标、过滤条件等查询参数的输入操作,在人机交互界面501中显示输入的查询参数505,响应于针对提交控件502的触发
操作,向服务器发送数据查询请求,服务器响应于数据查询请求生成SQL语句(通用语言查
询语句)并基于SQL语句执行取数逻辑,得到取数结果,将取数结果以及SQL语句返回至客户
端,并在客户端的人机交互界面显示取数结果503以及SQL语句504,在上述过程中用户不必
关心取数结果是如何得到的。
[0149] 参见图6,图6是本申请实施例提供的数据查询方法的系统架构图,数据流向说明如下,数据由平台前端以JSON对象的形式传入到服务器,服务器主要包含三个模块:DSL语
法解析模块、通用语言生成模块和取数执行模块,服务器的DSL语法解析模块接收到DSL查
询语句(特定语言查询语句)后进行DSL语义拆分,即按照拆分逻辑将DSL查询语句拆分成为
多个DSL对象,例如,数据集是“xx信息流”、时间范围是“2020.12.01‑2020.12.31”、维度是
“图文”、指标是“曝光数与点击数”、过滤条件是“活跃天数>5”,DSL语法解析模块进行库表
指标信息查询处理,即会按照DSL对象中的字段通过HTTP接口与数据资产管理平台进行交
互,以获取具体的数据集,例如,数据库、数据表等等,还可以通过交互获取具体的数据引
擎、指标计算方式等信息,这些信息以列表的形式返回,再筛选出最优的数据集,将交互得
到的信息(包括最优的数据集)与原有的DSL对象组合生成包含有数据库、数据表、数据引
擎、指标计算方式等信息的DSL对象,将DSL对象传递给通用语言生成模块(例如,SQL生成模
块),通用语言生成模块中的引擎方言子模块解析DSL对象,按照最优数据集的数据引擎,确
定对应的引擎方言,并通过TDW SQL生成模块、VENUS SQL生成模块以及Mysql SQL生成模块
根据不同的引擎方言和指标计算方式拼接组装生成SQL语句,再通过TDW SQL优化模块、
VENUS SQL优化模块以及Mysql SQL优化模块优化SQL语句,通用语言生成模块可以直接返
回字符串类型的SQL语句给到平台前端并存储SQL解析结果,也可以继续将SQL语句传递给
取数执行模块,取数执行模块生成执行计划,取数执行模块通过SQL语句向方言对应的引擎
(例如,TDW取数引擎、VENUS取数引擎以及Mysql取数引擎)执行取数逻辑,并且将多个引擎
的取数结果合并生成查询的数据结果,并返回给前端进行显示。
[0150] 在一些实施例中,参见图7,图7是本申请实施例提供的DSL语义分析模块的结构示意图,DSL语法解析模块主要负责解析前端传来的DSL结构语法,具体包含三个子模块:DSL
语法解析模块中的DSL语义拆分子模块执行以下处理:数据由前端以JSON对象(JSON对象是
数据文本交换格式)的形式传入到后台,DSL语义拆分子模块对来自前端的DSL语句进行DSL
语义拆分,获取DSL语句中结构化数据中的基本信息(拆分为DSL对象),具体包含数据集、时
间范围、指标名称、维度、限制条件等。DSL语句的示例如下:1、数据集是“xx数据流”,2、时间
范围是“20210529‑20210530”,3、指标名称是“metrics_st_kd”,4、维度是“puin(用户账
号)、rowkey(内容账号)、content_type(内容类型)”,5、限制条件是“页面浏览量大于100且
点击率小于10”,DSL语法解析模块中的库表指标查询子模块执行库表指标信息查询处理:
使用数据集、指标名称、维度等信息,调用数据资产管理平台的HTTP接口进行查询,使用DSL
的数据集获取具体的数据集、使用指标名称获取指标计算方式、使用DSL的维度信息获取具
体的维度,例如,通过rowkey可以获取维度是内容账号、获取具体的数据集时可以获取其数
据集优先级,指标可能会包含多个相似的定义,例如,指标为“点击”时,可以是点击率、点击
数等等,与数据资产管理平台的通信协议是HTTP通信协议,交互所使用的查询参数可以为
data_scale(数据集名称),metrics(指标名称),type(维度),返回参数可以为信息列表,信
息列表中包括对应某个指标的多个具体数据集信息以及其他DSL对象,DSL语法解析模块中
的指标优先排序子模块执行以下处理:按照查询得到的数据集优先级进行数据集排序,筛
选出最优的数据集,并将包括最优的数据集以及其他DSL对象传递给后续模块,包括具体的
数据引擎、数据库的组织结构,数据库名,数据表名,指标名称,限制条件。
[0151] 在一些实施例中,筛选出最优的数据集时可以参考“数据集使用热度”、“数据集所在数据仓库层级”、“指标完整度”等信息求解最优数据集,具体计算方法如下:Y=a1*X1+a2*
X2+a3*X3+…+an*Xn,其中,Y为取数性能分数,a1,a2,a3,an为X1,X2,X3,Xn的权重,a1是“数
据集所在数据仓库等级”的权重,a2是“数据集使用热度”的权重,a3是“指标信息完整度”的
权重,X1代表数据仓库的等级,X2代表“数据集使用热度”,热度该数据集被下游数据集使用
的次数,X3代表“指标完整度”,指标完整度代表在在数据资产管理平台中信息的完整度,例
如,已经填写了指标相关信息的行数,Xn是其他信息,an是其他信息的权重。将每个数据集
的“数据集所在数据仓库等级”、“数据集使用热度”、“指标信息完整度”以及其他信息分别
带入X1、X2、X3、Xn,分别计算每个数据集的取数性能分数,选择取数性能分数最高者返回,
数据仓库的等级的取值规则参见表1:
[0152] 表1 仓库层级与等级取值对应表
[0153]
[0154] 在一些实施例中,参见图8,通用语言生成模块主要负责根据最优数据集和指标的计算方式生成可执行的SQL语句,可以通过对象关系映射器库或者数据库组件实现,通用语
言生成模块(例如,SQL生成模块)中的引擎方言子模块解析DSL对象,按照最优数据集的数
据引擎,确定对应的引擎方言,并通过TDW SQL生成模块、VENUS SQL生成模块以及Mysql 
SQL生成模块根据不同的引擎方言和指标计算方式拼接组装生成SQL语句,再通过TDW SQL
优化模块、VENUS SQL优化模块以及Mysql SQL优化模块优化SQL语句,通用语言生成模块可
以直接返回字符串类型的SQL语句给到平台前端并存储SQL解析结果,也可以继续将SQL语
句传递给取数执行模块,取数执行模块生成执行计划,取数执行模块通过SQL语句向方言对
应的引擎(例如,TDW取数引擎、VENUS取数引擎以及Mysql取数引擎)执行取数逻辑,并且将
多个引擎的取数结果合并生成查询结果,并返回给前端进行显示,参见图9,数据引擎TDW、
数据引擎VENUS以及数据引擎SQL,均具有各自的数据存储引擎以及各自的取数引擎,三个
数据引擎对应有各自的语法,数据引擎TDW对应有语法THive,数据引擎VENUS对应有语法
Hive,数据引擎SQL对应有语法Mysql。
[0155] 在一些实施例中,参见图10,取数执行模块主要负责不同的数据引擎的取数逻辑,并且将不同数据引擎的数据合并返回最终的数据给到用户,取数执行模块生成执行计划,
取数执行模块通过SQL语句向方言对应的引擎(例如,TDW取数引擎、VENUS取数引擎以及
Mysql取数引擎)执行取数逻辑,并且将多个引擎的取数结果合并生成查询的数据结果,并
返回给前端进行显示。
[0156] 在一些实施例中,参见图11,图11是本申请实施例提供的数据查询系统的结构示意图,主要分为Web服务层、逻辑层和存储层,Web服务层主要负责前端页面的请求接入和请
求转发,前端页面通过HTTP接口向Web服务器发送指标查询请求,Web服务器通过远程过程
调用向逻辑层请求查询指标,逻辑层主要包括DSL语法解析模块、通用语言生成模块(例如,
SQL生成模块)和取数执行模块,存储层包括进行取数的多个数据引擎(TDW数据引擎、VENUS
数据引擎以及Mysql数据引擎)和用于存储SQL语句的存储数据库。
[0157] 在本申请实施例的整体取数流程中,用户只需要在页面上操作填写具体的取数要求,从数据查询系统中查询筛选得到最为准确的取数位置、用于进行取数的SQL语句以及最
终的查询结果,当指标变更时,只需要在数据查询系统中修改指标计算方式,所有的取数逻
辑都会变更,从而可以及时生效,节约了修改报表的时间,即不需要逐个修改进行跑数处理
的结构化查询语句或者数据所在的位置(例如,底层报表),并且向用户屏蔽了具体的取数
细节,可以节省获取细节信息的沟通成本和数据库专业知识的学习成本。
[0158] 下面继续说明本申请实施例提供的数据查询装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器250的数据查询装置255中的软件模块可
以包括:语法解析模块2551,用于接收用于查询指标的特定语言查询语句,其中,特定语言
查询语句是基于针对指标设定的查询参数生成的;语法解析模块2551,还用于对特定语言
查询语句进行语法解析处理,得到对应指标的多个数据集,并对多个数据集进行筛选处理,
得到目标数据集;通用语言生成模块2552,用于生成与所述目标数据集以及所述目标数据
集的数据引擎对应的通用语言查询语句;取数执行模块2553,还用于基于通用语言查询语
句调用数据引擎,以从数据引擎读取指标的查询结果。
[0159] 在一些实施例中,语法解析模块2551,还用于:对特定语言查询语句进行语义拆分处理,得到特定语言对象;当特定语言对象包括数据集名称时,基于数据集名称进行数据集
查询处理,得到对应指标的多个数据集。
[0160] 在一些实施例中,语法解析模块2551,还用于:当特定语言对象还包括指标名称时,对指标名称进行语义关联处理,得到至少一个查询指标名称;针对每个查询指标名称执
行以下处理:对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标
数据集。
[0161] 在一些实施例中,语法解析模块2551,还用于:针对每个数据集执行以下处理:获取数据集所在数据仓库的等级、数据集的热度、以及数据集的对应查询指标名称的完整度;
基于等级、热度以及完整度各自对应的权重,对等级、热度以及完整度进行加权求和处理,
得到数据集的取数性能分数;将最高的取数性能分数对应的数据集确定为目标数据集。
[0162] 在一些实施例中,语法解析模块2551,还用于:针对每个数据集执行以下处理:对数据集进行特征提取处理,得到数据集的等级特征、热度特征以及完整度特征;基于等级特
征、热度特征以及完整度特征调用第一神经网络模型,得到数据集的预测取数性能分数;其
中,第一神经网络模型的训练样本包括历史数据集,训练样本的标注数据包括历史数据集
的预标记取数性能分数;将最高的预测取数性能分数对应的数据集确定为目标数据集。
[0163] 在一些实施例中,语法解析模块2551,还用于:通过调用区块链网络中共识节点的接口,向共识节点发送交易;其中,交易中携带包括筛选处理的智能合约的标识、以及多个
数据集;当接收超出数量阈值的共识节点发送的共识数据集被确定为目标数据集的消息
时,将共识数据集确定为目标数据集,其中,共识数据集为多个数据集中的数据集。
[0164] 在一些实施例中,通用语言生成模块2552,还用于:获取对应目标数据集的数据引擎;按照与数据引擎匹配的语法生成通用语言查询语句。
[0165] 在一些实施例中,通用语言生成模块2552,还用于:基于语法,将指标的查询信息以及目标数据集组成初始通用语言查询语句;对初始通用语言查询语句进行优化处理,得
到通用语言查询语句。
[0166] 在一些实施例中,通用语言生成模块2552,还用于:在基于语法,将指标的查询信息以及目标数据集组成初始通用语言查询语句之前,基于指标名称进行计算方式查询处
理,得到对应指标的计算方式;将计算方式、指标的过滤条件、指标的维度以及指标的时间
范围组成查询信息;其中,指标名称、过滤条件、维度以及时间范围是对特定语言查询语句
进行语义拆分处理得到的。
[0167] 在一些实施例中,通用语言生成模块2552,还用于:对初始通用语言查询语句进行特征提取处理,得到初始通用语言查询语句的效率特征;基于效率特征调用第二神经网络
模型,得到初始通用语言查询语句的预测效率评分;其中,第二神经网络模型的训练样本包
括历史初始通用语言查询语句,训练样本的标注数据包括历史初始通用语言查询语句的预
标记效率评分;当预测效率评分低于效率评分阈值时,对初始通用语言查询语句进行优化
处理,得到通用语言查询语句;当效率评分不低于效率评分阈值时,将初始通用语言查询语
句确定为通用语言查询语句。
[0168] 在一些实施例中,通用语言生成模块2552,还用于:基于语法,对初始通用语言查询语句进行等效重写处理,得到与初始通用语言查询语句等效的多个等效通用语言查询语
句;对多个等效通用语言查询语句进行去重处理,得到与多个执行计划一一对应的等效通
用语言查询语句;对经过去重的等效通用语言查询语句进行批量效率测试处理,将得到的
效率测试性能最高的等效通用语言查询语句作为通用语言查询语句。
[0169] 在一些实施例中,取数执行模块2553,还用于:生成基于通用语言查询语句的执行计划;调用对应目标数据集的数据引擎执行以下处理:按照执行计划执行取数逻辑,得到引
擎取数结果;当目标数据集的数目为一个时,将引擎取数结果作为对应特定语言查询语句
的查询结果;当目标数据集的数目为多个时,将与多个目标数据集一一对应的多个引擎取
数结果合并,并将合并取数结果作为对应特定语言查询语句的查询结果。
[0170] 本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处
理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机
设备执行本申请实施例上述的数据查询方法。
[0171] 本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将被处理器执行本申请实施例提供的数据查询
方法,例如,如图4A‑图4D示出的数据查询方法。
[0172] 在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD‑ROM等存储器;也可以是包括上述存储器之一或任意组合的
各种设备。
[0173] 在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其
可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在
计算环境中使用的其它单元。
[0174] 作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper Text 
Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件
中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0175] 作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备
上执行。
[0176] 综上所述,通过本申请实施例,基于针对指标设定的查询参数生成特定语言查询语句,查询参数是可以进行设定的,从而满足用户灵活的指标查询需求,用于指标查询的目
标数据集是基于特定语言查询语句查询以及筛选得到的,从而可以获取更准确的目标数据
集,进而生成对应目标数据集的通用语言查询语句,并基于通用语言查询语句执行取数逻
辑得到查询结果,由于通用语言查询语句是自动生成并执行的,因此获取查询结果的效率
更高,且所获取的查询结果更准确,另外特定语言查询语句向通用语言查询语句的转化,降
低了数据库的取数成本,有效地提高了数据库的利用率。
[0177] 以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之
内。