一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据查询方法、装置、电子设备及存储介质与流程

2022-12-09 12:33:03 来源:中国专利 TAG:
1.本发明实施例涉及计算机
技术领域
:,尤其涉及一种数据查询方法、装置、电子设备及存储介质。
背景技术
::2.随着数字化浪潮的兴起,越来越多企业或者组织需要构建数据湖用于海量数据的存储,然而如何在数据湖上实现高效的数据分析则成为一个困扰工业界的难题。3.由于数据湖通常采用廉价的对象存储或者分布式文件系统构建,并且数据湖分析属于典型的存储计算分离,所以数据湖io(input/output,输入/输出)的延迟一般都比较高,尤其是在数据获取阶段延迟很高,因此无法实现实时数据湖分析。技术实现要素:4.鉴于此,为解决现有技术中的数据湖io的延迟一般都比较高,尤其是在数据获取阶段延迟很高,因此无法实现实时数据湖分析的技术问题,本发明实施例提供一种数据查询方法、装置、电子设备及存储介质。5.第一方面,本发明实施例提供一种数据查询方法,所述方法包括:6.获取查询请求,解析所述查询请求中的查询元数据,将所述查询元数据与元数据集进行匹配;7.根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划;8.执行所述目标查询计划,以查询与所述查询请求对应的数据。9.在一个可能的实施方式中,所述根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划,包括:10.如果所述匹配结果为全部所述查询元数据与所述元数据集中的第一元数据匹配,则查找所述第一元数据对应的物化视图;11.确定所述目标查询计划为从所述物化视图中查询与所述查询请求对应的数据;12.所述执行所述目标查询计划,以查询与所述查询请求对应的数据,包括:13.从所述物化视图中查询与所述查询请求对应的数据。14.在一个可能的实施方式中,所述根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划,包括:15.如果所述匹配结果为所述查询元数据中的部分查询元数据与所述元数据集中的第二元数据匹配,则查找所述第二元数据对应的物化视图;16.对所述查询请求进行处理,得到第一查询请求以及第二查询请求;17.确定所述目标查询计划为从所述物化视图中查询与所述第一查询请求对应的第一数据,以及从缓存中查询与第二查询请求对应的第二数据;18.所述执行所述目标查询计划,以查询与所述查询请求对应的数据,包括:19.从所述物化视图中查询与所述第一查询请求对应的第一数据;20.将所述第二查询请求转变为析取范式,从所述缓存中查找与所述析取范式对应的目标缓存块;21.从所述目标缓存块中查询与所述第二查询请求对应的第二数据;22.确定所述第一数据和所述第二数据的并集为与所述查询请求对应的数据。23.在一个可能的实施方式中,所述根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划,包括:24.如果所述匹配结果为全部所述查询元数据与所述元数据集中的任一元数据均不匹配,则确定所述目标查询计划为从缓存中查询与查询请求对应的数据;25.所述执行所述目标查询计划,以查询与所述查询请求对应的数据,包括:26.将所述查询请求转变为析取范式,从缓存中查找与所述析取范式对应的目标缓存块;27.从所述目标缓存块中查询与所述查询请求对应的数据。28.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述确定所述目标查询计划为从所述物化视图中查询与所述查询请求对应的数据,包括:29.根据各物化视图的统计信息,计算各物化视图的查询变换代价;30.根据所述查询变换代价,从各物化视图中确定目标物化视图;31.确定所述目标查询计划为从所述目标物化视图中查询与所述查询请求对应的数据;32.所述从所述物化视图中查询与所述查询请求对应的数据,包括:33.从所述目标物化视图中查询与所述查询请求对应的数据。34.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述确定所述目标查询计划为从所述物化视图中查询与所述第一查询请求对应的第一数据,包括:35.根据各物化视图的统计信息,计算各物化视图的查询变换代价;36.根据所述查询变换代价,从各物化视图中确定目标物化视图;37.所述确定所述目标查询计划为从所述目标物化视图中查询与所述第一查询请求对应的第一数据;38.所述从所述物化视图中查询与所述第一查询请求对应的第一数据,包括:39.从所述目标物化视图中查询与所述第一查询请求对应的第一数据。40.在一个可能的实施方式中,所述统计信息至少包括下述之一:每个列的最大值、最小值,行平均值和行数,列值的直方图;41.所述根据各物化视图的统计信息,计算各物化视图的查询变换代价,包括:42.获取所述统计信息的加权和;43.确定所述加权和为各物化视图的查询变换代价。44.在一个可能的实施方式中,所述方法还包括:45.接收物化视图生成请求,所述物化视图生成请求携带原始数据标识;46.从所述物化视图生成请求中解析出所述原始数据标识,获取所述原始数据标识对应的原始数据;47.根据所述原始数据,构建物化视图,并将物化视图对应的原始数据标识作为元数据存储在所述元数据集中;48.获取所述物化视图对应的原始数据增量;49.根据所述增量对所述物化视图进行更新。50.在一个可能的实施方式中,所述方法还包括:51.获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价;52.根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰所述被淘汰的缓存块。53.第二方面,本发明实施例提供一种数据查询装置,所述装置包括:54.匹配模块,用于获取查询请求,解析所述查询请求中的查询元数据,将所述查询元数据与元数据集进行匹配;55.确定模块,用于根据所述查询元数据与元数据集的匹配结果,确定目标查询计划;56.执行模块,用于执行所述目标查询计划,以查询与所述查询请求对应的数据。57.在一个可能的实施方式中,所述确定模块,包括:58.第一查找单元,用于如果所述匹配结果为全部所述查询元数据与所述元数据集中的第一元数据匹配,则查找所述第一元数据对应的物化视图;59.第一确定单元,用于确定所述目标查询计划为从所述物化视图中查询与所述查询请求对应的数据;60.所述执行模块,包括:61.第一查询单元,用于从所述物化视图中查询与所述查询请求对应的数据。62.在一个可能的实施方式中,所述确定模块,包括:63.第二查找单元,用于如果所述匹配结果为所述查询元数据中的部分查询元数据与所述元数据集中的第二元数据匹配,则查找所述第二元数据对应的物化视图;64.处理单元,用于对所述查询请求进行处理,得到第一查询请求以及第二查询请求;65.第二确定单元,用于确定所述目标查询计划为从所述物化视图中查询与所述第一查询请求对应的第一数据,以及从缓存中查询与第二查询请求对应的第二数据;66.所述执行模块,包括:67.第二查询单元,用于从所述物化视图中查询与所述第一查询请求对应的第一数据;68.第三查找单元,用于将所述第二查询请求转变为析取范式,从所述缓存中查找与所述析取范式对应的目标缓存块;69.第三查询单元,用于从所述目标缓存块中查询与第二查询请求对应的第二数据;70.第三确定单元,用于确定所述第一数据和所述第二数据的并集为与所述查询请求对应的数据。71.在一个可能的实施方式中,所述确定模块,包括:72.第四确定单元,用于如果所述匹配结果为全部所述查询元数据与所述元数据集中的任一元数据均不匹配,则确定所述目标查询计划为从缓存中查询与查询请求对应的数据;73.所述执行模块,包括:74.第四查找单元,用于将所述查询请求转变为析取范式,从缓存中查找与所述析取范式对应的目标缓存块;75.第四查询单元,用于从所述目标缓存块中查询与所述查询请求对应的数据。76.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述第一确定单元,包括:77.第一计算子单元,用于根据各物化视图的统计信息,计算各物化视图的查询变换代价;78.第一确定子单元,用于根据所述查询变换代价,从各物化视图中确定目标物化视图;79.第一查询子单元,用于确定所述目标查询计划为从所述目标物化视图中查询与所述查询请求对应的数据;80.所述第一查询单元,具体用于:81.从所述目标物化视图中查询与所述查询请求对应的数据。82.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述第二确定单元,包括:83.第二计算子单元,用于根据各物化视图的统计信息,计算各物化视图的查询变换代价;84.第二确定子单元,用于根据所述查询变换代价,从各物化视图中确定目标物化视图;85.第二查询子单元,用于所述确定所述目标查询计划为从所述目标物化视图中查询与所述第一查询请求对应的第一数据;86.所述第二查询单元,具体用于:87.从所述目标物化视图中查询与所述第一查询请求对应的第一数据。88.在一个可能的实施方式中,所述统计信息至少包括下述之一:每个列的最大值、最小值,行平均值和行数,列值的直方图,所述第一计算子单元或第二计算子单元,具体用于:89.获取所述统计信息的加权和;90.确定所述加权和为各物化视图的查询变换代价。91.在一个可能的实施方式中,所述装置,还包括:92.接收模块,用于接收物化视图生成请求,所述物化视图生成请求携带原始数据标识;93.解析模块,用于从所述物化视图生成请求中解析出所述原始数据标识,获取所述原始数据标识对应的原始数据;94.构建模块,用于根据所述原始数据,构建物化视图,并将物化视图对应的原始数据标识作为元数据存储在所述元数据集中;95.增量模块,用于获取所述物化视图对应的原始数据增量;96.更新模块,用于根据所述增量对所述物化视图进行更新。97.在一个可能的实施方式中,所述装置,还包括:98.获取模块,用于获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价;99.淘汰模块,用于根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰所述被淘汰的缓存块。100.第三方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据查询程序,以实现第一方面中任一项所述的数据查询方法。101.第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一项所述的数据查询方法。102.本发明实施例提供的技术方案,通过获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配,然后根据查询元数据与元数据集的匹配结果,确定目标查询计划,最后执行目标查询计划,以查询与查询请求对应的数据。由于是根据元数据的匹配情况确定出目标查询计划,然后执行该目标查询计划的,确定与执行上述目标查询计划的是同一执行主体,存储计算不再分离,因此大大降低了数据湖数据获取的延迟,进一步提高数据湖分析的性能,实现实时数据湖分析。附图说明103.图1为本发明实施例提供的数据查询系统的架构示意图;104.图2为本发明实施例提供的一种数据查询方法的实施例流程图;105.图3为本发明实施例提供的另一种数据查询方法的实施例流程图;106.图4为本发明实施例提供的又一种数据查询方法的实施例流程图;107.图5为本发明实施例提供的再一种数据查询方法的实施例流程图;108.图6为本发明实施例提供的一种物化视图构建及更新方法的实施例流程图;109.图7为本发明实施例提供的一种缓存块淘汰方法的实施例流程图;110.图8为本发明实施例提供的还一种数据查询方法的实施例流程图;111.图9为本发明实施例提供的一种数据查询装置的实施例框图;112.图10为本发明实施例提供的一种电子设备的结构示意图。具体实施方式113.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。114.以下首先对本发明实施例提供的数据查询方法的系统架构做出示例性说明:115.参见图1,为本发明实施例提供的数据查询系统的架构示意图。如图1所示,本发明实施例提出一种结合实时olap(on-lineanalyticalprocessing,联机分析处理)数据库和数据湖的架构。116.starrocks是新一代极速全场景mpp(massivelyparallelprocessing,大规模并行处理系统)数据库,也是olap数据库的一种,本发明实施例基于starrocks系统来对数据湖中的数据进行查询分析,可完整利用starrocks在olap数据库的优化技术,包括collocatedjoin,bitmapindex等。117.starrocks主要分为fe(frontend,前端节点)和be(backend,后端节点)两个组件。其中,fe负责管理元数据,进行查询规划,以及查询优化和调度等工作,即图1中的统一表视图中所示的协调节点,fe包括查询规划器(planner)和元数据引擎(metadata)。be负责查询的执行和数据的存储,即图1中的计算集群和数据湖部分。118.数据湖datalake是一个集中式存储库,允许用户以任意规模存储所有结构化和非结构化数据。用户可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析,如从控制面板和可视化到大数据处理、数据分析和机器学习。数据湖包括但不限于hive、iceberg、hudi、deltalake。119.下面结合附图以具体实施例对本发明提供的数据查询方法做进一步的解释说明,实施例并不构成对本发明实施例的限定。120.参见图2,为本发明实施例提供的一种数据查询方法的实施例流程图。如图2所示,该方法可包括以下步骤:121.步骤201、获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。122.在本发明实施例中,获取数据查询请求,可解析该查询请求中的查询元数据,然后将查询元数据与元数据集进行匹配。123.基于图1所示的系统架构及上述对图1的相关描述,starrocks获取数据查询请求后,fe可解析查询请求中的查询元数据,然后将该查询元数据与fe存储的元数据集中的每一元数据进行匹配。124.步骤202、根据查询元数据与元数据集的匹配结果,确定目标查询计划。125.基于图1所示的系统架构及上述对图1的相关描述,fe可使用planner管理工具根据上述匹配结果,进行查询调度和优化,确定目标查询计划。126.至于具体是如何根据查询元数据与元数据集的匹配结果来确定目标查询计划的,下文通过图3-5和图8进行详细描述,这里暂不详述。127.步骤203、执行目标查询计划,以查询与查询请求对应的数据。128.基于图1所示的系统架构及上述对图1的相关描述,be可执行上述fe确定的目标查询计划,以查询与查询请求对应的数据。129.至此,完成图2所示流程的相关描述。130.通过图2所示流程可以看出,本发明实施例提供的技术方案,通过获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配,然后根据查询元数据与元数据集的匹配结果,确定目标查询计划,最后执行目标查询计划,以查询与查询请求对应的数据。由于是根据元数据的匹配情况确定出目标查询计划,然后执行该目标查询计划的,确定与执行上述目标查询计划的是同一执行主体,存储计算不再分离,因此大大降低了数据湖数据获取的延迟,进一步提高数据湖分析的性能,实现实时数据湖分析。131.参见图3,为本发明实施例提供的另一种数据查询方法的实施例流程图。如图3所示,该方法可包括以下步骤:132.步骤301、获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。133.至于步骤301的详细描述,可以参见上述图2实施例中步骤201的相关描述,在此不再赘述。134.步骤302、如果匹配结果为全部查询元数据与元数据集中的第一元数据匹配,则查找第一元数据对应的物化视图。135.其中,第一元数据是元数据集中与上述全部查询元数据匹配的元数据。第一元数据对应的物化视图的数量可以是一个或多个。136.物化视图是包括查询结果的一个数据库对象,它是远程数据的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照(类似于mssqlserver中的snapshot,静态快照)。137.基于图1所示的系统架构及上述对图1的相关描述,如果匹配结果为全部查询元数据与fe元数据集中的第一元数据全部匹配,则查找第一元数据对应的物化视图。138.很多系统都针对数据湖实现了相应的物化视图技术,例如dremio的reflection。然而reflection的存储是和原始的数据存放在一块的,物化视图仍构建在远端存储,所以并没有解决网络访问带来的开销和延迟,无法有效实现近存储计算。139.而本发明实施例中,物化视图存储在starrocks的be中,从而实现了近存储计算,减少网络开销,提升数据查询性能。140.至于具体是如何根据构建以及更新物化视图的,下文通过图6进行详细描述,这里暂不详述。141.步骤303、确定目标查询计划为从物化视图中查询与查询请求对应的数据。142.在一实施例中,在物化视图的数量为一个的情况下,则确定目标查询计划为从物化视图中查询与查询请求对应的数据。143.在另一实施例中,在物化视图的数量为多个的情况下,可根据各物化视图的统计信息,计算各物化视图的查询变换代价,然后根据查询变换代价,从各物化视图中确定目标物化视图。最后确定目标查询计划为从目标物化视图中查询与查询请求对应的数据。144.以物化视图的数量有三个为例,上述物化视图分别是物化视图a、物化视图b、物化视图c,可根据物化视图a的统计信息,计算出物化视图a的查询变换代价,根据物化视图b的统计信息,计算出物化视图b的查询变换代价,根据物化视图c的统计信息,计算出物化视图c的查询变换代价。145.从三个物化视图中,找到查询变换代价最低的物化视图,确定为目标物化视图。若物化视图a的查询变换代价《物化视图c的查询变换代价《物化视图b的查询变换代价,则确定物化视图a为目标物化视图。146.最后确定目标查询计划为从物化视图a中查询与查询请求对应的数据。147.通过根据统计信息计算出查询变换代价,对查询计划进行优化。因此,可以进一步减少数据查询的延迟,提升数据查询性能。148.可选的,上述统计信息至少包括下述之一:每个列的最大值、最小值,行平均值和行数,列值的直方图。149.上述根据各物化视图的统计信息,计算各物化视图的查询变换代价的具体实现可包括:获取统计信息的加权和,然后确定加权和为各物化视图的查询变换代价。150.举例来说,starrocks会统计各物化视图每个列的最大值、最小值,行平均值和行数,列值的直方图等统计数据,通过对统计数据进行简单的加权计算,得出一个数值,将这个数值作为各物化视图的查询变换代价。151.需要说明的是,具体是利用哪些统计数据进行加权计算,最后得到各物化视图的查询变换代价,可由开发人员根据实际情况进行设定,本发明对此不做限制。152.步骤304、从物化视图中查询与查询请求对应的数据。153.在一实施例中,be可从物化视图中查询与查询请求对应的数据。154.在另一实施例中,be在物化视图的数量为多个的情况下,可从上述确定的目标物化视图中查询与查询请求对应的数据。155.至此,完成图3所示流程的相关描述。156.通过图3所示流程可以看出,本发明实施例提供的技术方案,通过获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配,然后如果匹配结果为全部查询元数据与元数据集中的第一元数据匹配,则查找第一元数据对应的物化视图,确定目标查询计划为从物化视图中查询与查询请求对应的数据。最后从物化视图中查询与查询请求对应的数据。由于物化视图在近端存储,在全部查询元数据与元数据集中的第一元数据匹配的情况下,从物化视图中查询最终数据,可以实现减少网络开销,提升数据查询性能。157.参见图4,为本发明实施例提供的又一种数据查询方法的实施例流程图。如图4所示,该方法可包括以下步骤:158.步骤401、获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。159.至于步骤401的详细描述,可以参见上述图2实施例中步骤201的相关描述,在此不再赘述。160.步骤402、如果匹配结果为查询元数据中的部分查询元数据与元数据集中的第二元数据匹配,则查找第二元数据对应的物化视图。161.其中,第二元数据是元数据集中与上述查询元数据的部分查询元数据匹配的元数据。第二元数据对应的物化视图的数量可以是一个或多个,本技术实施例对此不做限定。162.基于图1所示的系统架构,如果查询元数据中的部分查询元数据与fe元数据集中的第二元数据匹配,查找第二元数据对应的物化视图。163.步骤403、对查询请求进行处理,得到第一查询请求以及第二查询请求。164.步骤404、确定目标查询计划为从物化视图中查询与第一查询请求对应的第一数据,以及从缓存块中查询与第二查询请求对应的第二数据。165.下面对步骤403和步骤404进行统一描述:166.在本发明实施例中,只有部分查询元数据与第二元数据相匹配,但需要根据查询请求查到全部数据。167.因此可对最初获取的查询请求进行处理,得到第一查询请求以及第二查询请求。168.在一实施例中,在物化视图的数量为一个的情况下,确定目标查询计划为从物化视图中查询与第一查询请求对应的第一数据,以及从缓存中查询与第二查询请求对应的第二数据。169.在另一实施例中,在物化视图的数量为多个的情况下,可根据各物化视图的统计信息,计算各物化视图的查询变换代价;根据查询变换代价,从各物化视图中确定目标物化视图;确定目标查询计划为从目标物化视图中查询与第一查询请求对应的第一数据,以及从缓存中查询与第二查询请求对应的第二数据。170.以物化视图的数量有三个为例,上述物化视图分别是物化视图a、物化视图b、物化视图c,可根据物化视图a的统计信息,计算出物化视图a的查询变换代价,根据物化视图b的统计信息,计算出物化视图b的查询变换代价,根据物化视图c的统计信息,计算出物化视图c的查询变换代价。171.从三个物化视图中,找到查询变换代价最低的物化视图,确定为目标物化视图。若物化视图a的查询变换代价《物化视图c的查询变换代价《物化视图b的查询变换代价,则确定物化视图a为目标物化视图。172.最后确定目标查询计划为从物化视图a中查询与第一查询请求匹配的第一数据,以及从缓存中查询与第二查询请求对应的第二数据。173.通过根据统计信息计算出查询变换代价,对查询计划进行优化。因此,可以进一步减少数据查询的延迟,提升数据查询性能。174.可选的,上述统计信息至少包括下述之一:每个列的最大值、最小值,行平均值和行数,列值的直方图。175.上述根据各物化视图的统计信息,计算各物化视图的查询变换代价的具体实现可包括:获取统计信息的加权和,然后确定加权和为各物化视图的查询变换代价。176.举例来说,starrocks会统计各物化视图每个列的最大值、最小值,行平均值和行数,列值的直方图等统计数据,通过对统计数据进行简单的加权计算,得出一个数值,将这个数值作为各物化视图的查询变换代价。177.需要说明的是,具体是利用哪些统计数据进行加权计算,最后得到各物化视图的查询变换代价,可由开发人员根据实际情况进行设定,本发明对此不做限制。178.步骤405、从物化视图中查询与第一查询请求对应的第一数据。179.在一实施例中,be可从物化视图中查询与第一查询请求对应的第一数据。180.在另一实施例中,在物化视图的数量为多个的情况下,可从上述确定的目标物化视图中查询与第一查询请求对应的第一数据。181.步骤406、将第二查询请求转变为析取范式,从缓存中查找析取范式对应的目标缓存块。182.现有技术中,分布式缓存的技术在大部分数据湖分析平台上普遍存在的,但是大多实现的都是简单的blockcache,这种blockcache缓存粒度比较大,因此无关内容多一些,存在利用率低下,查询命中率低的问题。183.在本发明实施例提供的starrocks中,每收到一个查询请求后,会将查询请求中的谓词取出,并将谓词变换成析取范式。其中,析取范式的维持代表了一个缓存块,并且缓存块之间可以重叠。对于分布式缓存进行了改进,从而实现降低了缓存块的粒度,减少了无关内容,提高了查询效率。184.在一实施例中,be可将第二查询请求的谓词取出,并将谓词变换为析取范式,如果该析取范式的所有合取式都能在缓存中某个缓存块中找到超集,则确定该缓存块命中了查询,确定该缓存块为目标缓存块。185.举例来说,第二查询请求变换为析取范式的过程如下:186.假设query是selectt1.a,t1.b,t2.c,t2.dfromt1,t2where(t1.a》1andt1.b》1andt2.c》10)187.可对每个table对应的谓词进行转换,变成析取范式,然后去查询并且缓存结果。188.selectfromt1where(t1.a》1andt1.b》1)‑‑保存为rr(t1);189.selectfromt2where(t2.c》10)‑‑保存为rr(t2);190.下次相同的查询也可以使用rr(t1)和rr(t2)。然后对于下面的query其实也可以使用rr(t1):191.selectfromt1where(t1.a》1andt1.b》1andt1.c》10)。192.步骤407、从目标缓存块中查询与第二查询请求对应的第二数据。193.本发明实施例中,be可目标缓存块中查询与第二查询请求对应的第二数据。194.步骤408、确定第一数据和第二数据的并集为与查询请求对应的数据。195.本发明实施例中,be可确定第一数据和第二数据的并集为与查询请求对应的数据。196.此外,不管是物化视图技术还是分布式缓存技术,这两种优化技术都对用户透明,不会引入后期运维成本197.至此,完成图4所示流程的相关描述。198.通过图4所示流程可以看出,本发明实施例提供的技术方案,通过获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。如果匹配结果为查询元数据中的部分查询元数据与元数据集中的第二元数据匹配,则查找第二元数据对应的物化视图。对查询请求进行处理,得到第一查询请求以及第二查询请求。确定目标查询计划为从物化视图中查询与第一查询请求对应的第一数据,以及从缓存块中查询与第二查询请求对应的第二数据。从物化视图中查询与第一查询请求对应的第一数据;将第二查询请求转变为析取范式,查找析取范式对应的目标缓存块;从目标缓存块中查询与第二查询请求对应的第二数据;确定第一数据和第二数据的并集为与查询请求对应的数据。由于结合分布式缓存和物化视图两种技术,大大降低了数据查询的延迟,提升了数据湖的数据分析能力,可优化多种数据湖分析场景。199.参见图5,为本发明实施例提供的再一种数据查询方法的实施例流程图。如图5所示,该方法可包括以下步骤:200.步骤501、获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。201.至于步骤501的详细描述,可以参见上述图2实施例中步骤201的相关描述,在此不再赘述。202.步骤502、如果匹配结果为全部查询元数据与元数据集中的任一元数据均不匹配,则确定目标查询计划为从缓存中查询与查询请求对应的数据。203.本发明实施例中,如果全部查询元数据与fe元数据集中的任一元数据均不匹配,则说明没有预先生成对应的物化视图,可确定目标查询计划为从缓存中查询与查询请求对应的数据。204.步骤503、将查询请求转变为析取范式,从缓存中查找与析取范式对应的目标缓存块。205.步骤504、从目标缓存块中查询与查询请求对应的数据。206.下面对步骤503和步骤504进行统一描述:207.在本实施例中,be可将查询请求的谓词取出,并将谓词变换为析取范式,如果该析取范式的所有合取式都能在缓存中某个缓存块中找到超集,则确定该缓存块命中了查询,确定该缓存块为目标缓存块。208.be可从目标缓存块中查询与查询请求对应的数据。209.至此,完成图5所示流程的相关描述。210.通过图5所示流程可以看出,本发明实施例提供的技术方案,通过获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配,如果匹配结果为全部查询元数据与元数据集中的任一元数据均不匹配,则确定目标查询计划为从缓存中查询与查询请求对应的数据,将查询请求转变为析取范式,从缓存中查找与析取范式对应的目标缓存块,从目标缓存块中查询与查询请求对应的数据。由于在分布式缓存中,利用析取范式和缓存进行简单匹配即可完成数据查找,缩小了索引所占用的时间和空间开销,提高了查找效率。211.参见图6,为本发明实施例提供的一种物化视图构建及更新方法的实施例流程图。如图6所示,该方法可包括以下步骤:212.步骤601、接收物化视图生成请求,物化视图生成请求携带原始数据标识。213.本发明实施例中,用户可以根据需要,指定存储在数据湖上的一张或者多张表生成物化视图,向starrocks发送物化视图生成请求,starrocks接收该物化视图生成请求。其中,物化视图生成请求携带原始数据标识。214.上述原始数据标识可包括但不限于:数据湖中表的表名、和/或行标签、和/或列标签等。215.步骤602、从物化视图生成请求中解析出原始数据标识,获取原始数据标识对应的原始数据。216.步骤603、根据原始数据,构建物化视图,并将物化视图对应的原始数据标识作为元数据存储在元数据集中。217.下面对步骤602和步骤603进行统一描述:218.本发明实施例中,starrocks从物化视图生成请求中解析出原始数据标识,获取原始数据标识对应的原始数据。然后根据原始数据,构建物化视图本身的olap数据库,并将该物化视图对应的原始数据标识作为元数据存储在元数据集中。219.步骤604、获取物化视图对应的原始数据增量。220.步骤605、根据增量对物化视图进行更新。221.下面对步骤604和步骤605进行统一描述:222.大部分数据湖上的表格式都会提供增量读取的语义,starrocks会通过定期获取物化视图对应的原始数据增量,然后根据增量对物化视图进行更新。223.至此,完成图6所示流程的相关描述。224.通过图6所示流程可以看出,本发明实施例提供的技术方案,通过接收物化视图生成请求,物化视图生成请求携带原始数据标识。从物化视图生成请求中解析出原始数据标识,获取原始数据标识对应的原始数据。根据原始数据,构建物化视图,并将物化视图对应的原始数据标识作为元数据存储在元数据集中。获取物化视图对应的原始数据增量。根据增量对物化视图进行更新。由于用户通过编写物化视图sql指定物化的过程,starrocks便会自动创建物化视图,并不断增量更新物化视图。又因为通常物化视图的构建是后台自动完成的,因此不依赖用户发起查询便可做到主动加速。同时,由于不断获取增量对物化视图进行更新,达到实时维护物化视图的目的。225.参见图7,为本发明实施例提供的一种缓存块淘汰方法的实施例流程图。如图7所示,该方法可包括以下步骤:226.步骤701、获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价。227.步骤702、根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰被淘汰的缓存块。228.下面对步骤701和步骤702进行统一描述:229.本发明实施例中,可获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价。然后根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰被淘汰的缓存块。230.starrocks会通过分析用户发起的查询请求,可将那些被频繁访问到的缓存数据调整到近计算节点的地方,例如计算节点的本地磁盘,内存等。这种方案用户全程无感知,无需手动维护,但是存在一定的滞后性。因此starrocks采用缓存淘汰策略对缓存块进行淘汰。231.starrocks的缓存淘汰策略是基于代价的lru(leastrecentlyused最近最少使用)策略,和一般的lru不同,starrocks不仅统计各个缓存块的历史访问次数,还会记录获取各个缓存块的获取代价。232.一般地,在一段时间内,历史访问次数低于预设值的缓存块被确定为被淘汰的缓存块,并从各个缓存块淘汰被淘汰的缓存块。在历史访问次数相同的前提下,获取代价越高的缓存块保留在缓存中的概率更高,也即获取代价更低的缓存块被确定为被淘汰的缓存块,并从各个缓存块淘汰被淘汰的缓存块。233.至此,完成图7所示流程的相关描述。234.通过图7所示流程可以看出,本发明实施例提供的技术方案,通过获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价,根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰被淘汰的缓存块。由此,可以实现对分布式缓存进行优化,提高用户查询数据的命中率,进一步提高数据湖分析的性能,有利于实现实时数据湖分析。235.参见图8,为本发明实施例提供的还一种数据查询方法的实施例流程图。如图8所示,该方法可包括以下步骤:236.步骤801、获取查询请求,解析查询请求中的查询元数据,将查询元数据与元数据集进行匹配。237.步骤802、根据查询元数据与元数据集的匹配结果,确定目标查询计划。如果匹配结果为全部查询元数据与元数据集中的第一元数据匹配,则执行步骤803;如果匹配结果为查询元数据中的部分查询元数据与元数据集中的第二元数据匹配,则执行步骤806;如果匹配结果为全部查询元数据与元数据集中的任一元数据均不匹配,则执行步骤813。238.步骤803、查找第一元数据对应的物化视图。239.步骤804、确定目标查询计划为从物化视图中查询与查询请求对应的数据。240.步骤805、从物化视图中查询与查询请求对应的数据。241.步骤806、查找第二元数据对应的物化视图。242.步骤807、对查询请求进行处理,得到第一查询请求以及第二查询请求。243.步骤808、确定目标查询计划为从物化视图中查询与第一查询请求对应的第一数据,以及从缓存块中查询与第二查询请求对应的第二数据。244.步骤809、从物化视图中查询与第一查询请求对应的第一数据。245.步骤810、将第二查询请求转变为析取范式,从缓存中查找析取范式对应的目标缓存块。246.步骤811、从目标缓存块中查询与第二查询请求对应的第二数据。247.步骤812、确定第一数据和第二数据的并集为与查询请求对应的数据。248.步骤813、确定目标查询计划为从缓存中查询与查询请求对应的数据。249.步骤814、将查询请求转变为析取范式,从缓存中查找与析取范式对应的目标缓存块。250.步骤815、从目标缓存块中查询与查询请求对应的数据。251.至于步骤801-步骤815的详细描述,可以参见上述图2-5实施例中的相关描述,在此不再赘述。252.与前述数据查询方法的实施例相对应,本发明还提供数据查询装置的实施例。253.参见图9,为本发明实施例提供的一种数据查询装置的实施例框图。254.如图9所示,该装置包括:255.匹配模块901,用于获取查询请求,解析所述查询请求中的查询元数据,将所述查询元数据与元数据集进行匹配;256.确定模块902,用于根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划;257.执行模块903,用于执行所述目标查询计划,以查询与所述查询请求对应的数据。258.在一个可能的实施方式中,所述确定模块902,包括(图中未示出):259.第一查找单元,用于如果所述匹配结果为全部所述查询元数据与所述元数据集中的第一元数据匹配,则查找所述第一元数据对应的物化视图;260.第一确定单元,用于确定所述目标查询计划为从所述物化视图中查询与所述查询请求对应的数据;261.所述执行模块903,包括(图中未示出):262.第一查询单元,用于从所述物化视图中查询与所述查询请求对应的数据。263.在一个可能的实施方式中,所述确定模块902,包括(图中未示出):264.第二查找单元,用于如果所述匹配结果为所述查询元数据中的部分查询元数据与所述元数据集中的第二元数据匹配,则查找所述第二元数据对应的物化视图;265.处理单元,用于对所述查询请求进行处理,得到第一查询请求以及第二查询请求;266.第二确定单元,用于确定所述目标查询计划为从所述物化视图中查询与所述第一查询请求对应的第一数据,以及从缓存中查询与所述第二查询请求对应的第二数据;267.所述执行模块903,包括(图中未示出):268.第二查询单元,用于从所述物化视图中查询与所述第一查询请求对应的第一数据;269.第三查找单元,用于将所述第二查询请求转变为析取范式,从所述缓存中查找与所述析取范式对应的目标缓存块;270.第三查询单元,用于从所述目标缓存块中查询与所述第二查询请求对应的第二数据;271.第三确定单元,用于确定所述第一数据和所述第二数据的并集为与所述查询请求对应的数据。272.在一个可能的实施方式中,所述确定模块902,包括(图中未示出):273.第四确定单元,用于如果所述匹配结果为全部所述查询元数据与所述元数据集中的任一元数据均不匹配,则确定所述目标查询计划为从缓存中查询与查询请求对应的数据;274.所述执行模块903,包括(图中未示出):275.第四查找单元,用于将所述查询请求转变为析取范式,从缓存中查找与所述析取范式对应的目标缓存块;276.第四查询单元,用于从所述目标缓存块中查询与所述查询请求对应的数据。277.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述第一确定单元,包括(图中未示出):278.第一计算子单元,用于根据各物化视图的统计信息,计算各物化视图的查询变换代价;279.第一确定子单元,用于根据所述查询变换代价,从各物化视图中确定目标物化视图;280.第一查询子单元,用于确定所述目标查询计划为从所述目标物化视图中查询与所述查询请求对应的数据;281.所述第一查询单元,具体用于:282.从所述目标物化视图中查询与所述查询请求对应的数据。283.在一个可能的实施方式中,在所述物化视图的数量为多个的情况下,所述第二确定单元,包括(图中未示出):284.第二计算子单元,用于根据各物化视图的统计信息,计算各物化视图的查询变换代价;285.第二确定子单元,用于根据所述查询变换代价,从各物化视图中确定目标物化视图;286.第二查询子单元,用于所述确定所述目标查询计划为从所述目标物化视图中查询与所述第一查询请求对应的第一数据;287.所述第二查询单元,具体用于:288.从所述目标物化视图中查询与所述第一查询请求对应的第一数据。289.在一个可能的实施方式中,所述统计信息至少包括下述之一:每个列的最大值、最小值,行平均值和行数,列值的直方图;290.所述第一计算子单元或第二计算子单元,具体用于:291.获取所述统计信息的加权和;292.确定所述加权和为各物化视图的查询变换代价。293.在一个可能的实施方式中,所述装置,还包括(图中未示出):294.接收模块,用于接收物化视图生成请求,所述物化视图生成请求携带原始数据标识;295.解析模块,用于从所述物化视图生成请求中解析出所述原始数据标识,获取所述原始数据标识对应的原始数据;296.构建模块,用于根据所述原始数据,构建物化视图,并将物化视图对应的原始数据标识作为元数据存储在所述元数据集中;297.增量模块,用于获取所述物化视图对应的原始数据增量;298.更新模块,用于根据所述增量对所述物化视图进行更新。299.在一个可能的实施方式中,所述装置,还包括(图中未示出):300.获取模块,用于获取各个缓存块的历史访问次数以及各个缓存块中存储数据的获取代价;301.淘汰模块,用于根据历史访问次数以及存储数据的获取代价,确定被淘汰的缓存块,并从各个缓存块淘汰所述被淘汰的缓存块。302.图10为本发明实施例提供的一种电子设备的结构示意图,图10所示的电子设备1000包括:至少一个处理器1001、存储器1002、至少一个网络接口1004和用户接口1003。电子设备1000中的各个组件通过总线系统1005耦合在一起。可理解,总线系统1005用于实现这些组件之间的连接通信。总线系统1005除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统1005。303.其中,用户接口1003可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball))、触感板或者触摸屏等。304.可以理解,本发明实施例中的存储器1002可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的存储器1002旨在包括但不限于这些和任意其它适合类型的存储器。305.在一些实施方式中,存储器1002存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统10021和应用程序10022。306.其中,操作系统10021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序10022,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序10022中。307.在本发明实施例中,通过调用存储器1002存储的程序或指令,具体的,可以是应用程序10022中存储的程序或指令,处理器1001用于执行各方法实施例所提供的方法步骤,例如包括:308.获取查询请求,解析所述查询请求中的查询元数据,将所述查询元数据与元数据集进行匹配;309.根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划;310.执行所述目标查询计划,以查询与所述查询请求对应的数据。311.上述本发明实施例揭示的方法可以应用于处理器1001中,或者由处理器1001实现。处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1002,处理器1001读取存储器1002中的信息,结合其硬件完成上述方法的步骤。312.可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。313.对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。314.本实施例提供的电子设备可以是如图10中所示的电子设备,可执行如图2-8中数据查询方法的所有步骤,进而实现图2-8所示数据查询方法的技术效果,具体请参照图2-8相关描述,为简洁描述,在此不作赘述。315.本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。316.当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的数据查询方法。317.所述处理器用于执行存储器中存储的数据查询程序,以实现以下在电子设备侧执行的数据查询方法的步骤:318.获取查询请求,解析所述查询请求中的查询元数据,将所述查询元数据与元数据集进行匹配;319.根据所述查询元数据与所述元数据集的匹配结果,确定目标查询计划;320.执行所述目标查询计划,以查询与所述查询请求对应的数据。321.专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。322.结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。323.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献