一种SQL查询加速的方法及装置与流程

文档序号:37262420发布日期:2024-03-12 20:42阅读:13来源:国知局
一种SQL查询加速的方法及装置与流程

本技术涉及数据处理,特别涉及一种sql查询加速的方法及装置。


背景技术:

1、麒麟kylin是一个解决tb级别数据的数据分析模型,用于实现多维在线分析处理molap(multidimensional onine analytical processing)。kylin基于多维数据集,使用多维数组存储多维数据,需要大量的存储空间。多维数据在存储过程中形成cube结构,被存储在hbase中。kyin通过预计算来预先存储所有需要查询的结果,用户查询时不再扫描原始数据,可以做到秒或亚秒级查询,使大数据分析快速而简洁。

2、现有技术中,下压查询sql(结构化查询语言,structured query language)或查询时间较长的sql称为慢sql。针对kylin模型的慢sql加速问题,需要开发人员根据每张仪表板中查询的不同业务场景,去取出拼接的不同结构化查询语言sql(structured querylanguage)语句。其操作步骤固定、繁琐、耗时且重复。并且,往往要求开发人员对kylin的优化过程很熟悉,这对开发人员有一定的技术门槛要求。因此,如何简单、高效、自动化地加速kylin模型的sql查询过程,成为了一个亟需解决的问题。


技术实现思路

1、基于上述问题,本技术提供了一种sql查询加速的方法及装置,以简单、高效、自动化地加速kylin模型的sql查询过程。

2、本技术公开了一种sql查询加速的方法,所述方法包括:

3、获取目标sql语句;

4、当存在模型与所述目标sql语句匹配时,针对所述目标sql语句获取优化建议;所述优化建议包括加速索引信息和所述模型的模型信息;

5、根据所述加速索引信息生成加速索引,并将所述模型信息保存至本地缓存;

6、根据所述加速索引,刷新本地缓存中的所述模型信息,以利用所述加速索引实现所述目标sql语句的查询加速。

7、可选的,所述获取目标sql语句,包括:

8、从初始sql语句中选择慢sql语句;

9、对所述慢sql语句进行非空校验、条数限制校验和非kylin数据源校验;

10、将通过校验的慢sql语句按照kylin加速要求进行拼接;

11、调用kylin的sql格式化接口,对拼接后的慢sql语句进行格式化处理,得到所述目标sql语句。

12、可选的,所述对所述慢sql语句进行非空校验、条数限制校验和非kylin数据源校验,包括:

13、当所述慢sql语句不为空时,所述慢sql语句通过所述非空校验;

14、当所述慢sql语句少于预设条数时,所述慢sql语句通过所述条数限制校验;

15、当所述慢sql语句的数据源为kylin时,所述慢sql语句通过所述非kylin数据源校验。

16、可选的,所述根据所述加速索引信息生成加速索引,包括:

17、调用kylin的加速索引接口,生成所述加速索引;

18、当调用所述加速索引接口失败时,将所述目标sql语句的状态改为加速失败,停止对所述目标sql语句进行加速。

19、可选的,所述刷新本地缓存中的所述模型信息,包括:

20、调用kylin的片段接口,更新所述模型信息;

21、当更新成功时,将所述目标sql语句的状态改为加速成功;

22、当更新失败时,将所述目标sql语句的状态改为加速失败。

23、可选的,在获取目标sql语句后,所述方法还包括:

24、调用kylin的加速模型接口,判断是否存在模型与所述目标sql语句匹配;

25、当不存在所述模型与所述目标sql语句匹配时,则提示存在未构建kylin模型的数据表,请求对所述数据表生成kylin模型。

26、可选的,在针对所述目标sql语句获取优化建议后,所述方法还包括:

27、判断所述优化建议中的所述加速索引信息是否为空;

28、若所述加速索引信息为空,则将所述目标sql语句的状态改为已存在最优索引,停止对所述目标sql语句进行加速。

29、可选的,在实现所述目标sql语句的查询加速后,所述方法还包括:

30、展示所述目标sql语句加速后前的查询时间和加速后的查询时间;

31、将所述加速后前的查询时间与所述加速后的查询时间的差值,作为查询提升时间,并展示。

32、基于上述一种sql查询加速的方法,本技术还公开了一种sql查询加速的装置,包括:目标语句获取单元、优化建议获取单元、加速索引生成单元和加速单元;

33、所述目标语句获取单元,用于获取目标sql语句;

34、所述优化建议获取单元,用于当存在模型与所述目标sql语句匹配时,针对所述目标sql语句获取优化建议;所述优化建议包括加速索引信息和所述模型的模型信息;

35、所述加速索引生成单元,用于根据所述加速索引信息生成加速索引,并将所述模型信息保存至本地缓存;

36、所述加速单元,用于根据所述加速索引,刷新本地缓存中的所述模型信息,以利用所述加速索引实现所述目标sql语句的查询加速。

37、可选的,所述目标语句获取单元,包括:

38、慢sql语句获取子单元,用于从初始sql语句中选择慢sql语句;

39、校验子单元,用于对所述慢sql语句进行非空校验、条数限制校验和非kylin数据源校验;

40、拼接子单元,用于将通过校验的慢sql语句按照kylin加速要求进行拼接;

41、格式化子单元,用于调用kylin的sql格式化接口,对拼接后的慢sql语句进行格式化处理,得到所述目标sql语句。

42、可选的,所述校验子单元,包括:

43、非空校验子单元,用于当所述慢sql语句不为空时,所述慢sql语句通过所述非空校验;

44、条数校验子单元,用于当所述慢sql语句少于预设条数时,所述慢sql语句通过所述条数限制校验;

45、数据源校验子单元,用于当所述慢sql语句的数据源为kylin时,所述慢sql语句通过所述非kylin数据源校验。

46、可选的,所述加速索引生成单元,包括:

47、加速索引生成子单元,用于调用kylin的加速索引接口,生成所述加速索引;

48、接口调用失败子单元,用于当调用所述加速索引接口失败时,将所述目标sql语句的状态改为加速失败,停止对所述目标sql语句进行加速。

49、可选的,所述加速单元,包括:

50、更新子单元,用于调用kylin的片段接口,更新所述模型信息;

51、更新成功子单元,用于当更新成功时,将所述目标sql语句的状态改为加速成功;

52、更新失败子单元,用于当更新失败时,将所述目标sql语句的状态改为加速失败。

53、可选的,在获取目标sql语句后,所述装置还包括:

54、模型判断单元,用于调用kylin的加速模型接口,判断是否存在模型与所述目标sql语句匹配;

55、模型请求单元,用于当不存在所述模型与所述目标sql语句匹配时,则提示存在未构建kylin模型的数据表,请求对所述数据表生成kylin模型。

56、可选的,在针对所述目标sql语句获取优化建议后,所述装置还包括:

57、优化建议判断单元,用于判断所述优化建议中的所述加速索引信息是否为空;

58、已有索引单元,用于若所述加速索引信息为空,则将所述目标sql语句的状态改为已存在最优索引,停止对所述目标sql语句进行加速。

59、可选的,在实现所述目标sql语句的查询加速后,所述装置还包括:

60、查询时间展示单元,用于展示所述目标sql语句加速后前的查询时间和加速后的查询时间;

61、提升时间展示单元,用于将所述加速后前的查询时间与所述加速后的查询时间的差值,作为查询提升时间,并展示。

62、本技术公开了一种sql查询加速的方法及装置。先获取目标sql语句,当存在模型与目标sql语句匹配时,针对目标sql语句获取包括加速索引信息和该模型的模型信息的优化建议。根据加速索引信息生成加速索引,并将模型信息保存至本地缓存,根据加速索引刷新模型信息,以利用加速索引实现目标sql语句的查询加速。简化了慢sql的处理流程,将固定、繁琐、耗时且重复的处理流程自动化,节省人力,提高了工作效率。降低了技术门槛,令对优化过程不熟悉的开发人员也能通过本技术的方法加速sql查询过程,从而简单、高效、自动化地加速sql查询过程。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1