CN113886419A - Sql语句处理方法、装置、计算机设备及存储介质 - Google Patents

Sql语句处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113886419A
CN113886419A CN202111150426.1A CN202111150426A CN113886419A CN 113886419 A CN113886419 A CN 113886419A CN 202111150426 A CN202111150426 A CN 202111150426A CN 113886419 A CN113886419 A CN 113886419A
Authority
CN
China
Prior art keywords
sql
sql statement
same
item
items
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.)
Pending
Application number
CN202111150426.1A
Other languages
English (en)
Inventor
周伟
范子龙
刘莹浓
刘亮亮
陈杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Medical and Healthcare Management Co Ltd
Original Assignee
Ping An Medical and Healthcare Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Medical and Healthcare Management Co Ltd filed Critical Ping An Medical and Healthcare Management Co Ltd
Priority to CN202111150426.1A priority Critical patent/CN113886419A/zh
Publication of CN113886419A publication Critical patent/CN113886419A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了SQL语句处理方法、装置、计算机设备及存储介质,属于数据库技术领域。SQL语句处理方法可依据预设规则将SQL语句集合中操作项类型相同、数据源相同且逻辑项相同的第一SQL语句分组,以便于将同一分组中的所有第一SQL语句组合,生成组合后的第二SQL语句,减小SQL语句的任务量,通过执行第二SQL语句从而获取相应的任务结果,从而缩短执行任务的时间,达到提升执行效率的目的。

Description

SQL语句处理方法、装置、计算机设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及SQL语句处理方法、装置、计算机设备及存储介质。
背景技术
数据库中数据质量检测是不可或缺的环节,通过数据质量检查可有效的筛选出存在质量问题的数据,以便于对其进行整改。现有的数据质量检查过程为:
(1)配置数据质量检查规则,质量检查规则的配置内容为:【表,字段,检查规则】。以表TABLE_A中有一个字段FIELD_1,对该字段做非空检查为例,配置规则为:【TABLE_A,FIELD_1,非空校验】;
(2)根据配置规则生成相应的SQL语句;
(3)将SQL语句提交到SPARK计算引擎上执行,以获取SPARK计算引擎执行完SQL语句后返回的结果。
在实际落地的过程中发现,“将SQL语句提交到SPARK计算引擎上执行”存在性能瓶颈。当一个SQL语句提交到SPARK计算引擎执行时,计算引擎需向集群资源管理器申请执行该任务所需的资源并分配、创建task、进行任务调度等等操作,一般计算并分配任务执行需要2s左右的时间(若任务数过多资源不足时,还需等待前面的任务执行完成释放资源后续任务才能执行,等待的时间会更长)。以对720张表配置8000条配置规则为例:根据8000条配置规则生成8000条sql语句,将这些SQL语句提交SPARK计算引擎执行,SPARK计算引擎对接收的8000条任务执行相应的操作,在执行人过程中,由于过多的任务会减低数据质量检查的效率,甚至部分SQL语句执行时会出现超时报错,无法正确返回执行结果的情况。
发明内容
针对大量SQL语句执行时效率低,耗时长的问题,现提供一种旨在可提升SQL语句执行效率的SQL语句处理方法、装置、计算机设备及存储介质。
为实现上述目的,本发明提供一种SQL语句处理方法,包括:
获取SQL语句集合,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;
依据预设规则对所述SQL语句集合中的所述第一SQL语句分组,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同;
将同一分组中的所有第一SQL语句组合,生成第二SQL语句;
执行所述第二SQL语句,以获取任务结果。
可选的,所述操作项包括字段元素和至少一个操作函数;
所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
可选的,每一所述第一SQL语句关联一标签;
所述将同一分组中的所有第一SQL语句组合,生成第二SQL语句,包括:
采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
将所述标签组合项、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
可选的,每一所述第一SQL语句关联一标签;
所述将同一分组中的所有第一SQL语句组合,生成第二SQL语句,包括:
采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
将同一分组中结构相同且所述操作函数中参数相同的操作函数,作为统一操作函数;
对于同一分组中结构相同且所述操作函数中字段元素不同的操作函数,依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
将所述标签组合项、所述统一操作函数、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
可选的,所述执行所述第二SQL语句,以获取任务结果,包括:
将所述第二SQL语句发送至计算引擎,所述计算引擎计算任务时间和资源空间,根据所述任务时间和所述资源空间向资源管理器申请分配资源,创建任务,将所述任务发送至相应的资源,执行任务操作,以获取所述任务结果。
可选的,所述任务结果包括标签组合项和结果项,所述标签组合包括至少两个所述标签,所述标签之间通过所述分割符串联,所述结果项包括至少一个操作结果组合项,所述操作结果组合项包括至少两个结果子项,所述结果子项之间通过所述分割符串联;
还包括:
根据所述分隔符将所述任务结果拆分为至少两个子任务结果;
所述子任务结果包括标签和结果子项。
为实现上述目的,本发明还提供一种SQL语句处理装置,包括:
获取单元,用于获取SQL语句集合,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;
分组单元,用于依据预设规则对所述SQL语句集合中的所述第一SQL语句分组,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同;
组合单元,用于将同一分组中的所有第一SQL语句组合,生成第二SQL语句;
执行单元,用于执行所述第二SQL语句,以获取任务结果。
可选的,所述操作项包括字段元素和至少一个操作函数;
所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
为实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的SQL语句处理方法、装置、计算机设备及存储介质,可依据预设规则将SQL语句集合中操作项类型相同、数据源相同且逻辑项相同的第一SQL语句分组,以便于将同一分组中的所有第一SQL语句组合,生成组合后的第二SQL语句,减小SQL语句的任务量,通过执行第二SQL语句从而获取相应的任务结果,从而缩短执行任务的时间,达到提升执行效率的目的。
附图说明
图1为本发明所述的SQL语句处理方法的一种实施例的流程图;
图2为本发明所述的SQL语句处理方法的另一种实施例的流程图;
图3为生成第二SQL语句的一种实施例的流程图;
图4为生成第二SQL语句的另一种实施例的流程图;
图5为本发明所述的SQL语句处理方法的另一种实施例的流程图;
图6为本发明所述的SQL语句处理装置的一种实施例的模块图;
图7为本发明中所述组合单元的模块图;
图8为本发明所述的计算机设备一实施例的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明提供的SQL语句处理方法、装置、计算机设备及存储介质,可适用于保险、金融、智能医疗、租赁等业务领域。本发明可依据预设规则将SQL语句集合中操作项类型相同、数据源相同且逻辑项相同的第一SQL语句分组,以便于将同一分组中的所有第一SQL语句组合,生成组合后的第二SQL语句,减小SQL语句的任务量,通过执行第二SQL语句从而获取相应的任务结果,从而缩短执行任务的时间,达到提升执行效率的目的。
实施例一
请参阅图1,本实施例的一种SQL语句处理方法,包括以下步骤:
S1.获取SQL语句集合。
其中,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;所述操作项包括字段元素和至少一个操作函数。
需要说明的是,每一所述第一SQL语句关联一标签。字段元素可以是某一个字段也可以是包括多个字段的字段区间。
在实际应用中,数据源为数据库中的表名。操作项可由SQL的结构化查询语言构成,如:SELECT(从数据库表中获取数据)、UPDATE(更新数据库表中的数据)、DELETE(从数据库表中删除数据)、INSERT INTO(向数据库表中插入数据)等。逻辑项为配置规则,如:非空校验、字典值检查等。
上述数据库可采用服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一种可能的实现方式中,所述数据源是医疗数据,如个人健康档案、处方、检查报告等数据。
在一种可能的实现方式中,所述数据源为医疗文本,所述医疗文本可以是医疗电子记录(Electronic Healthcare Record),电子化的个人健康记录,包括病历、心电图、医学影像等一系列具备保存备查价值的电子化记录。
信息查询成为很多场景中用户快速获取所需信息的渠道。例如在医疗领域中,可以基于人工智能模型从海量的电子病历中查询用户所需的病历信息,有助于为用户提供病历参考。
作为举例而非限定,配置数据为:【TABLE_A,FIELD_1,非空校验】,相应的第一SQL语句为:
Figure BDA0003286840720000061
Figure BDA0003286840720000071
其中,SELECT……FROM为操作项,FROM后面的“TABLE_A”为数据源,WHERE后面的“is_valid=1”为逻辑项。
配置数据为:【TABLE_A,FIELD_2,非空校验】,相应的第一SQL语句为:
Figure BDA0003286840720000072
其中,SELECT……FROM为操作项,FROM后面的“TABLE_A”为数据源,WHERE后面的“is_valid=1”为逻辑项。
在一实施例中,参阅图2所示,执行步骤S1之前还可包括:
A.获取所有配置数据,根据各个所述配置数据分别生成相应的第一SQL语句,得到由所有所述第一SQL语句构成的所述SQL语句集合。
其中,每一条所述配置数据均包括数据源、字段元素和事件规则数据。
在本实施例中,每一条配置数据都会生成一条第一SQL语句,若有多条配置数据,则会生成多条第一SQL语句。例如:对TABLE_A表的FIELD_1字段进行非空校验的配置数据为:【TABLE_A,FIELD_1,非空校验】;对TABLE_A表的FIELD_2字段进行非空校验的配置数据为:【TABLE_A,FIELD_2,非空校验】;其中,TABLE_A为数据源(表名),FIELD_1和FIELD_2均为字段元素,非空校验为事件规则数据。
S2.依据预设规则对所述SQL语句集合中的所述第一SQL语句分组。
其中,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同。
在本实施例中,所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
进一步地,步骤S2可包括:
S21.解析所述SQL语句集合中各个所述第一SQL语句,确定每一所述第一SQL语句中的操作项、数据源和逻辑项。
S22.将操作项类型相同、数据源相同且逻辑项相同的所有第一SQL语句作为一组。
在本实施例中,操作项结构与第一SQL语句执行后的结果结构相对应,因此,操作项的结构相同也可以理解为第一SQL语句执行后的结果结构相同。如标签ID为1的第一SQL语句为:
Figure BDA0003286840720000081
执行后的结果为:
标签ID total statis result
1 50 25 0.5
标签ID为2的第一SQL语句为:
Figure BDA0003286840720000082
执行后的结果为:
Figure BDA0003286840720000083
Figure BDA0003286840720000091
上述,标签ID1的第一SQL语句和标签ID2的第一SQL语句的操作项的结构相同,执行的结果结构也相同,字段元素的类型(FIELD_1字段和FIELD_2字段)相同,数据源(TABLE_A)相同,逻辑项(is_valid=1)相同。因此,两个第一SQL语句可作为同一分组。
S3.将同一分组中的所有第一SQL语句组合,生成第二SQL语句。
在一优选的实施例中,参阅图3所示,步骤S3可包括以下步骤:
S301.采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
在本实施例中,分割符为与SQL语法不冲突、且与数据源的内容不会存在特殊组合的符号,如:分割符可采用‘#_#’。
S302.将同一分组中结构相同且所述操作函数中参数相同的操作函数,作为统一操作函数;
S303.对于同一分组中结构相同且所述操作函数中字段元素不同的操作函数,依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
S304.将所述标签组合项、所述统一操作函数、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
以上述标签ID为1的第一SQL语句和标签ID为2的第一SQL语句为例:组合后的第二SQL语句为:
Figure BDA0003286840720000092
Figure BDA0003286840720000101
其中,标签组合项为:CONCAT(1,‘#_#’,2)AS id;统一操作函数为:count(1)AStotal;操作组合项为:CONCAT(count(case when FIELD_1is null then 1end),‘#_#’,count(case when FIELD_2is null then 1end))AS statis,CONCAT(count(case whenFIELD_1is null then 1end)/count(1),‘#_#’,count(case when FIELD_2is null then1end)/count(1))AS result。
在另一优选的实施例中,参阅图4所示,步骤S3可包括以下步骤:
S311.采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
S312.依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
S313.将所述标签组合项、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
S4.执行所述第二SQL语句,以获取任务结果。
进一步地,步骤S4可包括:将所述第二SQL语句发送至计算引擎,所述计算引擎计算任务时间和资源空间,根据所述任务时间和所述资源空间向资源管理器申请分配资源,创建任务,将所述任务发送至相应的资源,执行任务操作,以获取所述任务结果。
在本实施例中,当第二SQL语句提交到SPARK计算引擎执行时,SPARK计算引擎需计算任务时间和资源空间,从而向集群资源管理器申请执行该任务所需的资源并分配、创建task、进行任务调度等操作,例如:8000条第一SQL语句,经组合后得到720条第二SQL语句,通过SPARK计算引擎执行第二SQL语句时,可节省(8000-720)×2s=14560s(大约4.04h)4.04h,由此可知,在执行SQL语句之前,通过将符合预设规则的第一SQL语句组合,再执经组合后的第二SQL语句,可有效的减低执行时间,提高执行效率。
在本实施例中,所述任务结果可包括标签组合项和结果项,所述标签组合包括至少两个所述标签,所述标签之间通过所述分割符串联,所述结果项包括至少一个操作结果组合项,所述操作结果组合项包括至少两个结果子项,所述结果子项之间通过所述分割符串联。
以第二SQL语句由标签ID为1的第一SQL语句和标签ID2的第一SQL语句构成为例,其任务结果A为:
标签ID total statis result
1‘#_#’2 50 25‘#_#’20 0.5‘#_#’0.4
其中,1‘#_#’2为标签组合,50、25‘#_#’20和0.5‘#_#’0.4共同组合结果项,25‘#_#’20和0.5‘#_#’0.4均为操作结果组合项,25、20、0.5、0.4均为结果子项。
在另一实施例中,参阅图5所示,SQL语句处理方法还可包括:
S5.根据所述分隔符将所述任务结果拆分为至少两个子任务结果。
其中,所述子任务结果包括标签和结果子项。
在本实施例中,根据标签组合的顺序,将任务结果拆分为若干个子任务结果。
以任务结果A为例,其拆分的结果如下:
标签ID total statis result
1 50 25 0.5
2 50 20 0.4
在本实施例中,SQL语句处理方法可依据预设规则将SQL语句集合中操作项类型相同、数据源相同且逻辑项相同的第一SQL语句分组,以便于将同一分组中的所有第一SQL语句组合,生成组合后的第二SQL语句,减小SQL语句的任务量,通过执行第二SQL语句从而获取相应的任务结果,从而缩短执行任务的时间,达到提升执行效率的目的。
在实际应用中,对SQL语句组合优化之前,对数仓中ods(操作存储数据)层存储的720张表进行数据质量验证需生成8000条第一SQL语句,通过SPARK计算引擎,其中,大约80%多的第一SQL语句会因为SPARK资源无法分配一直排队等待而失败,只有不到20%的sql可以执行成功。在进行动态SQL语句组合优化之后,可将8000条第一SQL语句组合成720条(大约720张表)第二SQL语句,组合之后只将720个任务提交到SPARK计算引擎执行,大大减少了任务数,且720个任务均可以执行成功,执行用时大约为2.5小时,解决了数据质量分析环节的性能瓶颈的问题,提高了执行效率。
实施例二
请参阅图6,本实施例的一种SQL语句处理装置1,包括:获取单元11、分组单元12、组合单元13和执行单元14。
获取单元11,用于获取SQL语句集合。
其中,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;所述操作项包括字段元素和至少一个操作函数。
需要说明的是,每一所述第一SQL语句关联一标签。字段元素可以是某一个字段也可以是包括多个字段的字段区间。
在实际应用中,数据源为数据库中的表名。操作项可由SQL的结构化查询语言构成,如:SELECT(从数据库表中获取数据)、UPDATE(更新数据库表中的数据)、DELETE(从数据库表中删除数据)、INSERT INTO(向数据库表中插入数据)等。逻辑项为配置规则,如:非空校验、字典值检查等。
上述数据库可采用服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一种可能的实现方式中,所述数据源是医疗数据,如个人健康档案、处方、检查报告等数据。
在一种可能的实现方式中,所述数据源为医疗文本,所述医疗文本可以是医疗电子记录(Electronic Healthcare Record),电子化的个人健康记录,包括病历、心电图、医学影像等一系列具备保存备查价值的电子化记录。
信息查询成为很多场景中用户快速获取所需信息的渠道。例如在医疗领域中,可以基于人工智能模型从海量的电子病历中查询用户所需的病历信息,有助于为用户提供病历参考。
分组单元12,用于依据预设规则对所述SQL语句集合中的所述第一SQL语句分组。
其中,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同。
在本实施例中,所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
进一步地,分组单元12还用于解析所述SQL语句集合中各个所述第一SQL语句,确定每一所述第一SQL语句中的操作项、数据源和逻辑项;分组单元12还用于将操作项类型相同、数据源相同且逻辑项相同的所有第一SQL语句作为一组。
在本实施例中,操作项结构与第一SQL语句执行后的结果结构相对应,因此,操作项的结构相同也可以理解为第一SQL语句执行后的结果结构相同。
组合单元13,用于将同一分组中的所有第一SQL语句组合,生成第二SQL语句。
在一优选的实施例中,参阅图7所示,组合单元13可包括:第一生成模块131、处理模块132、第二生成模块133和组合模块134。
第一生成模块131,用于采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项。
在本实施例中,分割符为与SQL语法不冲突、且与数据源的内容不会存在特殊组合的符号,如:分割符可采用‘#_#’。
处理模块132,用于将同一分组中结构相同且所述操作函数中参数相同的操作函数,作为统一操作函数。
第二生成模块133,用于对于同一分组中结构相同且所述操作函数中字段元素不同的操作函数,依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项。
组合模块134,用于将所述标签组合项、所述统一操作函数、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
在另一优选的实施例中,组合单元13可包括:第一生成模块131、第二生成模块133和组合模块134。
第一生成模块131,用于采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
第二生成模块133,用于依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
组合模块134,用于将所述标签组合项、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
执行单元14,用于执行所述第二SQL语句,以获取任务结果。
进一步地,执行单元14可将所述第二SQL语句发送至计算引擎,所述计算引擎计算任务时间和资源空间,根据所述任务时间和所述资源空间向资源管理器申请分配资源,创建任务,将所述任务发送至相应的资源,执行任务操作,以获取所述任务结果。
在本实施例中,当第二SQL语句提交到SPARK计算引擎执行时,SPARK计算引擎需计算任务时间和资源空间,从而向集群资源管理器申请执行该任务所需的资源并分配、创建task、进行任务调度等操作,例如:8000条第一SQL语句,经组合后得到720条第二SQL语句,通过SPARK计算引擎执行第二SQL语句时,可节省(8000-720)×2s=14560s(大约4.04h)4.04h,由此可知,在执行SQL语句之前,通过将符合预设规则的第一SQL语句组合,再执经组合后的第二SQL语句,可有效的减低执行时间,提高执行效率。
在本实施例中,所述任务结果可包括标签组合项和结果项,所述标签组合包括至少两个所述标签,所述标签之间通过所述分割符串联,所述结果项包括至少一个操作结果组合项,所述操作结果组合项包括至少两个结果子项,所述结果子项之间通过所述分割符串联。
在另一实施例中,SQL语句处理装置1还可包括:
拆分单元,用于根据所述分隔符将所述任务结果拆分为至少两个子任务结果。
其中,所述子任务结果包括标签和结果子项。
在本实施例中,根据标签组合的顺序,将任务结果拆分为若干个子任务结果。
在本实施例中,SQL语句处理装置1可依据预设规则将SQL语句集合中操作项类型相同、数据源相同且逻辑项相同的第一SQL语句分组,以便于将同一分组中的所有第一SQL语句组合,生成组合后的第二SQL语句,减小SQL语句的任务量,通过执行第二SQL语句从而获取相应的任务结果,从而缩短执行任务的时间,达到提升执行效率的目的。
在优选的实施例中,SQL语句处理装置1还可包括:生成单元。
生成单元,用于获取所有配置数据,根据各个所述配置数据分别生成相应的第一SQL语句,得到由所有所述第一SQL语句构成的所述SQL语句集合。
其中,每一条所述配置数据均包括数据源、字段元素和事件规则数据。
在本实施例中,每一条配置数据都会生成一条第一SQL语句,若有多条配置数据,则会生成多条第一SQL语句。例如:对TABLE_A表的FIELD_1字段进行非空校验的配置数据为:【TABLE_A,FIELD_1,非空校验】;对TABLE_A表的FIELD_2字段进行非空校验的配置数据为:【TABLE_A,FIELD_2,非空校验】;其中,TABLE_A为数据源(表名),FIELD_1和FIELD_2均为字段元素,非空校验为事件规则数据。
实施例三
为实现上述目的,本发明还提供一种计算机设备2,该计算机设备2包括多个计算机设备2,实施例二的SQL语句处理装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备2至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器23、网络接口22以及SQL语句处理装置1(参考图8)。需要指出的是,图8仅示出了具有组件-的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例一的SQL语句处理方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器23在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器23通常用于控制计算机设备2的总体操作例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器23用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的SQL语句处理装置1等。
所述网络接口22可包括无线网络接口或有线网络接口,该网络接口22通常用于在所述计算机设备2与其他计算机设备2之间建立通信连接。例如,所述网络接口22用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述SQL语句处理装置1还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器23)所执行,以完成本发明。
实施例四
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器23执行时实现相应功能。本实施例的计算机可读存储介质用于存储SQL语句处理装置1,被处理器23执行时实现实施例一的SQL语句处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种SQL语句处理方法,其特征在于,包括:
获取SQL语句集合,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;
依据预设规则对所述SQL语句集合中的所述第一SQL语句分组,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同;
将同一分组中的所有第一SQL语句组合,生成第二SQL语句;
执行所述第二SQL语句,以获取任务结果。
2.根据权利要求1所述的SQL语句处理方法,其特征在于,所述操作项包括字段元素和至少一个操作函数;
所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
3.根据权利要求2所述的SQL语句处理方法,其特征在于,每一所述第一SQL语句关联一标签;
所述将同一分组中的所有第一SQL语句组合,生成第二SQL语句,包括:
采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
将所述标签组合项、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
4.根据权利要求2所述的SQL语句处理方法,其特征在于,每一所述第一SQL语句关联一标签;
所述将同一分组中的所有第一SQL语句组合,生成第二SQL语句,包括:
采用字符串连接函数将同一分组中各个所述第一SQL语句的所述标签串联,并通过分割符将各个所述标签分割,生成标签组合项;
将同一分组中结构相同且所述操作函数中参数相同的操作函数,作为统一操作函数;
对于同一分组中结构相同且所述操作函数中字段元素不同的操作函数,依据所述标签的串联的顺序,采用所述字符串连接函数将同一分组中各个所述第一SQL语句中结构相同的所述操作函数串联,并通过所述分割符将相同的所述操作函数分隔,生成操作组合项;
将所述标签组合项、所述统一操作函数、所有的所述操作组合项、同一分组中的第一SQL语句的数据源和逻辑项组合,生成所述第二SQL语句。
5.根据权利要求1所述的SQL语句处理方法,其特征在于,所述执行所述第二SQL语句,以获取任务结果,包括:
将所述第二SQL语句发送至计算引擎,所述计算引擎计算任务时间和资源空间,根据所述任务时间和所述资源空间向资源管理器申请分配资源,创建任务,将所述任务发送至相应的资源,执行任务操作,以获取所述任务结果。
6.根据权利要求3或4所述的SQL语句处理方法,其特征在于,所述任务结果包括标签组合项和结果项,所述标签组合包括至少两个所述标签,所述标签之间通过所述分割符串联,所述结果项包括至少一个操作结果组合项,所述操作结果组合项包括至少两个结果子项,所述结果子项之间通过所述分割符串联;
还包括:
根据所述分隔符将所述任务结果拆分为至少两个子任务结果;
所述子任务结果包括标签和结果子项。
7.一种SQL语句处理装置,其特征在于,包括:
获取单元,用于获取SQL语句集合,所述SQL语句集合包括至少两条第一SQL语句,所述第一SQL语句的数据结构包括:操作项、数据源和逻辑项;
分组单元,用于依据预设规则对所述SQL语句集合中的所述第一SQL语句分组,所述预设规则包括至少两个所述第一SQL语句中的操作项类型相同、数据源相同且逻辑项相同;
组合单元,用于将同一分组中的所有第一SQL语句组合,生成第二SQL语句;
执行单元,用于执行所述第二SQL语句,以获取任务结果。
8.根据权利要求7所述的SQL语句处理装置,其特征在于,所述操作项包括字段元素和至少一个操作函数;
所述操作项类型相同用于表示所述操作项的结构相同,且所述字段元素的类型相同。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN202111150426.1A 2021-09-29 2021-09-29 Sql语句处理方法、装置、计算机设备及存储介质 Pending CN113886419A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111150426.1A CN113886419A (zh) 2021-09-29 2021-09-29 Sql语句处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111150426.1A CN113886419A (zh) 2021-09-29 2021-09-29 Sql语句处理方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN113886419A true CN113886419A (zh) 2022-01-04

Family

ID=79007846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111150426.1A Pending CN113886419A (zh) 2021-09-29 2021-09-29 Sql语句处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113886419A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115271514A (zh) * 2022-08-11 2022-11-01 中国铁塔股份有限公司 通讯企业的监控方法、装置、电子设备及存储介质
WO2024093693A1 (zh) * 2022-11-01 2024-05-10 北京奥星贝斯科技有限公司 一种sql语句的优化执行方法、装置、电子设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115271514A (zh) * 2022-08-11 2022-11-01 中国铁塔股份有限公司 通讯企业的监控方法、装置、电子设备及存储介质
WO2024093693A1 (zh) * 2022-11-01 2024-05-10 北京奥星贝斯科技有限公司 一种sql语句的优化执行方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
CN112800095B (zh) 一种数据处理方法、装置、设备及存储介质
JP5298117B2 (ja) 分散コンピューティングにおけるデータマージング
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN113886419A (zh) Sql语句处理方法、装置、计算机设备及存储介质
CN110249312B (zh) 用于将数据集成作业从源框架转换到目标框架的方法和系统
CN103324713A (zh) 多级服务器中的数据处理方法、装置和数据处理系统
CN111310232A (zh) 数据脱敏方法及装置、电子设备、存储介质
CN113268500B (zh) 业务处理方法、装置及电子设备
CN112506486A (zh) 搜索系统建立方法、装置、电子设备及可读存储介质
CN110795697A (zh) 逻辑表达式的获取方法、装置、存储介质以及电子装置
CN112231417A (zh) 数据分类方法、装置、电子设备及存储介质
CN110059137A (zh) 事务分类系统
CN113886590A (zh) 数据汇总方法、装置、计算机设备及存储介质
CN114003818A (zh) 页面推荐方法、装置、服务器及存储介质
EP2815314B1 (en) Assessment of transaction-level interoperability over a tactical data link
CN116132448A (zh) 基于人工智能的数据分流方法及相关设备
US11157506B2 (en) Multiform persistence abstraction
CN113722324B (zh) 基于人工智能的报表生成方法、装置、电子设备及介质
CN116089446A (zh) 一种结构化查询语句的优化控制方法及装置
CN113868138A (zh) 测试数据的获取方法、系统、设备及存储介质
CN113901075A (zh) 生成sql语句的方法、装置、计算机设备及存储介质
CN110457323A (zh) 数据表的处理方法及装置
CN112948381B (zh) 数据处理方法、系统、计算机设备及可读存储介质
CN113064597B (zh) 一种冗余代码的识别方法、装置和设备
CN115460077B (zh) 配置信息的更新方法、装置、存储介质及电子装置

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