System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于数据湖的查询优化方法、装置及存储介质制造方法及图纸_技高网

一种基于数据湖的查询优化方法、装置及存储介质制造方法及图纸

技术编号:40610993 阅读:4 留言:0更新日期:2024-03-12 22:19
本发明专利技术涉及数据管理和查询优化领域,提供了一种基于数据湖的查询优化方法、装置及存储介质。本发明专利技术的目的在于解决数据湖存算分离架构,需要一种技术来减少网络传输带宽消耗,提升查询速度的技术问题。主要方案包括在数据湖中进行数据变化检测,根据数据变化和数据的冷热状态进行数据缓存管理,在查询计划优化阶段利用数据变化和数据缓存的信息,对已经缓存的数据,可以直接从缓存中获取,对于变化的未缓存的数据,从数据湖中查询;对查询结果进行整合,如果查询结果来自缓存,可以直接返回给用户;如果查询结果来自数据湖,需要将其与缓存中的数据合并成结果集返回给查询器,并根据数据的时间戳更新缓存中的最新数据,保证查询结果的准确性。

【技术实现步骤摘要】

本专利技术涉及数据管理和查询优化领域,提供了一种基于数据湖的查询优化方法、装置及存储介质


技术介绍

1、数据查询优化是提高数据库查询性能的关键任务之一。为了实现高效的数据查询,现有的方法主要从以下几个方面进行优化。首先,查询重写与优化是一项重要工作。通过分析查询语句,可以对其进行重写和优化,以改变查询的执行方式。这包括将复杂查询转化为等价但更高效的查询形式,或者通过子查询展开、连接消除等技术简化查询。通过优化查询语句,减少不必要的计算和数据访问操作,从而提高查询性能。其次,索引设计与选择对查询优化至关重要。通过合理地设计和选择索引,可以加速查询的过滤、排序和连接操作。索引设计涉及确定哪些列需要创建,而索引选择则包括选择合适的索引类型(如b树索引、哈希索引等)。通过建立适当的索引,可以大大减少查询过程中需要扫描的数据量,提高查询速度。另外,统计信息的收集和更新对于查询优化也十分重要。统计信息包括表的大小、列的基数、数据分布等属性。数据库管理系统会根据这些统计信息制定查询的执行计划。因此,准确地收集和更新统计信息对于保持查询性能的稳定是必要的。预编译则是在查询执行之前,先将查询语句解析、编译和优化,并生成可复用的执行计划,以减少重复的解析和优化过程。

2、现有的查询优化技术已经涵盖了查询计划、索引设计、数据分区和分片、数据预处理和聚合等方面,但仍存在一些挑战,包括在大规模数据集下的查询响应速度、对频繁变化的数据的准确查询等。以及数据湖是存储数据的,与计算端分离,查询效率会受到网络带宽的影响。而且在数据湖中,多种计算同时访问数据,竞争带宽,对数据访问性能和吞吐有高需求。常驻集群希望完成更多计算,弹性伸缩集群希望尽快完成作业释放节点节省成本,交互式分析业务希望快速稳定返回,gpu训练程序希望实现本地化高吞吐。因此,本提案在现有技术的基础上采用数据湖存储技术,实现判别区分数据变化和数据缓存的步骤,以及相应的查询计划优化和查询结果整合策略。缓存设备部署在数据湖架构的计算侧,通过缓存加速数据访问,提升计算效率,减少弹性计算资源使用和成本支出。缓存可以将刚刚写出去的数据和重复访问的数据缓存在本地设备上,从而实现快速访问和高吞吐。对用户来说,缓存加速是透明的,配置后无需额外的感知和作业修改。


技术实现思路

1、本专利技术的目的在于解决数据湖是存算分离架构,需要一种技术来减少网络传输带宽消耗,提升查询速度的技术问题。

2、为了实现上述目的,本专利技术采用以下技术手段:

3、本专利技术提供了一种基于数据湖的查询优化方法,包括以下步骤:

4、步骤1:在数据湖中进行数据变化检测,数据湖作为一个中心化的数据存储和管理系统,通常包含多种类型和格式的数据,通过实时监控数据湖中的数据更新、插入和删除等操作,及时感知数据的变化;

5、步骤2:根据数据变化和数据的冷热状态进行数据缓存管理,对于频繁变化和访问较高的数据,采取数据本地缓存策略,根据数据的访问频率、重要性参数,对部分数据进行缓存,并将其存储在高速缓存中,避免网络io对数据湖的频繁访问,加快查询响应速度;

6、步骤3:在查询计划优化阶段利用数据变化和数据缓存的信息,对已经缓存的数据,可以直接从缓存中获取,对于变化的未缓存的数据,从数据湖中查询;

7、步骤4:对查询结果进行整合,如果查询结果来自缓存,可以直接返回给用户;如果查询结果来自数据湖,需要将其与缓存中的数据合并成结果集返回给查询器,并根据数据的时间戳更新缓存中的最新数据,保证查询结果的准确性。

8、上述技术方案中,步骤2具体包括:

9、步骤2.1:在数据查询的过程中设计多种数据预取策略:根据数据的访问模式和频率,选择使用合适的数据预取策略,以添加独立标记字段的方法,将满足数据预取策略的原始数据标记成预加载数据,数据预取策略具体包括:

10、基于频率:根据过去一段时间的查询频率进行统计,根据标记预先加载经常被访问的数据;

11、基于时间窗口:根据最近的查询时间窗口,根据标记预先加载在该时间段内经常被访问的数据;

12、基于关联性:根据数据之间的关联性,根据标记预先加载与经常访问的数据相关的数据,以提高查询效率;

13、步骤2.2:将标记字段标记为预加载的数据添加到缓存中;

14、步骤2.3:设计缓存更新策略来保持缓存的有效性和性能,根据业务需求和数据特性,选择以下策略之一:

15、手动触发更新:通过定时任务、事件驱动方式实现定期或根据需要手动触发缓存的更新,以保持数据的新鲜性;

16、自动更新:使用事件监听、消息队列机制捕获数据的变更,并立即或延迟更新缓存,即在数据发生变化时,自动更新缓存。

17、上述技术方案中,步骤2.2包括:

18、步骤2.2.1:检查加载状态:在更新缓存之前,检查预加载数据的加载状态,确保仅加载还未加载的数据,如果数据已经在缓存中,无需重复加载;

19、步骤2.2.2:从持久存储加载数据:如果发现数据尚未加载到缓存中,从持久存储介质读取数据;

20、步骤2.2.3:将数据添加到缓存:将加载的数据添加到缓存数据结构中,根据具体的数据结构选择合适的插入方法,保证数据可以高效地访问和更新,其中缓存的数据结构使用双向链表和哈希表的组合实现,将最近访问的数据放在链表头部,当缓存满时淘汰链表尾部的数据,在更新缓存时通过哈希的方法以0(1)的时间复杂度进行快速查找是否存在缓存中,再通过修改链表指针的方式插入数据来更新缓存。

21、本专利技术还提供了一种基于数据湖的查询优化装置,包括以下模块:

22、变化检测模块:在数据湖中进行数据变化检测,数据湖作为一个中心化的数据存储和管理系统,通常包含多种类型和格式的数据,通过实时监控数据湖中的数据更新、插入和删除等操作,及时感知数据的变化;

23、数据缓存管理模块:根据数据变化和数据的冷热状态进行数据缓存管理,对于频繁变化和访问较高的数据,采取数据本地缓存策略,根据数据的访问频率、重要性参数,对部分数据进行缓存,并将其存储在高速缓存中,避免网络i0对数据湖的频繁访问,加快查询响应速度;

24、查询模块:在查询计划优化阶段利用数据变化和数据缓存的信息,对已经缓存的数据,可以直接从缓存中获取,对于变化的未缓存的数据,从数据湖中查询;

25、整合模块:对查询结果进行整合,如果查询结果来自缓存,可以直接返回给用户;如果查询结果来自数据湖,需要将其与缓存中的数据合并成结果集返回给查询器,并根据数据的时间戳更新缓存中的最新数据,保证查询结果的准确性。

26、上述装置中,数据缓存管理模块具体实现包括以下步骤:

27、步骤2.1:在数据查询的过程中设计多种数据预取策略:根据数据的访问模式和频率,选择使用合适的数据预取策略,以添加独立标记字段的方法,将满足数据预取策略的原始数据标记成预加载数据,数据预本文档来自技高网...

【技术保护点】

1.一种基于数据湖的查询优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于数据湖的查询优化方法,其特征在于,步骤2具体包括:

3.根据权利要求1所述的一种基于数据湖的查询优化方法,其特征在于,步骤2.2包括:

4.一种基于数据湖的查询优化装置,其特征在于,包括以下模块:

5.根据权利要求4所述的一种基于数据湖的查询优化装置,其特征在于,数据缓存管理模块具体实现包括以下步骤:

6.根据权利要求5所述的一种基于数据湖的查询优化装置,其特征在于,步骤2.2包括:

7.一种存储介质,其特征在于,处理器在执行存储介质存储的程序时,实现如权利要求1-4任一所述的一种基于数据湖的查询优化方法。

【技术特征摘要】

1.一种基于数据湖的查询优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于数据湖的查询优化方法,其特征在于,步骤2具体包括:

3.根据权利要求1所述的一种基于数据湖的查询优化方法,其特征在于,步骤2.2包括:

4.一种基于数据湖的查询优化装置,其特征在于,包括以下模块:

...

【专利技术属性】
技术研发人员:刘译璟苏萌江之源程佳姜楠巨旭东寇蕾蕾
申请(专利权)人:北京百分点科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1