System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,特别是涉及一种跨源sql方法及装置。
技术介绍
1、在一些场景中,数据分布在不同的数据库中,例如,第一数据库中存储数据集中的一部分的数据,第二数据库中存储有数据集中的另一部分的数据。若用户需要对数据集中的所有数据进行查询统计,则需要分别对第一数据库和第二数据库执行查询统计操作,本文中称该过程为跨源sql(structured query language,结构化查询语言)。
2、相关技术中,跨源sql的过程往往为:在第一数据库中进行查询统计,得到查询统计结果(下文称第一查询结果),并在第二数据库中进行查询统计,得到查询统计结果(下文称第二查询结果),再对第一查询结果和第二查询结果进行整合,得到最终的查询结果。
3、但是,由于不同数据库的规范不同,因此即使对第一数据库和第二数据库进行相同的查询统计操作,得到的查询结果的数据类型也可能不同,进而导致在对第一查询结果和第二查询结果进行整合之前,需要将第一查询结果和第二查询结果转换为相同的数据类型,该转化过程往往需要较大的计算量,进而导致跨源sql效率较低。
技术实现思路
1、本申请实施例的目的在于提供一种跨源sql方法及装置,以实现提高跨源sql的效率。具体技术方案如下:
2、第一方面,本申请实施例提供了一种跨源sql方法,所述方法包括:
3、响应于针对多个数据库的第一sql操作,按照sql操作与数据类型的对应关系,确定所述第一sql操作对应的目标数据类型;
4
5、执行所述第二sql操作,得到各所述数据库各自的查询结果;
6、整合各所述数据库各自的查询结果,得到所述第一sql操作的查询结果。
7、在一种可能的实施方式中,所述按照sql操作与数据类型的对应关系,确定所述第一sql操作对应的目标数据类型,包括:
8、确定所述第一sql操作所针对的数据,并将所确定的数据的数据类型作为第一数据类型;
9、确定用于实现所述第一sql操作的基本函数,作为目标基本函数;并确定在实现所述第一sql操作过程中各所述目标基本函数的调用顺序,作为目标调用顺序;
10、按照预先针对所述当前基本函数设置的输入数据类型与输出数据类型之间的对应关系,确定第二数据类型所对应的数据类型,作为第三数据类型,其中,所述当前基本函数初始时为所述目标调用顺序中的第一个目标基本函数,所述第二数据类型初始时为所述第一数据类型;
11、以所述目标调用顺序中位于所述当前基本函数下一位的目标基本函数作为新的当前基本函数、第三数据类型作为新的第二数据类型,返回执行所述按照预先针对所述当前基本函数设置的输入数据类型与输出数据类型之间的对应关系,确定第二数据类型所对应的数据类型,作为第三数据类型的步骤;
12、直至遍历所有所述目标基本函数,以最新的第三数据类型作为目标数据类型。
13、在一种可能的实施方式中,所述方法还包括:
14、确定无法通过其他函数实现的函数,作为基本函数。
15、在一种可能的实施方式中,所述第一sql操作为平均值计算;
16、所述确定用于实现所述第一sql操作的基本函数,作为目标基本函数,包括:
17、确定求和函数、计数函数以及求商函数,作为目标基本函数;
18、所述确定在实现所述第一sql操作过程中各所述目标基本函数的调用顺序,作为目标调用顺序,包括:
19、依次确定所述求和函数、所述计数函数以及所述求商函数的顺位为第一顺位至第三顺位。
20、在一种可能的实施方式中,所述第一sql操作为的总体协方差计算;
21、所述确定用于实现所述第一sql操作的基本函数,作为目标基本函数,包括:
22、确定第一求和函数、第二求和函数、第三求和函数、求积函数、求差函数、第一计数函数、第一求商函数、第二计数函数以及第二求商函数,作为目标基本函数;
23、所述确定在实现所述第一sql操作过程中各所述目标基本函数的调用顺序,作为目标调用顺序,包括:
24、依次确定所述第一求和函数、所述第二求和函数、所述第三求和函数、所述求积函数、所述求差函数、所述第一计数函数、所述第一求商函数、所述第二计数函数以及所述第二求商函数的顺位为第一顺位至第九顺位。
25、第二方面,本申请实施例提供了一种跨源sql装置,所述装置包括:
26、响应模块,用于响应于针对多个数据库的第一sql操作,按照sql操作与数据类型的对应关系,确定所述第一sql操作对应的目标数据类型;
27、增加模块,用于在所述第一sql操作的基础上增加将各所述数据库的查询结果的数据类型转化为所述目标数据类型的步骤,得到第二sql操作;
28、执行模块,用于执行所述第二sql操作,得到各所述数据库各自的查询结果;
29、整合模块,用于整合各所述数据库各自的查询结果,得到所述第一sql操作的查询结果。
30、在一种可能的实施方式中,所述响应模块,包括:
31、第一响应子模块,用于确定所述第一sql操作所针对的数据,并将所确定的数据的数据类型作为第一数据类型;
32、第二响应子模块,用于确定用于实现所述第一sql操作的基本函数,作为目标基本函数;并确定在实现所述第一sql操作过程中各所述目标基本函数的调用顺序,作为目标调用顺序;
33、第三响应子模块,用于按照预先针对所述当前基本函数设置的输入数据类型与输出数据类型之间的对应关系,确定第二数据类型所对应的数据类型,作为第三数据类型,其中,所述当前基本函数初始时为所述目标调用顺序中的第一个目标基本函数,所述第二数据类型初始时为所述第一数据类型;
34、第四响应子模块,用于以所述目标调用顺序中位于所述当前基本函数下一位的目标基本函数作为新的当前基本函数、第三数据类型作为新的第二数据类型,返回执行所述按照预先针对所述当前基本函数设置的输入数据类型与输出数据类型之间的对应关系,确定第二数据类型所对应的数据类型,作为第三数据类型的步骤;
35、第五响应子模块,用于直至遍历所有所述目标基本函数,以最新的第三数据类型作为目标数据类型。
36、在一种可能的实施方式中,所述装置还包括:
37、确定模块,用于确定无法通过其他函数实现的函数,作为基本函数;
38、所述第一sql操作为平均值计算;
39、所述第二响应子模块,包括:
40、第一响应单元,用于确定求和函数、计数函数以及求商函数,作为目标基本函数;
41、所述第二响应子模块,包括:
42、第二响应单元,用于依次确定所述求和函数、所述计数函数以及所述求商本文档来自技高网...
【技术保护点】
1.一种跨源SQL方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述按照SQL操作与数据类型的对应关系,确定所述第一SQL操作对应的目标数据类型,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述第一SQL操作为平均值计算;
5.根据权利要求2所述的方法,其特征在于,所述第一SQL操作为的总体协方差计算;
6.一种跨源SQL装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述响应模块,包括:
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法。
【技术特征摘要】
1.一种跨源sql方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述按照sql操作与数据类型的对应关系,确定所述第一sql操作对应的目标数据类型,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述第一sql操作为平均值计算;
5.根据权利要求2所述的方法,其特征在于,所述第一sql操作为的总体...
【专利技术属性】
技术研发人员:段雄,徐福生,陈国栋,赵世范,
申请(专利权)人:杭州海康威视系统技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。