数据查询方法、装置、电子设备及计算机可读存储介质转让专利
申请号 : CN202110931992.X
文献号 : CN113377805B
文献日 : 2021-11-12
发明人 : 王崟垄
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种数据查询方法,其特征在于,包括:接收用于查询指标的特定语言查询语句,其中,所述特定语言查询语句是基于针对所述指标设定的查询参数生成的;
对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,并对所述多个数据集进行筛选处理,得到目标数据集;
获取对应所述目标数据集的数据引擎;
基于指标名称进行计算方式查询处理,得到对应所述指标的计算方式;
将所述计算方式、所述指标的过滤条件、所述指标的维度以及所述指标的时间范围组成查询信息;
其中,所述指标名称、所述过滤条件、所述维度以及所述时间范围是对所述特定语言查询语句进行语义拆分处理得到的;
基于与所述数据引擎匹配的语法,将所述指标的查询信息以及所述目标数据集组成初始通用语言查询语句;
对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;
基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,包括:对所述特定语言查询语句进行语义拆分处理,得到特定语言对象;
当所述特定语言对象包括数据集名称时,基于所述数据集名称进行数据集查询处理,得到对应所述指标的多个数据集。
3.根据权利要求2所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到目标数据集,包括:
当所述特定语言对象还包括指标名称时,对所述指标名称进行语义关联处理,得到至少一个查询指标名称;
针对每个所述查询指标名称执行以下处理:对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集。
4.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:针对每个所述数据集执行以下处理:获取所述数据集所在数据仓库的等级、所述数据集的热度、以及所述数据集的对应所述查询指标名称的完整度;
基于所述等级、所述热度以及所述完整度各自对应的权重,对所述等级、所述热度以及所述完整度进行加权求和处理,得到所述数据集的取数性能分数;
将最高的取数性能分数对应的数据集确定为所述目标数据集。
5.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:针对每个所述数据集执行以下处理:对所述数据集进行特征提取处理,得到所述数据集的等级特征、热度特征以及完整度特征;
基于所述等级特征、所述热度特征以及所述完整度特征调用第一神经网络模型,得到所述数据集的预测取数性能分数;
其中,所述第一神经网络模型的训练样本包括历史数据集,所述训练样本的标注数据包括所述历史数据集的预标记取数性能分数;
将最高的预测取数性能分数对应的数据集确定为所述目标数据集。
6.根据权利要求3所述的方法,其特征在于,所述对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取数性能最优的目标数据集,包括:通过调用区块链网络中共识节点的接口,向所述共识节点发送交易;
其中,所述交易中携带包括所述筛选处理的智能合约的标识、以及所述多个数据集;
当接收超出数量阈值的共识节点发送的共识数据集被确定为所述目标数据集的消息时,将所述共识数据集确定为所述目标数据集,其中,所述共识数据集为所述多个数据集中的数据集。
7.根据权利要求1所述的方法,其特征在于,所述对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句,包括:对所述初始通用语言查询语句进行特征提取处理,得到所述初始通用语言查询语句的效率特征;
基于所述效率特征调用第二神经网络模型,得到所述初始通用语言查询语句的预测效率评分;
其中,所述第二神经网络模型的训练样本包括历史初始通用语言查询语句,所述训练样本的标注数据包括所述历史初始通用语言查询语句的预标记效率评分;
当所述预测效率评分低于效率评分阈值时,对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;
所述方法还包括:
当所述效率评分不低于效率评分阈值时,将所述初始通用语言查询语句确定为所述通用语言查询语句。
8.根据权利要求1所述的方法,其特征在于,所述对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句,包括:基于所述语法,对所述初始通用语言查询语句进行等效重写处理,得到与所述初始通用语言查询语句等效的多个等效通用语言查询语句;
对所述多个等效通用语言查询语句进行去重处理,得到与多个执行计划一一对应的等效通用语言查询语句;
对经过去重的等效通用语言查询语句进行批量效率测试处理,将得到的效率测试性能最高的等效通用语言查询语句作为所述通用语言查询语句。
9.根据权利要求1所述的方法,其特征在于,所述基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果,包括:生成基于所述通用语言查询语句的执行计划;
调用对应所述目标数据集的数据引擎执行以下处理:按照所述执行计划执行取数逻辑,得到引擎取数结果;
当所述目标数据集的数目为一个时,将所述引擎取数结果作为对应所述特定语言查询语句的查询结果;
当所述目标数据集的数目为多个时,将与所述多个目标数据集一一对应的多个引擎取数结果合并,并将合并取数结果作为对应所述特定语言查询语句的查询结果。
10.一种数据查询装置,其特征在于,包括:语法解析模块,用于接收用于查询指标的特定语言查询语句,其中,所述特定语言查询语句是基于针对所述指标设定的查询参数生成的;
所述语法解析模块,还用于对所述特定语言查询语句进行语法解析处理,得到对应所述指标的多个数据集,并对所述多个数据集进行筛选处理,得到目标数据集;
通用语言生成模块,用于获取对应所述目标数据集的数据引擎;基于指标名称进行计算方式查询处理,得到对应所述指标的计算方式;将所述计算方式、所述指标的过滤条件、所述指标的维度以及所述指标的时间范围组成查询信息;其中,所述指标名称、所述过滤条件、所述维度以及所述时间范围是对所述特定语言查询语句进行语义拆分处理得到的;基于与所述数据引擎匹配的语法,将所述指标的查询信息以及所述目标数据集组成初始通用语言查询语句;对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;
取数执行模块,还用于基于所述通用语言查询语句调用所述数据引擎,以从所述数据引擎读取所述指标的查询结果。
11.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至9任一项所述的数据查询方法。
12.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至9任一项所述的数据查询方法。
说明书 :
数据查询方法、装置、电子设备及计算机可读存储介质
技术领域
背景技术
可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的
集合体。
这种提取数据的流程需要耗费较大的人工成本以及时间成本,查询效率较低。
发明内容
进行数据集查询处理,得到对应所述指标的多个数据集。
标名称执行以下处理:对所述多个数据集进行筛选处理,得到对应所述查询指标名称的取
数性能最优的目标数据集。
询指标名称的完整度;基于所述等级、所述热度以及所述完整度各自对应的权重,对所述等
级、所述热度以及所述完整度进行加权求和处理,得到所述数据集的取数性能分数;将最高
的取数性能分数对应的数据集确定为所述目标数据集。
基于所述等级特征、所述热度特征以及所述完整度特征调用第一神经网络模型,得到所述
数据集的预测取数性能分数;其中,所述第一神经网络模型的训练样本包括历史数据集,所
述训练样本的标注数据包括所述历史数据集的预标记取数性能分数;将最高的预测取数性
能分数对应的数据集确定为所述目标数据集。
识、以及所述多个数据集;当接收超出数量阈值的共识节点发送的共识数据集被确定为所
述目标数据集的消息时,将所述共识数据集确定为所述目标数据集,其中,所述共识数据集
为所述多个数据集中的数据集。
行优化处理,得到所述通用语言查询语句。
式查询处理,得到对应所述指标的计算方式;将所述计算方式、所述指标的过滤条件、所述
指标的维度以及所述指标的时间范围组成所述查询信息;其中,所述指标名称、所述过滤条
件、所述维度以及所述时间范围是对所述特定语言查询语句进行语义拆分处理得到的。
二神经网络模型,得到所述初始通用语言查询语句的预测效率评分;其中,所述第二神经网
络模型的训练样本包括历史初始通用语言查询语句,所述训练样本的标注数据包括所述历
史初始通用语言查询语句的预标记效率评分;当所述预测效率评分低于效率评分阈值时,
对所述初始通用语言查询语句进行优化处理,得到所述通用语言查询语句;当所述效率评
分不低于效率评分阈值时,将所述初始通用语言查询语句确定为所述通用语言查询语句。
语言查询语句;对所述多个等效通用语言查询语句进行去重处理,得到与多个执行计划一
一对应的等效通用语言查询语句;对经过去重的等效通用语言查询语句进行批量效率测试
处理,将得到的效率测试性能最高的等效通用语言查询语句作为所述通用语言查询语句。
逻辑,得到引擎取数结果;当所述目标数据集的数目为一个时,将所述引擎取数结果作为对
应所述特定语言查询语句的查询结果;当所述目标数据集的数目为多个时,将与所述多个
目标数据集一一对应的多个引擎取数结果合并,并将合并取数结果作为对应所述特定语言
查询语句的查询结果。
询语句来进行查询,保证了查询结果的效率和准确性,并通过外特定语言查询语句向通用
语言查询语句的转化,节约了读取数据库的资源消耗,有效地提高了数据库的利用率。
附图说明
具体实施方式
做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
的情况下相互结合。
的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的
顺序实施。
不是旨在限制本申请。
大降级理解和使用难度,同时极大提高开发效率。基于领域特定语言的查询语句称为特定
语言查询语句。
的查询语句称为通用语言查询语句。
求。
易”这一术语,本发明实施例遵循了这一习惯。
块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值
对)和查询操作(即查询状态数据库中的键值对)。
键值对数据进行更新或查询的操作。
工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,
Delegated Proof‑of‑Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
制和优化。
及指标计算方式,再根据数据库管理员的回复编写结构化查询语句,并通过结构化查询语
句进行跑数以提取对应指标的数据,针对不需要计算的指标,需要向数据库的管理员询问
数据所在的位置(报表),查看报表,然后提取对应指标的数据。
据所在的位置(例如,底层报表)都需要逐个修改,带来了巨大的工作量。
杂的数据存储位置、存储形式、指标定义等细节完全屏蔽,直接返回给用户用于提取数据的
结构化查询语句以及取数结果,下面说明本申请实施例提供的电子设备的示例性应用,本
申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动
设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)
等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应
用。
400显示设定操作中规定的查询参数,终端400基于查询参数生成针对指标的特定语言查询
语句,终端400将特定语言查询语句发送至服务器200,通过服务器200对特定语言查询语句
进行语法解析处理,得到对应指标的多个数据集,并对多个数据集进行筛选处理,得到目标
数据集;生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句;基于通
用语言查询语句调用数据引擎,以从数据引擎500读取指标的查询结果,服务器200将查询
结果以及通用语言查询语句返回至终端400,在终端400上显示查询结果以及通用语言查询
语句。
间范围等等,终端400基于查询参数生成针对点击率的特定语言查询语句,终端400将特定
语言查询语句发送至服务器200,通过服务器200对特定语言查询语句进行语法解析处理,
得到对应点击率的多个数据集,并对对应点击率的多个数据集进行筛选处理,得到目标数
据集;生成与目标数据集以及目标数据集的数据引擎对应的通用语言查询语句;基于通用
语言查询语句调用数据引擎,以从数据引擎500读取点击率的查询结果,服务器200将点击
率的查询结果以及通用语言查询语句返回至终端400,在终端400上显示点击率的查询结果
以及通用语言查询语句。
储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台
等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算
机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方
式进行直接或间接地连接,本发明实施例中不做限制。
申请实施例提供的电子设备的结构示意图,以该电子设备为服务器200为例进行说明。图3
所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220。服务器200
中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间
的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总
线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统240。
晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理
器等。
个或多个存储设备。
以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在
包括任意适合类型的存储器。
Universal Serial Bus)等。
以下软件模块:语法解析模块2551、通用语言生成模块2552以及取数执行模块2553,这些模
块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说
明各个模块的功能。
501中显示输入的查询参数505,终端根据用户通过人机交互界面输入的查询参数生成特定
语言查询语句,响应于针对提交控件502的触发操作,向服务器发送数据查询请求,并向服
务器发送用于查询指标的特定语言查询语句,指标可以为点击率、曝光率等等,特定语言查
询语句可以为DSL查询语句,若人机交互界面中接收的查询参数为“用户账号”,则特定语言
查询语句中查询参数为“puin”,特定语言查询语句的语法满足于特定领域的语言规则,但
是人机交互界面中接收的查询参数的语法是用户的日常用语。
以通过图4B示出的步骤1021‑1022实现。
流”,2、时间范围是“2020.12.01‑2020.12.31”,3、维度是“图文”,4、指标名称是点击数,5、
过滤条件是“活跃天数>5”。
管理平台基于“xx信息流”这个数据集名称进行数据集查询处理,得到可以用于查询指标的
多个数据集,例如,数据集A、数据集B和数据集C,数据集A、数据集B和数据集C的数据集名称
均为QB信息流,数据集A、数据集B和数据集C均可以用于查询指标,例如数据集A、数据集B和
数据集C均可以用于查询点击数,数据资产管理平台通过HTTP接口将查询到的具体数据集
A‑C返回至服务器。
1023‑1024实现。
长,经过语义关联出处理后并未得到不同于“总时长”的查询指标名称,则查询指标名称即
为“总时长”,例如,指标名称是“点击数”,经过语义关联出处理后并得到不同于“点击数”的
查询指标名称“点击率”,则查询指标名称为“点击率”和“点击数”,查询指标名称与指标名
称相似或者相同。
处理:获取数据集所在数据仓库的等级、数据集的热度(即数据集的使用频率)、以及数据集
的对应查询指标名称的完整度;基于等级、热度以及完整度各自对应的权重,对等级、热度
以及完整度进行加权求和处理,得到数据集的取数性能分数;将最高的取数性能分数对应
的数据集确定为目标数据集。
应用层级与数据仓库层级的隔离层,主要对操作数据存储层级的数据执行数据清洗和规范
化的操作,数据基础层存储的是客观数据,可以认为是大量指标的数据层,数据服务层用于
提供后续的业务查询,数据分发等,应用层级的数据仓库的等级高于细节数据层的数据仓
库的等级,细节数据层的数据仓库的等级高于数据基础层的数据仓库的等级,数据基础层
的数据仓库的等级高于数据服务层的数据仓库的等级,数据服务层的数据仓库的等级高于
操作数据存储层级的数据仓库的等级。
查询指标名称的完整度)等信息求解最优数据集,具体计算方法如下: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,分别计算每个数据集的取数性能分数,选择取数性能分数最高者返回。
处理:对数据集进行特征提取处理,得到数据集的等级特征、热度特征以及完整度特征;基
于等级特征、热度特征以及完整度特征调用第一神经网络模型,得到数据集的预测取数性
能分数;其中,第一神经网络模型的训练样本包括历史数据集,训练样本的标注数据包括历
史数据集的预标记取数性能分数;将最高的预测取数性能分数对应的数据集确定为目标数
据集。
集的预标记取数性能分数,历史数据集是从历史指标查询请求的历史记录中提取得到的,
历史记录中记录有历史指标查询请求过程中所获取的多个历史数据集,历史目标数据集以
及用户反馈的针对查询结果的满意度,满意度与预标记取数性能分数成正相关关系,直接
通过第一神经网络模型基于实时的数据集的等级特征预测数据集的预测取数性能分数,从
而可以提高实施例中筛选得到目标数据集的智能程度,减少人工设置权重所带来的干预,
通过真实可验的历史数据来确定可靠的目标数据集,从而实现了筛选过程的高效性。
识节点的接口,向共识节点发送交易;其中,交易中携带包括筛选处理的智能合约的标识、
以及多个数据集;当接收超出数量阈值的共识节点发送的共识数据集被确定为目标数据集
的消息时,将共识数据集确定为目标数据集,其中,共识数据集为多个数据集中的数据集。
约的标识、以及多个数据集;基于智能合约的标识获取对应筛选处理的智能合约,调用对应
筛选处理的智能合约可以执行对应筛选处理的逻辑,交易中还携带有多个数据集,从而针
对多个数据集执行对应筛选处理的逻辑,在进行完筛选处理之后,当接收超出数量阈值的
共识节点发送的共识数据集被确定为目标数据集的消息时,将共识数据集确定为目标数据
集,通过共识节点调用智能合约来执行,共识节点执行智能合约的结果需要获得其他节点
的共识才能有效,从而保证了目标数据集的可靠性和一致性。
可以通过图4D示出的步骤1031‑1032实现。
求。使用数据引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建
用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过
程),每个目标数据集对应有各自的数据引擎,因此在读取每个目标数据集的数据时,需要
通过对应各个数据引擎的通用语言查询语句进行读取。
据集组成初始通用语言查询语句;对初始通用语言查询语句进行优化处理,得到通用语言
查询语句。
种)生成可执行的通用语言查询语句,通用语言查询语句可以为SQL语句,可以通过对象关
系映射器或者数据库组件实现SQL语句的生成,通用语言生成模块包括两个子模块:SQL引
擎方言子模块根据目标数据集的数据引擎的组织和结构不同,按照不同的语法进行通用语
言查询语句的组装,返回初始通用语言查询语句,SQL优化模块对初始通用语言查询语句在
执行上进行优化,可以达到最佳的执行效果,以减少执行的耗时,最后将通用语言查询语句
输出到Mysql中存储并返回至终端展示,参见图9,图9是本申请实施例提供的数据存储引擎
的结构示意图,数据引擎TDW、数据引擎VENUS以及数据引擎SQL,均具有各自的数据存储引
擎以及各自的取数引擎,三个数据引擎对应有各自的语法,数据引擎TDW对应有语法THive,
数据引擎VENUS对应有语法Hive,数据引擎SQL对应有语法Mysql。
算方式、指标的过滤条件、指标的维度以及指标的时间范围组成查询信息;其中,指标名称、
过滤条件、维度以及时间范围是对特定语言查询语句进行语义拆分处理得到的。
对应指标的计算方式,例如,指标名称为“点击数”时,服务器调用HTTP接口向数据资产管理
平台发出计算方式查询请求,以使数据资产管理平台基于“点击数”这个指标名称进行计算
方式查询处理,得到用于计算“点击数”的计算方式,数据资产管理平台通过HTTP接口将查
询到的具体数据集A‑C返回至服务器,并且,基于指标名称进行计算方式查询处理,得到对
应指标的计算方式时,可以先对指标名称进行语义关联处理,得到至少一个查询指标名称,
基于至少一个查询指标名称进行计算方式查询处理,得到对应指标的计算方式。
始通用语言查询语句的效率特征;基于效率特征调用第二神经网络模型,得到初始通用语
言查询语句的预测效率评分;其中,第二神经网络模型的训练样本包括历史初始通用语言
查询语句,训练样本的标注数据包括历史初始通用语言查询语句的预标记效率评分;当预
测效率评分低于效率评分阈值时,对初始通用语言查询语句进行优化处理,得到通用语言
查询语句;当效率评分不低于效率评分阈值时,将初始通用语言查询语句确定为通用语言
查询语句。
样本的标注数据包括历史初始通用语言查询语句的预标记效率评分,历史初始通用语言查
询语句是从历史指标查询请求的历史记录中提取得到的,历史记录中记录有历史指标查询
请求过程中所获取的多个历史初始通用语言查询语句,历史通用语言查询语句以及执行历
史通用语言查询语句的时间,时间与预标记效率评分成负相关关系,直接通过第二神经网
络模型基于实时的初始通用语言查询语句的效率特征预测初始通用语言查询语句的预测
效率评分,从而可以提高实施例中优化初始通用语言查询语句的智能程度,并且有效筛选
出需要优化的初始通用语言查询语句,提高优化过程中的资源利用率。
遍历),初始通用语句的模拟执行时间等等。
理,得到与初始通用语言查询语句等效的多个等效通用语言查询语句;对多个等效通用语
言查询语句进行去重处理,得到与多个执行计划一一对应的等效通用语言查询语句;对经
过去重的等效通用语言查询语句进行批量效率测试处理,将得到的效率测试性能最高的等
效通用语言查询语句作为通用语言查询语句。
重写,产生与初始通用语言查询语句等效的多个等效通用语言查询语句,再通过“人工智能
反馈式搜索引擎”对产生的多个等效通用语言查询语句进行重写,直至无法产生新的等效
通用语言查询语句或等效通用语言查询语句的数目达到数目阈值,接下来对等效通用语言
查询语句进行去重处理,选出具有不同执行计划的等效通用语言查询语句(不同的执行计
划意味着不同的执行效率),最后,对得到的等效通用语言查询语句进行批量测试,将得到
的效率测试性能最高的等效通用语言查询语句作为通用语言查询语句。
划;调用对应目标数据集的数据引擎执行以下处理:按照执行计划执行取数逻辑,得到引擎
取数结果;当目标数据集的数目为一个时,将引擎取数结果作为对应特定语言查询语句的
查询结果;当目标数据集的数目为多个时,将与多个目标数据集一一对应的多个引擎取数
结果合并,并将合并取数结果作为对应特定语言查询语句的查询结果。
以下处理:按照执行计划执行取数逻辑,得到引擎取数结果,当目标数据集的数目为一个
时,将引擎取数结果作为对应特定语言查询语句的查询结果;当目标数据集的数目为多个
时,取数执行模块负责不同的数据引擎的取数逻辑,并且将不同数据引擎的数据合并返回
最终的数据给到用户,即将与多个目标数据集一一对应的多个引擎取数结果合并,并将合
并取数结果作为对应特定语言查询语句的查询结果。
下面分别说明。
授权的情况下接入区块链网络600;以联盟链为例,业务主体在获得授权后其下辖的计算机
设备(例如终端/服务器)可以接入区块链网络600,此时,如成为区块链网络600中的客户端
节点。
识节点的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性
(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理
逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可
信和可追溯。
的客户端节点中显示。
从而触发客户端节点410中相应的业务逻辑。
署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块
链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡
改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发
起交易的权限。业务主体下辖的计算机设备(例如终端或者服务器)运行的客户端都可以向
区块链网络600请求接入而成为客户端节点。
送至区块链网络600,其中,将指标查询请求以及特定语言查询语句发送至区块链网络600
的操作,可以预先在客户端节点410设置业务逻辑,当终端获取指标查询操作时,客户端节
点410将指标查询请求自动发送至区块链网络600,在发送时,客户端节点410根据指标查询
请求生成对应查询操作的交易,在交易中指定了实现查询操作需要调用的智能合约、以及
向智能合约传递的参数,交易还携带了客户端节点410的数字证书、签署的数字签名(例如,
使用客户端节点410的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到
区块链网络600中的共识节点。
具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功
后签署节点自己的数字签名(例如,使用共识节点610‑1的私钥对交易的摘要进行加密得
到),并继续在区块链网络600中广播。
询语句生成处理以及指标查询处理,其中,节点所执行的处理是通过与数据引擎交互实现
的,如果共识成功,则将查询结果以及通用语言查询语句作为交易结果返回至业务主体
100,并将查询结果填充到区块,形成新的区块,区块链网络600中的共识节点广播的新区块
时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾
部,并根据交易结果(查询结果以及通用语言查询语句)更新状态数据库,状态数据库中还
存储有交易所产生的中间结果,例如对应指标的多个数据集、目标数据集。
区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的
共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构
保证了区块中交易的防篡改和防伪造。
识层602、网络层603、数据层604和资源层605,下面分别进行说明。
签名、公/私钥对)实现节点之间传输数据的可靠性;接入认证机制用于根据实际的业务场
景对加入区块链网络600的业务主体的身份进行认证,并在认证通过时赋予业务主体接入
区块链网络600的权限;业务主体身份管理用于存储允许接入区块链网络600的业务主体的
身份、以及权限(例如能够发起的交易的类型)。
的可插拔。
息);对于获得接入区块链网络600的授权的业务主体而言,均拥有认证中心颁发的数字证
书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法
身份。
当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询
结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希
值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询
交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中
的区块链。
率等指标,以通过数据查询系统查询点击率指标为例进行说明,响应于终端400接收到用户
针对点击率指标的查询参数设定操作,终端400显示设定操作中规定的查询参数,例如,时
间范围等等,终端400基于查询参数生成针对点击率的特定语言查询语句,终端400将特定
语言查询语句发送至服务器200,通过服务器200对特定语言查询语句进行语法解析处理,
得到对应点击率的多个数据集,并对对应点击率的多个数据集进行筛选处理,得到目标数
据集;生成与所述目标数据集以及所述目标数据集的数据引擎对应的通用语言查询语句;
基于通用语言查询语句调用数据引擎,以从数据引擎500读取点击率的查询结果,服务器
200将点击率的查询结果以及通用语言查询语句返回至终端400,在终端400上显示点击率
的查询结果以及通用语言查询语句。
操作,向服务器发送数据查询请求,服务器响应于数据查询请求生成SQL语句(通用语言查
询语句)并基于SQL语句执行取数逻辑,得到取数结果,将取数结果以及SQL语句返回至客户
端,并在客户端的人机交互界面显示取数结果503以及SQL语句504,在上述过程中用户不必
关心取数结果是如何得到的。
法解析模块、通用语言生成模块和取数执行模块,服务器的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取数引擎)执行取数逻辑,并且将多个引擎
的取数结果合并生成查询的数据结果,并返回给前端进行显示。
语法解析模块中的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对象传递给后续模块,包括具体的
数据引擎、数据库的组织结构,数据库名,数据表名,指标名称,限制条件。
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:
言生成模块(例如,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。
取数执行模块通过SQL语句向方言对应的引擎(例如,TDW取数引擎、VENUS取数引擎以及
Mysql取数引擎)执行取数逻辑,并且将多个引擎的取数结果合并生成查询的数据结果,并
返回给前端进行显示。
求转发,前端页面通过HTTP接口向Web服务器发送指标查询请求,Web服务器通过远程过程
调用向逻辑层请求查询指标,逻辑层主要包括DSL语法解析模块、通用语言生成模块(例如,
SQL生成模块)和取数执行模块,存储层包括进行取数的多个数据引擎(TDW数据引擎、VENUS
数据引擎以及Mysql数据引擎)和用于存储SQL语句的存储数据库。
终的查询结果,当指标变更时,只需要在数据查询系统中修改指标计算方式,所有的取数逻
辑都会变更,从而可以及时生效,节约了修改报表的时间,即不需要逐个修改进行跑数处理
的结构化查询语句或者数据所在的位置(例如,底层报表),并且向用户屏蔽了具体的取数
细节,可以节省获取细节信息的沟通成本和数据库专业知识的学习成本。
以包括:语法解析模块2551,用于接收用于查询指标的特定语言查询语句,其中,特定语言
查询语句是基于针对指标设定的查询参数生成的;语法解析模块2551,还用于对特定语言
查询语句进行语法解析处理,得到对应指标的多个数据集,并对多个数据集进行筛选处理,
得到目标数据集;通用语言生成模块2552,用于生成与所述目标数据集以及所述目标数据
集的数据引擎对应的通用语言查询语句;取数执行模块2553,还用于基于通用语言查询语
句调用数据引擎,以从数据引擎读取指标的查询结果。
查询处理,得到对应指标的多个数据集。
行以下处理:对多个数据集进行筛选处理,得到对应查询指标名称的取数性能最优的目标
数据集。
基于等级、热度以及完整度各自对应的权重,对等级、热度以及完整度进行加权求和处理,
得到数据集的取数性能分数;将最高的取数性能分数对应的数据集确定为目标数据集。
征、热度特征以及完整度特征调用第一神经网络模型,得到数据集的预测取数性能分数;其
中,第一神经网络模型的训练样本包括历史数据集,训练样本的标注数据包括历史数据集
的预标记取数性能分数;将最高的预测取数性能分数对应的数据集确定为目标数据集。
数据集;当接收超出数量阈值的共识节点发送的共识数据集被确定为目标数据集的消息
时,将共识数据集确定为目标数据集,其中,共识数据集为多个数据集中的数据集。
到通用语言查询语句。
理,得到对应指标的计算方式;将计算方式、指标的过滤条件、指标的维度以及指标的时间
范围组成查询信息;其中,指标名称、过滤条件、维度以及时间范围是对特定语言查询语句
进行语义拆分处理得到的。
模型,得到初始通用语言查询语句的预测效率评分;其中,第二神经网络模型的训练样本包
括历史初始通用语言查询语句,训练样本的标注数据包括历史初始通用语言查询语句的预
标记效率评分;当预测效率评分低于效率评分阈值时,对初始通用语言查询语句进行优化
处理,得到通用语言查询语句;当效率评分不低于效率评分阈值时,将初始通用语言查询语
句确定为通用语言查询语句。
句;对多个等效通用语言查询语句进行去重处理,得到与多个执行计划一一对应的等效通
用语言查询语句;对经过去重的等效通用语言查询语句进行批量效率测试处理,将得到的
效率测试性能最高的等效通用语言查询语句作为通用语言查询语句。
擎取数结果;当目标数据集的数目为一个时,将引擎取数结果作为对应特定语言查询语句
的查询结果;当目标数据集的数目为多个时,将与多个目标数据集一一对应的多个引擎取
数结果合并,并将合并取数结果作为对应特定语言查询语句的查询结果。
理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机
设备执行本申请实施例上述的数据查询方法。
方法,例如,如图4A‑图4D示出的数据查询方法。
各种设备。
可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在
计算环境中使用的其它单元。
Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件
中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
上执行。
标数据集是基于特定语言查询语句查询以及筛选得到的,从而可以获取更准确的目标数据
集,进而生成对应目标数据集的通用语言查询语句,并基于通用语言查询语句执行取数逻
辑得到查询结果,由于通用语言查询语句是自动生成并执行的,因此获取查询结果的效率
更高,且所获取的查询结果更准确,另外特定语言查询语句向通用语言查询语句的转化,降
低了数据库的取数成本,有效地提高了数据库的利用率。
内。