CN117194445A - 物化视图的更新方法及电子设备 - Google Patents
物化视图的更新方法及电子设备 Download PDFInfo
- Publication number
- CN117194445A CN117194445A CN202310934898.9A CN202310934898A CN117194445A CN 117194445 A CN117194445 A CN 117194445A CN 202310934898 A CN202310934898 A CN 202310934898A CN 117194445 A CN117194445 A CN 117194445A
- Authority
- CN
- China
- Prior art keywords
- view
- query
- storage space
- materialized
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 15
- 238000007405 data analysis Methods 0.000 description 15
- 230000001133 acceleration Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 239000000047 product Substances 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000009499 grossing Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000019633 pungent taste Nutrition 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种物化视图的更新方法及电子设备,涉及数据处理技术领域,本申请可以通过物化视图的查询记录,确定物化视图的视图价值,根据物化视图的视图价值对物化视图进行更新,实现了物化视图的自动更新,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据查询记录来确定物化视图的视图价值,因此更新后的物化视图更为准确,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种物化视图的更新方法及电子设备
背景技术
随着通讯技术的发展,移动通讯用户的数量急剧增加,运营商涉及到的通信数据出现了爆炸式增长。而随着运营商业务种类的增多和用户需求的多样性,会出现很多用户进行数据查询的场景,这就要求运营商提供更强的数据查询能力。
目前,业界通常采用物化视图技术,来提高查询速度,进而提升查询效率。其中,物化视图是对用户查询的结果提前预汇聚生成的表,通过配置物化视图,在进行查询时,可以不访问基表,而直接从物化视图中获取数据,以此提高查询速度。但目前的物化视图的配置过程需要按照具体需求手动从基表中选取,由于基表数据变化较快,人工配置物化视图的时效性较慢,无法跟上基表数据的变化,因此,人工配置的物化视图常常无法满足用户的查询需求,且人工配置物化视图的方式成本较高。
发明内容
本申请提供一种物化视图的更新方法及电子设备,可以根据用户的查询行为,自动进行物化视图的更新,降低物化视图的配置成本,提高物化视图的配置效率,实现了查询加速的目的。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种物化视图的更新方法,包括:获取物化视图的第一查询记录,其中,物化视图存储于第一存储空间中;根据第一查询记录,得到物化视图的视图价值;若物化视图的视图价值小于预设阈值,更新第一存储空间中的物化视图。
示例性地,物化视图的视图价值用于表征物化视图对用户查询需求的覆盖率。
示例性地,预设阈值与业务需求相关。
上述第一方面提供的方案,通过物化视图的查询记录,确定物化视图的视图价值,根据物化视图的视图价值对物化视图进行更新,实现了物化视图的自动更新,相比于现有技术中人工配置物化视图的方式,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据查询记录来确定物化视图的视图价值,因此更新后的物化视图更为准确,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。
作为一种可能的实现方式,根据第一查询记录,得到物化视图的视图价值,包括:分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值,其中查询视图存储在第二存储空间中;根据物化视图的查询价值和查询视图的查询价值得到第一视图价值,以及根据物化视图的查询价值得到物化视图对应的第二视图价值,其中第一视图价值表示物化视图和查询视图对应的总视图价值;确定第二视图价值与第一视图价值的比值为物化视图的视图价值。基于此,通过引入查询视图的第二查询记录,并确定物化视图的第二视图价值在所有视图(查询视图以及物化视图)对应的总视图价值的占比,可以有效反映出物化视图对用户查询需求的覆盖情况,从而可以有效提高物化视图的视图价值的准确性。
作为一种可能的实现方式,分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值,包括:分别对T周期内的第一查询记录以及第二查询记录进行统计,得到T周期内物化视图的第一查询热度以及查询视图的第二查询热度;根据第一查询热度以及T-1周期内物化视图的查询价值,得到T周期内物化视图的查询价值;根据第二查询热度以及T-1周期内查询视图的查询价值,得到T周期内查询视图的查询价值。
其中,可以通过指数平滑的方法,对T周期的第一查询热度以及T-1周期内物化视图的查询价值进行运算,得到T周期内物化视图的查询价值,以及对T周期的第二查询热度以及T-1周期内查询视图的查询价值进行运算,得到T周期内查询视图的查询价值。
示例性地,指数平滑方法可以是一阶指数平滑。
其中,基于时间周期,对物化视图进行更新,可以有效基于业务特性对物化视图进行更新,提高用户查询时命中物化视图的成功率,达到查询加速的目的,同时,基于时间周期,对物化视图进行更新,对于离线数据分析场景以及实时数据分析场景均可以适应。
作为一种可能的实现方式,更新第一存储空间中的物化视图,包括:根据查询价值对物化视图和查询视图进行排序,得到视图序列;将视图序列中满足预设条件的视图存储在第一存储空间。
可选地,预设条件可以是从视图序列中选取查询价值排序在前N的视图存储在第一存储空间,N为正整数。基于此,将视图序列中满足预设条件的视图存储在第一存储空间后,可以使得高查询价值的视图存储在第一存储空间中,提高了用户查询时命中物化视图的成功率。
作为一种可能的实现方式,将视图序列中满足预设条件的视图存储在第一存储空间,包括:根据预设条件从视图序列中确定出理论视图;将理论视图与物化视图进行比较,得到新增视图、删除视图以及保留视图,其中,新增视图是指未存储在第一存储空间中、但包括在理论视图中的视图,删除视图是指存储在第一存储空间中、但不在理论视图中的视图,保留视图指的是存储在第一存储空间中且包括在理论视图中的视图;对第一存储空间的保留视图的状态进行更新,将删除视图从第一存储空间中删除,以及将新增视图物化后存入第一存储空间中。基于此,实现了第一存储空间中无效物化视图的删除,可以有效对第一存储空间进行释放,避免存储空间的浪费。同时,通过对保留视图进行状态更新,对新增视图物化后存储于第一存储空间,可以使得具有较高查询价值的视图存储于第一存储空间,在后续查询中,可以提高物化视图的命中率,达到查询加速的目的。并且,通过对保留视图仅进行状态的更新,而不重新物化加载,可以减少资源的占用。
作为一种可能的实现方式,第一存储空间的存储总空间与理论视图对应的存储空间之和的差值小于预设空间阈值。基于此,可以避免在存储物化视图,超出第一存储空间的空间限制。
作为一种可能的实现方式,在将理论视图存储在第一存储空间中之后,存储在第一存储空间中的物化视图的查询价值大于存储在第二存储空间中的查询视图的查询价值。基于此,可以使得第一存储空间中所存储的物化视图具有较高的查询价值,提高了用户查询时命中物化视图的成功率。
作为一种可能的实现方式,将新增视图物化后存入第一存储空间中,包括:根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图,对目标新增视图物化后存入第一存储空间中。基于此,可以在物化视图生成时,选择代价最优的引擎,提高资源的利用率,同时通过资源的合理分配,也提高了物化视图的生成速度。
作为一种可能的实现方式,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图,包括:根据删除视图所占的存储空间以及保留视图在进行状态更新后所占的存储空间,确定第一存储空间的可使用空间;根据新增视图的查询价值以及新增视图所占的存储空间,得到新增视图的视图成本;以可使用空间为约束,最大视图成本为目标,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。基于此,可以在有限的存储空间中存储更高查询价值的物化视图,从而提高到用户查询时命中物化视图的成功率,达到查询加速的目的。
作为一种可能的实现方式,还包括:确定物化视图的数据量与物化视图对应的基表数据的数据量的第一占比,以及确定查询视图的数据量与查询视图对应的基表数据的数据量的第二占比;基表数据存储在第三存储空间;根据第一占比与物化视图对应的基表数据所占的存储空间的乘积,得到物化视图所占的存储空间;根据第二占比与查询视图对应的基表数据所占的存储空间的乘积,得到查询视图所占的存储空间。基于此,通过确定视图的数据量与对应的基表数据的数据量的占比,根据数据量的占比与对应基表数据所占的存储空间的乘积,可以快速得到视图所占的存储空间。
作为一种可能的实现方式,还包括:响应于查询请求,对查询请求进行解析,得到查询请求对应的请求信息;若请求信息针对的是第一存储空间中的物化视图,从第一存储空间中获取请求信息对应的查询结果;若请求信息针对的不是第一存储空间中的物化视图,从第三存储空间中获取请求信息对应的查询结果。基于此,通过两种方式进行查询,可以提高查询的可靠性,保证查询结果的正确性与一致性。
作为一种可能的实现方式,从第三存储空间中获取请求信息对应的查询结果之后,还包括:更新第二存储空间中的查询视图。基于此,可以提高查询视图的准确性。
第二方面,提供一种电子设备,该电子设备包括:第一存储空间,用于存储物化视图;处理单元,用于:获取物化视图的第一查询记录;根据第一查询记录,得到物化视图的视图价值;以及在物化视图的视图价值小于预设阈值时更新第一存储空间中的物化视图。
上述第二方面提供的方案,电子设备通过物化视图的查询记录,确定物化视图的视图价值,根据物化视图的视图价值对物化视图进行更新,实现了物化视图的自动更新,相比于现有技术中人工配置物化视图的方式,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据查询记录来确定物化视图的视图价值,因此更新后的物化视图更为准确,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。
作为一种可能的实现方式,该电子设备还包括第二存储空间,第二存储空间用于存储查询视图;根据第一查询记录,得到物化视图的视图价值,包括:分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值;根据物化视图的查询价值和查询视图的查询价值得到第一视图价值,以及根据物化视图的查询价值得到物化视图对应的第二视图价值,其中第一视图价值表示物化视图和查询视图对应的总视图价值;确定第二视图价值与第一视图价值的比值为物化视图的视图价值。基于此,通过引入查询视图的第二查询记录,并确定物化视图的第二视图价值在所有视图(查询视图以及物化视图)对应的总视图价值的占比,可以有效反映出物化视图对用户查询需求的覆盖情况,从而可以有效提高物化视图的视图价值的准确性。
作为一种可能的实现方式,分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值,包括:分别对T周期内的第一查询记录以及第二查询记录进行统计,得到T周期内物化视图的第一查询热度以及查询视图的第二查询热度;根据第一查询热度以及T-1周期内物化视图的查询价值,得到T周期内物化视图的查询价值;根据第二查询热度以及T-1周期内查询视图的查询价值,得到T周期内查询视图的查询价值。基于此电子设备基于时间周期,对物化视图进行更新,可以有效基于业务特性对物化视图进行更新,提高用户查询时命中物化视图的成功率,达到查询加速的目的,同时,基于时间周期,对物化视图进行更新,对于离线数据分析场景以及实时数据分析场景均可以适应。
作为一种可能的实现方式,更新第一存储空间中的物化视图,包括:根据查询价值对物化视图和查询视图进行排序,得到视图序列;将视图序列中满足预设条件的视图存储在第一存储空间。基于此,将视图序列中满足预设条件的视图存储在第一存储空间后,可以使得高查询价值的视图存储在第一存储空间中,提高了用户查询时命中物化视图的成功率。
作为一种可能的实现方式,将视图序列中满足预设条件的视图存储在第一存储空间,包括:根据预设条件从视图序列中确定出理论视图;将理论视图与物化视图进行比较,得到新增视图、删除视图以及保留视图,其中,新增视图是指未存储在第一存储空间中、但包括在理论视图中的视图,删除视图是指存储在第一存储空间中、但不在理论视图中的视图,保留视图指的是存储在第一存储空间中且包括在理论视图中的视图;对第一存储空间的保留视图的状态进行更新,将删除视图从第一存储空间中删除,以及将新增视图物化后存入第一存储空间中。基于此,实现了第一存储空间中无效物化视图的删除,可以有效对第一存储空间进行释放,避免存储空间的浪费。同时,通过对保留视图进行状态更新,对新增视图物化后存储于第一存储空间,可以使得具有较高查询价值的视图存储于第一存储空间,在后续查询中,可以提高物化视图的命中率,达到查询加速的目的。并且,通过对保留视图仅进行状态的更新,而不重新物化加载,可以减少资源的占用。
作为一种可能的实现方式,第一存储空间的存储总空间与理论视图对应的存储空间之和的差值小于预设空间阈值。基于此,可以避免在存储物化视图,超出第一存储空间的空间限制。
作为一种可能的实现方式,在将理论视图存储在第一存储空间中之后,存储在第一存储空间中的物化视图的查询价值大于存储在第二存储空间中的查询视图的查询价值。基于此,可以使得第一存储空间中所存储的物化视图具有较高的查询价值,提高了用户查询时命中物化视图的成功率。
作为一种可能的实现方式,将新增视图物化后存入第一存储空间中,包括:根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图,对目标新增视图物化后存入第一存储空间中。基于此,可以在物化视图生成时,选择代价最优的引擎,提高资源的利用率,同时通过资源的合理分配,也提高了物化视图的生成速度。
作为一种可能的实现方式,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图,包括:根据删除视图所占的存储空间以及保留视图在进行状态更新后所占的存储空间,确定第一存储空间的可使用空间;根据新增视图的查询价值以及新增视图所占的存储空间,得到新增视图的视图成本;以可使用空间为约束,最大视图成本为目标,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。基于此,可以在有限的存储空间中存储更高查询价值的物化视图,从而提高到用户查询时命中物化视图的成功率,达到查询加速的目的。
作为一种可能的实现方式,还包括:确定物化视图的数据量与物化视图对应的基表数据的数据量的第一占比,以及确定查询视图的数据量与查询视图对应的基表数据的数据量的第二占比;基表数据存储在第三存储空间;根据第一占比与物化视图对应的基表数据所占的存储空间的乘积,得到物化视图所占的存储空间;根据第二占比与查询视图对应的基表数据所占的存储空间的乘积,得到查询视图所占的存储空间。基于此,通过确定视图的数据量与对应的基表数据的数据量的占比,根据数据量的占比与对应基表数据所占的存储空间的乘积,可以快速得到视图所占的存储空间。
作为一种可能的实现方式,还包括:响应于查询请求,对查询请求进行解析,得到查询请求对应的请求信息;若请求信息针对的是第一存储空间中的物化视图,从第一存储空间中获取请求信息对应的查询结果;若请求信息针对的不是第一存储空间中的物化视图,从第三存储空间中获取请求信息对应的查询结果。基于此,通过两种方式进行查询,可以提高查询的可靠性,保证查询结果的正确性与一致性。
作为一种可能的实现方式,从第三存储空间中获取请求信息对应的查询结果之后,还包括:更新第二存储空间中的查询视图。基于此,可以提高查询视图的准确性。
第三方面,提供一种电子设备,包括:通信接口,用于与其它电子设备通信;存储器,用于存储计算机程序指令;处理器,用于执行计算机程序指令,以支持电子设备实现如第一方面任一种可能的实现方式中的方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理电路执行时实现如第一方面任一种可能的实现方式中的方法。
第五方面,提供一种芯片系统,芯片系统包括处理电路、存储介质,存储介质中存储有计算机程序指令;计算机程序指令被所述处理电路执行时实现如第一方面任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
附图说明
图1为本申请实施例提供的物化视图技术的原理图。
图2为常规的构建物化视图的界面示意图。
图3为常规的物化视图构建流程示意图。
图4为本申请实施例提供的一种物化视图的更新系统的架构示意图。
图5为本申请实施例提供的系统功能架构图。
图6为本申请实施例提供的物化视图的更新方法的流程示意图之一。
图7为本申请实施例提供的物化视图的更新方法的流程示意图之二。
图8为本申请实施例提供的物化视图的更新方法的流程示意图之三。
图9为本申请实施例提供的物化视图的更新方法的流程示意图之四。
图10为本申请实施例提供的物化视图的更新方法的流程示意图之五。
图11为本申请实施例提供的物化视图的更新方法的流程示意图之六。
图12为本申请实施例提供的物化视图的更新流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如背景技术所述,目前,业界通常采用物化视图技术来提高查询速度。对于物化视图技术,数据入库和数据存储采用基表方式,通过基表存储于数据库中,而在用户查询时,通过提前构建用户的查询数据,即物化视图,来实现查询加速,提升查询效率。由于物化视图是对用户的查询数据提前进行抽取与预计算,因此,查询时就可以省去预计算时间,从而提高查询性能。
如图1所示,图1为物化视图技术的原理图。在数据从外部写入数据库之后,数据库可以是以基表形式存储写入的数据于。在构建物化视图时,则可以基于数据库中的基表选取数据构建出物化视图。其中由基表到物化视图的构建过程就是对数据进行预计算/数据汇聚的过程。当用户下发查询请求时,查询路由对用户的查询请求进行分析,若用户的请求数据在物化视图表中,则路由到物化视图,直接从物化视图中读取请求结果;否则,路由到基表数据,重新读取基表数据,并按照用户请求内容对基表数据进行计算,从而获取结果。
目前,对于物化视图的构建,通常是按照具体需求手动从基表中选取数据进行构建。如图2所示,图2为常规技术中构建物化视图的界面示意图。当用户需要构建物化视图时,则可以从界面中的维度选项中选取维度属性,在度量选项中选择度量属性,其中,维度属性用于描述基表中列的属性,度量属性是根据不同计算方法,如求和值(sum)、求最大值(max)、求最小值(min)、求平均值(average)等计算方法对维度属性进行预计算。如图2中,用户选取了“维度属性_3”、“维度属性_4”、“维度属性_5”3列维度属性,选择了求最大值和求和值两种计算对这3列维度属性进行计算,假设通过求最大值,得到“结果_1”的计算结果,通过求和值,得到“结果_2”的计算结果,在用户点击确定按钮后,查询引擎即可根据用户所选取的构建出物化视图,并对构建出的物化视图进行存储。若后续用户的查询请求为{维度属性_3,维度属性_4,维度属性_5}和{结果_1,结果_2}的子集,例如,查询请求为{维度属性_3,维度属性_4,结果_1}的查询,或者查询请求为{维度属性_5,结果_1}的查询,则命中该物化视图,查询引擎则会在满足逻辑语义的前提下,尝试使用重写查询的执行计划,新的执行计划就可以直接访问物化视图的计算结果数据,避免重新计算度量的值,从而加速查询速度。
请参考图3,图3为常规技术中物化视图构建流程示意图。如图3所示,常规在构建物化视图时,需要用户根据需求手动从基表中选择列以构建出视图,以及根据选择出的视图构建出物化视图;然后将物化视图加载到指定查询引擎的缓存中。当在接收到查询请求时,若查询请求命中物化视图时,则触发物化视图查询,从物化视图中获取所查询的计算结果数据。
常规技术在构建物化视图时,存在以下问题:(1)由于需要手动从基表中一个个过滤列选项,当基表有上百列、或者表的定义不清晰时,很难定位到需要的列,造成大量的时间消耗,使得配置成本高、配置效率低。(2)由于视图的选择完全依据经验配置,没有经验人员或不熟悉业务的开发人员,无法配置出高价值的物化视图,即用户的查询命中配置物化视图的成功率偏低。同时,当查询行为发生变化或者系统环境发生改变时,缓存中的物化视图为无效视图,需要重新选择、配置物化视图,造成物化视图的延后性,无法达到查询加速的目的。(3)常规技术仅支持Spark处理的单引擎离线数据分析场景,无法支持实时数据分析场景。实时数据主要是指的数据延迟小,例如毫秒、秒、分钟、小时级的延迟,也称之为“流式”数据处理,数据像水流一样每时每刻源源不断地产生后,就立即进行抽取、清洗、转换、装载(Extract-Transform-Load,ETL)处理。例如预警监控类分析,故障诊断等,需要追求实时性,为实时数据分析场景。离线数据一般是指T-1的日期,例如今天的日期T=2023-06-15,那么数据结果中,能够体现的业务数据只包括前一天的2023-06-14数据。离线数据处理也称之为“批处理”。例如业务经营分析、财务分析准确性大于时效性,为离线数据分析场景。离线数据分析场景仅支持天、周、月等大粒度的数据处理方式;实时在线数据分析场景支持5min、15min、1hour等小粒度的数据处理方式。(4)常规技术在进行物化视图替换时,需要先从缓存中删除无效的物化视图,然后再重新配置新的物化视图并加载到缓存中,造成配置成本高问题。且由于是人工对无效的物化视图进行删除,当无效的物化视图删除失败或者被遗漏掉,则会造成无效的物化视图一直存储在缓存中,将造成缓存空间的浪费,而有效的物化视图却无法加载到缓存中,无法达到查询加速的目的。
基于上述考虑,本申请实施例提供一种物化视图的更新方法,可以根据用户的查询行为,自动进行物化视图的更新。相比于现有技术中人工配置物化视图的方式,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据用户的查询行为驱动物化视图的更新,因此更新后的物化视图更为准确,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。除此之外,本申请实施例根据用户的查询行为,自动进行物化视图更新,不仅可以适应离线数据分析场景以及实时数据分析场景,也可以自动对缓存中无效的物化视图进行替换,提高缓存的利用率。
为方便理解,首先给出相关术语的解释说明。
物化视图:对需要查询的结果提前预汇聚生成的表,属于实体化视图。
查询视图:是由SELECT语句组成的查询定义的虚拟表,本身并不包含任何数据。
服务协议水平(Service Level Agreement,SLA):用于概述供应商承诺向客户提供的服务等级,该协议概述了正常运行时间、交付时间、响应时间和解决时间等指标。
基表:加载到数据库中的原始表。
请参阅图4,图4为本申请实施例提供的一种物化视图的更新系统的架构示意图。如图4所示,物化视图的更新系统包括电子设备100和终端设备200。
其中,用户可以通过终端设备200向电子设备100发送数据。示例性地,终端设备200可以向用户提供一交互界面,用户可以通过该交互界面,向电子设备100发送查询请求,电子设备100在接收到查询请求后,执行数据查询,得到查询结果,并将查询结果返回至终端设备200。终端设备200在接收到查询结果后,可以将查询结果通过交互界面向用户进行展示。在一些实施例中,终端设备200还可以部署交互式查询工具,通过交互式查询工具,向电子设备发送查询请求,电子设备100在接收到查询请求后,执行数据查询,得到查询结果,并将查询结果返回至终端设备200,如此,用户即可得到查询结果。
在本申请实施例中,终端设备200可以是,但不限于个人电脑、服务器、平板电脑、手机等设备。
在本申请实施例中,电子设备100可以包括处理器111、存储器112、通信接口113。其中,通信接口113用于与其它电子设备通信。例如,可以通过通信接口113接收终端设备200发送的查询请求,以及向终端设备200发送查询结果等。
处理器可以是中央处理器(central processing unit,CPU),也可以是其他特定的集成电路。处理器111还可以是其他通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。实际应用中,电子设备100也可以包括多个处理器。处理器111中可以包括一个或多个处理器核(core)。在处理器111中安装有操作系统和其他软件程序,从而处理器111能够实现对存储器112及各种外围器件互联设备的访问。
处理器111通过双倍速率(doubledata rate,DDR)总线或者其他类型的总线和存储器112相连。存储器112通常用来存储计算机程序可执行程序代码。示例性地,计算机程序可以包括操作系统程序和应用程序。操作系统可包括但不限于苹果/> OS等操作系统。其中,可执行程序代码包括指令。处理器111通过运行存储在存储器112的指令,从而执行电子设备的各种功能应用以及数据处理。存储器112可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。存储数据区可存储电子设备使用过程中所创建的数据(比如输入事件)等。
此外,存储器112可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器111通过运行存储在存储器112的指令,执行电子设备的各种功能应用以及数据处理。
在本申请实施例中,存储器112还包括高速缓冲存储器(Cache),用于保存处理器111刚用过或循环使用的指令或数据,例如,本申请实施例所述的物化视图。如果处理器111需要再次使用该指令或数据,可从高速缓冲存储器中直接调用,避免了重复存取,减少了处理器111的等待时间,因而提高了查询的效率。
在本申请实施例中,电子设备100还安装有多种引擎,例如,Spark计算引擎,Flink计算引擎、数据库引擎等,通过这些引擎实现数据的查询、物化视图的构建等。
可以理解的是,本申请图4所示的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。所述部件可以以硬件,软件或软件和硬件的组合实现。例如,本申请实施例中的电子设备还可以包括充电管理模块、电源管理模块、传感器模块、音频模块等等,关于这些模块的具体工作原理和作用,可以参考常规技术中的介绍。
在本申请实施例中,电子设备100可以是服务器或者由多个服务器搭建的服务器集群,本实施例对电子设备的具体类型不作任何限制。
在本申请实施例中,物化视图的更新系统还提供有第一数据库300和第二数据库400,其中,第一数据库用于存储基表数据,电子设备100可以通过访问第一数据库,从基表数据中获取数据。第二数据库用于存储用户的查询记录和其它配置数据(如用户信息、设备信息等),电子设备100可以通过访问第二数据库,获取查询记录。可以理解地,一个查询请求对应一个查询记录。
可选的,在本申请实施例中,物化视图存储于第一存储空间、查询视图存储于第二存储空间,基表数据存储于第三存储空间,查询记录存储第四存储空间。其中,第一存储空间可以是高速缓冲存储器,位于电子设备100中,第二存储空间、第三存储空间可以位于第一数据库,第四存储空间可以位于第二数据库。在一些实施例中,第二存储空间也可以位于电子设备100的存储器中,具体可以根据业务需求而设置,本申请实施例不进行具体限定。
基于图4所示的系统架构,请结合参阅图5,图5为本申请实施例提供的系统功能架构图。本申请实施例提供的物化视图的更新系统运行时,可以实现以下功能:视图选择、视图生成、视图路由、查询请求。其中,视图选择指的是根据用户的查询记录,分析各基表生产的视图,并从基表生产的视图中确定出具有高价值的视图。视图生成指的是基于各种引擎(如Spark计算引擎、Flink计算引擎等)对确定出的具有查询高价值的视图进行预汇聚计算,即进行物化,得到物化视图。视图路由指的是将计算得到的物化视图存储至第一存储空间,当接收到用户发送的查询请求,若命中物化视图,则可以直接从物化视图中读取结果数据,而对于未命中物化视图的查询请求,则从基表中获取结果数据,并基于查询请求生成查询视图,将查询视图存储至第二存储空间。查询请求指的是用户可以通过终端设备发送查询请求。
基于更新系统所能实现的功能,本申请实施例提供的电子设备中的存储器可以包括以下软件功能模块:查询行为感知模块、生成视图引擎感知模块以及视图数据量感知模块。可以理解地,各软件功能模块基于可执行程序代码组成。其中,视图数据量感知模块用于描述视图数据量的变化,根据用户的查询记录,确定出具有高价值的视图。生成视图引擎感知模块用于描述引擎的负载变化,在视图生成阶段可以选择代价最优的引擎对确定出的高价值进行物化,得到新的物化视图,然后将新的物化视图存储至第一存储空间,对第一存储空间中存储的原始物化视图进行更新,以此实现物化视图的更新。查询行为感知模块用于记录和描述用户的查询行为,如查询哪些表,各表中列的查询分布等。
基于上述对物化视图的更新系统的描述,本申请实施例对物化视图的更新还可以通过以下过程实现:首先根据用户的查询记录,确定出具有高价值的视图,根据各引擎的负载变化,选择代价最优的引擎对确定出的高价值进行物化,得到新的物化视图,然后将新的物化视图存储至第一存储空间,对第一存储空间中存储的原始物化视图进行更新,以此实现物化视图的更新。而当电子设备在接收到用户通过终端设备发送的查询请求后,对查询请求进行解析,确定查询请求对应的请求信息,若查询请求对应的请求信息命中第一存储空间中的物化视图,则从第一存储空间中的物化视图获取请求信息对应的结果数据,若查询请求对应的请求信息未命中第一存储空间中的物化视图,则从基表数据中获取请求信息对应的结果数据,并基于查询请求生成查询视图,将查询视图存储于第二存储空间。
其中,基表中的数据是通过对原始数据进行ETL得到,基表存储于第三存储空间。用户每次发送的查询请求,都会存储于第四存储空间,一个查询请求即为一条查询记录,如此,以便于通过分析各视图的查询记录,确定出具有高价值的视图。
基于图4和图5所示的系统架构,本申请实施例提供一种物化视图的更新方法,本申请实施例提供的物化视图的更新方法应用于物化视图的更新系统,由系统中的电子设备100执行。如图6所示,图6为本申请实施例提供的物化视图的更新方法的流程示意图,本申请实施例提供的物化视图的更新方法可以包括以下步骤。
S310:获取物化视图的第一查询记录。
在本申请实施例中,用户在进行数据查询时,发送的查询请求中会包括所请求的表名、维度信息以及度量信息等请求信息,例如,一查询请求表征要请求表A的第3列、第4列的数据,则该查询请求的请求信息为{表A,维度属性_3,维度属性_4}。通过查询请求进行解析,即可得到所请求信息,然后基于所请求的信息,生成查询记录。可以理解地,生成的查询记录中也同样包括所请求的请求信息。
为了便于对查询记录的统计,在本申请实施例中,生成的查询记录中也包括对应的查询请求的请求时间。
在本申请实施例中,每条查询记录对应有一个视图,且所对应的视图包含有该条查询记录所请求的请求信息。例如,一查询记录包含的请求信息为{表A,维度属性_3,维度属性_4},则该查询记录所对应的视图中也包含{表A,维度属性_3,维度属性_4}的信息。可以理解地,请求信息仅是用于指示具体要请求哪些数据,或者说用于指示所要请求的数据的存储位置,并不是数据本身。
每条查询记录对应的视图可以是物化视图,也可以是查询视图。可以理解地,物化视图中是包括请求信息对应的具体数据,而查询视图中并不包含任何具体数据。
在本申请实施例中,不同的查询记录可以对应同一个视图,当一个视图对应有多条查询记录,则表明该视图被多次查询。
在本申请实施例中,第一查询记录是针对于物化视图的查询记录。获取物化视图的第一查询记录可以是基于触发机制获取。例如,根据设定条件触发,在满足设定条件时,即可获取物化视图的第一查询记录。其中,设定条件可以基于业务需求而设置,具体不做限定。
在本申请实施例中,触发机制可以是时间机制,按照时间周期获取物化视图的第一查询记录。
可选的,在本申请实施例中,按照时间周期获取物化视图的第一查询记录,可以是每隔设定的时间周期,获取物化视图所有的第一查询记录,也可以是每隔设定的时间周期,获取当前周期的物化视图的第一查询记录。例如,在t周期结束时,获取t周期内物化视图的第一查询记录,也可以是在t周期结束时,获取t周期以及t周期之前所有周期内物化视图的第一查询记录。其中,时间周期可以基于业务需求而设置,例如,在实时数据场景下,时间周期可以根据秒、分、小时等小粒度量级进行设置。在批处理数据场景下,时间周期可以根据日、周、月等大粒度量级进行设置。
在可选的实施方式,也可以通过响应于其它电子设备发送的指令获取物化视图的第一查询记录。例如,在接收到其它电子设备发送的指令后,响应该指令,获取物化视图的第一查询记录。
为了便于对数据的管理,在本申请实施例中,物化视图可以和查询记录存储于不同的存储空间。示例性地,物化视图可以存储于第一存储空间,查询记录可以存储于不同第一存储空间的第四存储空间。
在可选的实施方式中,在获取物化视图的第一查询记录时,可以先从第四存储空间中获取所存储的查询记录,将查询记录所包含的请求信息与物化视图的请求信息进行比较,得到与物化视图的请求信息一致的查询记录。可以理解地,与物化视图的请求信息一致的查询记录,即为物化视图的第一查询记录。
由于查询记录中包括请求时间,若需要选取某个时间周期的查询记录,则可以直接根据请求时间以及时间周期所对应的时间进行选取。例如,物化视图_View1对应的查询记录有记录X1,记录X2,记录X3,假设记录X1的请求时间为T1,记录X2的请求时间为T2,记录X3的请求时间为T3,若要选取t1时间周期的查询记录,T1、T2位于t1时间周期内,T3未位于t1时间周期内,则记录X1、记录X2为物化视图_View1选取出来的第一查询记录。
S320:根据第一查询记录,得到物化视图的视图价值。
其中,物化视图的视图价值用于表征物化视图对用户查询需求的覆盖率,当物化视图的视图价值越高时,物化视图对用户查询需求的覆盖率越高,当物化视图的视图价值越低时,物化视图对用户查询需求的覆盖率越低。
在可选的实施方式中,可以针对每个视图价值,设置对应的查询记录区间,在得到物化视图的第一查询记录后,可以对物化视图的第一查询记录进行统计,得到第一查询记录的总记录数,然后确定总记录数所位于查询记录区间,将总记录数所位于的查询记录区间所对应的视图价值,确定为物化视图的视图价值。
在可选的实施方式中,还可以直接对物化视图的第一查询记录进行统计,得到第一查询记录的总记录数据,将第一查询记录的总记录数确定为物化视图的视图价值。
在可选的实施方式中,考虑到第一存储空间中物化视图的个数有多个,在根据第一查询记录,得到物化视图的视图价值,还可以是将所有物化视图的第一查询记录进行累计,并求平均值,得到物化视图的平均查询记录数,然后将平均查询记录数确定为物化视图的视图价值。
可以理解地,上述所列举的实施方式,仅为示例,不作为对本申请实施例中根据第一查询记录,得到物化视图的视图价值的具体限定。
S330:若物化视图的视图价值小于预设阈值,更新第一存储空间中的物化视图。
在本申请实施例中,当物化视图的视图价值越高时,表明物化视图可以较好的覆盖到用户的查询需求,用户的大部分查询都可以命中物化视图,从物化视图中直接得到查询结果,进而可以达到查询加速的目的。相应地,当物化视图的视图价值越低时,表明物化视图无法覆盖到用户的查询需求,用户的大部分查询都无法命中物化视图,即无法从物化视图中直接得到查询结果,进而无法达到查询加速的目的。
在得到物化视图的视图价值后,即可将物化视图的视图价值与预设阈值进行比较,当物化视图的价值大于预设阈值,表明当前第一存储空间所存储的物化视图可以较好地覆盖到用户的查询需求,通过当前第一存储空间所存储的物化视图可以达到查询加速的目的,进而无需对第一存储空间中的物化视图进行更新。而当物化视图的价值小于预设阈值时,表明当前第一存储空间所存储的物化视图无法覆盖到用户的查询需求,通过当前第一存储空间所存储的物化视图无法达到查询加速的目的,进而需要对第一存储空间中的物化视图进行更新。
在可选的实施方式中,也可以设置当物化视图的视图价值等于或者小于预设阈值时,对第一存储空间中的物化视图进行更新。
在本申请实施例中,预设阈值与业务需求相关,预设阈值的大小可以根据业务需求进行设置,当预设阈值设置越小时,物化视图的更新则越不频繁,查询加速的效果也越不明显。相应地,当预设阈值设置越大时,物化视图的更新则越频繁,查询加速的效果越明显。
本申请实施例通过物化视图的查询记录,确定物化视图的视图价值,根据物化视图的视图价值对物化视图进行更新,实现了物化视图的自动更新,相比于现有技术中人工配置物化视图的方式,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据查询记录来确定物化视图的视图价值,因此更新后的物化视图更为准确,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。
为了提高物化视图的视图价值的准确性,本申请实施例考虑引入查询视图的第二查询记录,结合物化视图的第一查询记录以及查询视图的第二查询记录,来得到物化视图的视图价值。请结合参阅图7,本申请实施例中,根据第一查询记录,得到物化视图的视图价值的步骤还可以包括:
S321:分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值。
其中,查询视图,指的是在查询请求对应的请求信息未命中第一存储空间中的物化视图后,基于查询请求生成的查询视图。在本申请实施例中,查询视图存储于第二存储空间,第二存储空间与第一存储空间为不同的存储空间。
可以理解地,在对查询视图的第二查询记录进行统计之前,同样需要获取查询视图的第二查询记录。相应地,在本申请实施例中,获取查询视图的第二查询记录,同样可以基于触发机制获取,触发机制同样可以是时间机制,即按照时间周期获取查询视图的第二查询记录。
可选的,获取物化视图的第一查询记录与获取查询视图的第二查询记录可以同步获取,也可以异步获取,具体不做限制。
与获取物化视图的第一查询记录的过程相似,本申请实施例中,对于查询视图,也可先从第四存储空间中获取所存储的查询记录,将查询记录所包含的请求信息与查询视图的请求信息进行比较,得到与查询视图的请求信息一致的查询记录。可以理解地,与查询视图的请求信息一致的查询记录,即为查询视图的第二查询记录。
需要说明的,为了保证得到的物化视图的视图价值的准确性,本申请实施例中,物化视图的第一查询记录与查询视图的第二查询记录,需要是同时间段的,即需要获取相同时间段的物化视图的第一查询记录以及查询视图的第二查询记录。
在本申请实施例中,视图的查询价值可以用于表征视图被查询的活跃度,当视图的查询价值越高,视图被查询的活跃度越高,进而表示视图被查询的次数也就越多,当视图的查询价值越低时,视图被查询的活跃度越低,进而表示视图被查询的次数也就越低。其中,所述视图可以是物化视图,也可以是查询视图。
本申请实施例中,分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值,指的是对第一查询记录进行统计,得到物化视图的查询价值,以及对第二查询记录进行统计,得到查询视图的查询价值。
在可选的实施方式中,对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值,可以是根据设定时间段内物化视图的第一查询记录,确定设定时间段内物化视图的第一查询频率,将第一查询频率确定为物化视图的查询价值,以及根据设定时间段内查询视图的第二查询记录,确定设定时间段内查询视图的第二查询频率,将第二查询频率确定为查询视图的查询价值。其中,查询频率可以通过设定时间段内的查询记录的总数/设定时间段的时长得到。例如,物化视图Vi在设定时间段内(假设为t周期)的第一查询记录的数量为N,则物化视图Vi在t周期的第一查询频率为N/t周期的时长。
考虑到物化视图和查询视图均是获取相同时间段的查询记录,为了提高处理效率,降低计算的复杂度,可以对获取得到的第一查询记录的个数进行累计,得到第一累计和,将第一累计和确定为物化视图的查询价值,以及对获取得到的第二查询记录的个数进行累计,得到第二累计和,将第二累计和确定为查询视图的查询价值。例如,获取得到的物化视图Vi的第一查询记录的数量为N,则物化视图Vi的查询价值即为N。
S322:根据物化视图的查询价值和查询视图的查询价值得到第一视图价值,以及根据物化视图的查询价值得到物化视图对应的第二视图价值。
其中,第一视图价值表示物化视图和查询视图对应的总视图价值。对于第一视图价值,在得到物化视图的查询价值和查询视图的查询价值后,将所有物化视图的查询价值和所有查询视图的查询价值进行求和,即可得到第一视图价值。
第二视图价值是所有物化视图的查询价值的之和。在得到物化视图的查询价值后,将所有物化视图的查询价值进行求和,即可得到第二视图价值。
第一视图价值其中,PVi为物化视图Vi的查询价值,为第二视图价值,PVl为查询视图Vl的查询价值,m,k为整数。
S323:确定第二视图价值与第一视图价值的比值为物化视图的视图价值。
其中,第二视图价值与第一视图价值的比值,表示的是第二视图价值在第一视图价值中的占比。
物化视图的视图价值其中,Rate∈[0,1]。
本申请实施例考虑查询视图的第二查询记录,通过确定物化视图的第二视图价值在所有视图(查询视图以及物化视图)对应的总视图价值的占比,可以有效反映出物化视图对用户查询需求的覆盖情况,从而可以有效提高物化视图的视图价值的准确性。
考虑到实际应用时,用户的查询频率会随着业务需求发生变化,例如,在某个时间段的查询频率较高,在其它时间段的查询频率较低。为了提高用户查询时命中物化视图的成功率,本申请实施例可以基于时间周期,来确定视图的查询价值。请结合参阅图8,分别对第一查询记录和查询视图的第二查询记录进行统计,得到物化视图的查询价值和查询视图的查询价值的步骤还可以包括:
S3211:分别对T周期内的第一查询记录以及第二查询记录进行统计,得到T周期内物化视图的第一查询热度以及查询视图的第二查询热度。
其中,查询热度可以用于表征视图的查询统计量,因此,在一些实施例中,T周期的第一查询热度可以通过对T周期的第一查询记录的个数进行累计得到,T周期的第二查询热度可以通过对T周期的第二查询记录的个数进行累计得到。
第一查询热度QVi T=∑queryVi T,第二查询热度QVl T=∑queryVl T,其中,QVi T为物化视图Vi在第T周期的第一查询热度,通过将第T周期内的单条第一查询记录queryVi T累加得到,QVl T为查询视图Vl在第T周期的第二查询热度,通过将第T周期内的单条第二询记录queryVl T累加得到。
S3212:根据第一查询热度以及T-1周期内物化视图的查询价值,得到T周期内物化视图的查询价值。
S3213:根据第二查询热度以及T-1周期内查询视图的查询价值,得到T周期内查询视图的查询价值。
在一些实施例中,可以通过指数平滑的方式,对T周期的第一查询热度以及T-1周期内物化视图的查询价值进行运算,得到T周期内物化视图的查询价值。
示例性地,T周期内物化视图Vi的查询价值PVi T=a·QVi T+(1-a)·PVi T-1,其中,PVi T为T周期内物化视图Vi的查询价值,QVi T为T周期内物化视图Vi的第一查询热度,PVi T-1为T-1周期内物化视图Vi的查询价值,a是影响因子。
相应地,也可以通过指数平滑的方式,对T周期的第二查询热度以及T-1周期内查询视图的查询价值进行运算,得到T周期内查询视图的查询价值。
示例性地,T周期内查询视图Vl的查询价值PVl T=a·QVl T+(1-a)·PVl T-1,其中,为T周期内查询视图Vl的查询价值,QVl T为T周期内查询视图Vl的第一查询热度,PVl T-1为T-1周期内查询视图Vl的查询价值,a是影响因子。
其中,a∈[0,1],a取的值越大,则当前周期的查询热度对当前周期的查询价值影响越大,反之越小。因此PVi T,PVl T的取值为非负数。
例如,以物化视图的查询价值进行举例说明,第1周期,PVi 1=a·QVi 1+(1-a)·PVi 1-1=a·QVi 1,第1周期物化视图Vi的查询价值等于第1周期的第一查询热度值;第2周期,PVi 2=a·QVi 2+(1-a)·PVi 1,第2周期物化视图Vi的查询价值等于第2周期的第一查询热度值,加上第1周期的查询价值。
基于上述实施例,可以得到在本申请实施例中,以时间周期的方式确定视图的查询价值时,是通过递推的方式运算得到,即在求T周期的查询价值时,需要求出T-1周期的收益值。
可以理解地,在得到T周期内物化视图的查询价值以及T周期内查询视图的查询价值后,对T周期内所有物化视图的查询价值以及所有查询视图的查询价值进行求和,即可得到T周期内的第一视图价值。对T周期内所有物化视图的查询价值进行求和,即可得到T周期内的第二视图价值。
即T周期的第一视图价值其中,PVi T为T周期内物化视图Vi的查询价值,/>为T周期内物化视图的第二视图价值,PVl T为T周期内查询视图Vl的查询价值。
相应地,T周期内物化视图的视图价值为
在得到T周期内物化视图的视图价值后,可以将T周期内物化视图的视图价值与预设阈值进行比较,如果T周期内物化视图的视图价值大于预设阈值时,则表明T周期第一存储空间所存储的物化视图可以较好地覆盖到用户的查询需求,进而无需对T周期内第一存储空间中的物化视图进行更新,如果T周期内物化视图的视图价值小于或等于预设阈值时,则表明T周期第一存储空间所存储的物化视图无法覆盖到用户的查询需求,进而需要对T周期内第一存储空间中的物化视图进行更新。
本申请实施例基于时间周期对物化视图进行更新,可以有效基于业务特性对物化视图进行更新,提高用户查询时命中物化视图的成功率,达到查询加速的目的,同时,基于时间周期,对物化视图进行更新,对于离线数据分析场景以及实时数据分析场景均可以适应。示例性,对于离线数据分析场景,可以按照天、周、月等大粒度时间单位设置时间周期,对于实时数据分析场景,可以按照毫秒、秒、小时等小粒度时间单位设置时间周期。
为了进一步提高用户查询时命中第一存储空间中的物化视图,实现查询加速的目的,在本申请实施例中,可以基于查询价值对第一存储空间中的物化视图进行更新。请结合参阅图9,更新第一存储空间中的物化视图的步骤可以包括:
S331:根据查询价值对物化视图和查询视图进行排序,得到视图序列。
其中,根据查询价值对物化视图和查询视图进行排序,可以是按照查询价值的大小,从大到小对物化视图以及查询视图进行排序,也可以是按照查询价值的大小,从小到大对物化视图以及查询视图进行排序,本申请实施例不做具体限定。
视图序列用于表征根据查询价值进行排序后的物化视图和查询视图,视图序列中包括排序后的物化视图和查询视图。
示例性地,对T周期的物化视图以及查询视图,按照查询价值从大到小排序后,可以得到视图序列其中,/>为T周期视图Vn的查询价值,Sort{}表示对{}中的元素进行排序。视图Vn可以是物化视图,也可以是查询视图,n为T周期物化视图的个数与T周期内查询视图的个数之和,即n=k+m,k为T周期内物化视图的个数,m为T周期内查询视图的个数。
S332:将视图序列中满足预设条件的视图存储在第一存储空间。
其中,预设条件可以根据业务需求进行设置,本申请实施例不做具体限定。示例性地,预设条件可以是从视图序列中选取查询价值排序在前N的视图存储在第一存储空间,N为正整数。
其中,在从视图序列中得到满足预设条件的视图后,可以将满足预设条件的视图物化后存储于第一存储空间中,以对第一存储空间中的物化视图进行替换,实现对第一存储空间中的物化视图的更新。
本申请实施例通过将视图序列中满足预设条件的视图存储于第一存储空间,以对第一存储空间中所存储的物化视图进行更新,可以使得高查询价值的视图存储在第一存储空间中,提高了用户查询时命中物化视图的成功率。
考虑到若是对满足预设条件的视图全部进行物化,占用资源较多,效率较低。为了提高更新效率以及资源的利用率,请结合参阅图10,将视图序列中满足预设条件的视图存储在第一存储空间的步骤可以包括:
S3321:根据预设条件从视图序列中确定出理论视图。
在一些实施例中,为了选择出具有较高查询价值的视图,预设条件可以是根据查询价值的大小,依次从视图序列中确定出理论视图,使得在将理论视图存储在第一存储空间中之后,存储在第一存储空间中的物化视图的查询价值大于存储在第二存储空间中的查询视图的查询价值。
在一些实施例中,考虑到第一存储空间存在空间限制,预设条件还可以是根据第一存储空间的存储总空间,从视图序列中确定出理论视图,使得第一存储空间的存储总空间与确定出的理论视图对应的存储空间之和的差值小于预设空间阈值。
其中,为了可以快速得到视图所占的存储空间,请结合参阅图11,本申请实施例可以通过步骤S410-步骤S420得到视图所占的存储空间。
S410:确定物化视图的数据量与物化视图对应的基表数据的数据量的第一占比,以及确定查询视图的数据量与查询视图对应的基表数据的数据量的第二占比。
其中,物化视图对应的基表数据指的是构建物化视图所使用的基表所包括的数据,查询视图对应的基表数据指的是查询视图对应请求的基表所包括的数据。
基表数据存储在第三存储空间,基表数据的数据量可以通过对第三存储空间中基表进行统计得到。示例性地,可以对基表的列、行进行统计,得到基表数据的数据量。
物化视图的数据量可以通过在构建物化视图时,对所使用的数据进行统计得到,例如,对使用的列数据、行数据进行统计,得到物化视图的数据量。
查询视图的数据量可以通过对查询视图对应查询请求所请求的数据进行统计得到,例如,对查询视图对应的查询请求所请求的列数据、行数据进行统计,得到查询视图的数据量。
确定物化视图的数据量与物化视图对应的基表数据的数据量的第一占比,即是对物化视图的数据量与物化视图对应的基表数据的数据量求比值,该比值即为物化视图的数据量与物化视图对应的基表数据的数据量的第一占比。
示例性地,第一占比=物化视图的数据量/物化视图对应的基表数据的数据量。
确定查询视图的数据量与查询视图对应的基表数据的数据量的第二占比,即是对查询视图的数据量与查询视图对应的基表数据的数据量求比值,该比值即为查询视图的数据量与查询视图对应的基表数据的数据量的第二占比。
示例性地,第二占比=查询视图的数据量/查询视图对应的基表数据的数据量。
S420:根据第一占比与物化视图对应的基表数据所占的存储空间的乘积,得到物化视图所占的存储空间,根据第二占比与查询视图对应的基表数据所占的存储空间的乘积,得到查询视图所占的存储空间。
其中,基表数据所占的存储空间可以访问第三存储空间得到。
物化视图所占的存储空间,可以通过第一占比与对应基表数据所占的存储空间的乘积得到。示例性地,物化视图所占的存储空间=第一占比*物化视图对应基表数据所占的存储空间。
相应地,查询视图所占的存储空间,可以通过第二占比与对应基表数据所占的存储空间的乘积得到。示例性地,查询视图所占的存储空间=第二占比*查询视图对应基表数据所占的存储空间。
本申请实施例通过确定视图的数据量与对应的基表数据的数据量的占比,根据数据量的占比与对应基表数据所占的存储空间的乘积,可以快速得到视图所占的存储空间。
可以理解地,由于理论视图是基于物化视图以及查询视图确定出来的,是物化视图以及查询视图的子集,因此,在得到物化视图以及查询视图所占的存储空间后,即可得到理论视图对应的存储空间。
为了在有限的存储空间内,选择出具有较高查询价值的视图,本申请实施例中的预设条件可以是根据查询价值的大小以及第一存储空间的存储总空间,从视图序列中确定出理论视图,使得第一存储空间的存储总空间与确定出的理论视图对应的存储空间之和的差值小于预设空间阈值,且将理论视图存储在第一存储空间中之后,存储在第一存储空间中的物化视图的查询价值大于存储在第二存储空间中的查询视图的查询价值。
示例性地,在基于预设条件从视图序列中确定出理论视图时,可以按照查询价值依次从视图序列中选取理论视图,直接第一存储空间的存储总空间与选取到的所有理论视图对应的存储空间之和的差值小于预设空间阈值。
以T周期的视图序列为例进行说明,视图序列其中,视图序列中的视图的查询价值从大到小排序,选取出来的理论视图可以记为:
且满足:/>
其中,表示为理论视图的集合,/>为视图序列中查询价值为/>的视图,Vj T为视图序列中查询价值为PVj T的视图,j∈[1,n],Size(Cache)为第一存储空间的存储总空间,Size(Vj T)为查询价值为PVj T的视图所占的存储空间,D为预设空间阈值。
其中,D可以根据业务需求而设置,若需要第一存储空间具有较大的额外空间存储其它数据,则可以将D值设置的较大,若需要第一存储空间存储更多的物化视图,则可以将D值设置的较小。
在可选的实施方式中,为了存储更多高价值的物化视图,在基于预设条件从视图序列中确定出理论视图时,可以按照查询价值依次从视图序列中选取理论视图,直至选取到一个视图时,使得该视图的存储空间与前序所有选取到的理论视图的存储空间之和刚好大于或等于第一存储空间的存储总空间。
示例性地,以T周期的视图序列为例进行说明,视图序列其中,视图序列中的视图的查询价值从大到小排序,选取出来的理论视图可以记为:/>则需要满足/>且/>
在可选的实施方式中,在从视图序列中确定出理论视图后,可以将确定出理论视图物化后存储于第一存储空间中,对第一存储空间中的物化视图进行替换,以实现对第一存储空间中的物化视图的更新。
S3322:将理论视图与物化视图进行比较,得到新增视图、删除视图以及保留视图。
其中,由于理论视图是从视图序列中选取得到,而视图序列是根据查询价值对查询视图以及物化视图进行排序得到,因此,选取出来的是理论视图可能同时包含物化视图和查询视图,也可能只包含物化视图或者查询视图。
为了提高更新效率以及资源的利用率,本申请实施例考虑只对需要新增在第一存储空间的理论视图物化,对无效的物化视图进行删除,对保留的物化视图进行状态更新,因此,在得到理论视图后,可以将理论视图与第一存储空间中的物化视图进行比较,以确定出需要删除的删除视图,需要新增在第一存储空间中的新增视图以及需要保留的保留视图。
其中,新增视图是指未存储在第一存储空间中、但包括在理论视图中的视图,删除视图是指存储在第一存储空间中、但不在理论视图中的视图,保留视图指的是存储在第一存储空间中且包括在理论视图中的视图;
可以理解地,将理论视图与第一存储空间中的物化视图进行比较,可以是将理论视图的请求信息与第一存储空间中的物化视图的请求信息进行比较,针对第一存储空间中的任一个物化视图,若可以得到请求信息与该物化视图的请求信息一致的理论视图,则确定该物化视图为保留视图,若无法得到请求信息与该物化视图的请求信息一致的理论视图,则确定该物化视图为删除视图。相应地,对于任一个理论视图,若从第一存储空间中无法得到请求信息与该理论视图的请求信息一致的物化视图,则确定该理论视图为新增视图。
示例性地,删除视图的集合可以表示为:其中,/>为T周期的删除视图的集合,/>表示为T周期的理论视图的集合,/>为T周期第一存储空间中的物化视图的集合,/> 表示T周期第一存储空间中的物化视图V1,/>表示T周期第一存储空间中的物化视图Vk,T周期第一存储空间中存储有k个物化视图。
保留视图的集合可以表示为:其中,/>为T周期的保留视图的集合。
新增视图的集合可以表示为:其中,/>为T周期的新增视图的集合。
S3323:对第一存储空间的保留视图的状态进行更新,将删除视图从第一存储空间中删除,以及将新增视图物化后存入第一存储空间中。
其中,对于删除视图,由于其查询价值较低,存储于第一存储空间时,被查询命中的成功率较低,无法达到查询加速的目的,因此,需要将删除视图从第一存储空间中删除。
由于新增视图是第一存储空间中未有的视图,因此,对于新增视图,需要物化为真实的物化视图后再存入第一存储空间中。
其中,可以通过配置的查询引擎,如Spark、Flink等引擎,从基表中获取新增视图中请求信息所对应的数据,对获取的数据进行预计算,以此构建出物化视图,并将构建出的物化视图存储于第一存储空间。
保留视图属于是需要继续存储于第一存储空间中的物化视图,由于保留视图已经存储于第一存储空间,因此,对于保留视图,可以沿用保留视图所对应的引擎,仅进行状态更新,无需重新进行物化加载在第一存储空间。
对于保留视图的状态更新,可以是获取保留视图对应基表新增的数据,基于新增的数据,更新保留视图中的数据。在按照时间周期进行更新时,对于保留视图的状态更新,包括数据的更新以及时间状态的更新。例如,对于T周期的保留视图Vi T,获取保留视图对应基表在T周期新增的数据,基于新增的数据,对保留视图Vi T中的数据进行更新,并将时间状态从T周期修改为T+1周期,即Vi T→Vi T+1,表示T+1周期保留视图仍存储在第一存储空间中。
需要说明的是,若基于时间周期对第一存储空间中的物化视图进行更新,则在完成步骤S3323后,第一存储空间中的物化视图的时间状态均已修改为T+1周期(从T周期修改为T+1周期)。而在T+1周期结束时,又会重新统计在T+1周期内的第一存储空间中的物化视图的第一查询记录,基于T+1周期内统计的第一查询记录,又会重新确定在T+1周期内的第一存储空间中的物化视图的视图价值,基于视图价值,判断是否会触发更新,以此循环。
本申请实施例通过将删除视图从第一存储空间进行删除,实现了第一存储空间中无效物化视图的删除,可以有效对第一存储空间进行释放,避免存储空间的浪费。同时,本申请实施例通过对保留视图进行状态更新,对新增视图物化后存储于第一存储空间,可以使得具有较高查询价值的视图存储于第一存储空间,在后续查询中,可以提高物化视图的命中率,达到查询加速的目的。并且,本申请实施例通过对保留视图仅进行状态的更新,而不重新物化加载,可以减少资源的占用。
为了提高视图的物化效率,适应于不同的应用场景,本申请实施例配置有多种引擎,在对新增视图物化时,可以选择与新增视图匹配的引擎进行物化。因此,将新增视图物化后存入第一存储空间中的步骤还可以包括:
根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。
对目标新增视图物化后存入第一存储空间中。
其中,每个引擎的数据处理能力用于表征每个引擎在单位时间内可以处理的数据量,每个引擎的数据处理能力可以根据每个引擎对应所配置的计算资源得到。每个引擎对应的计算资源在引擎部署时根据业务需求进行配置,在部署引擎时,则可以在相应配置的计算资源下测试得到引擎的数据处理能力。其中,计算资源指的是内存大小、处理器核数等计算资源。
在可选的实施方式中,可以根据新增视图的查询价值以及多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。其中,对于数据处理能力越高的引擎,可以匹配查询价值越高的新增视图。例如,存在引擎a,引擎b,引擎c,新增视图Va,新增视图Vb,新增视图Vc,设定引擎处理能力排序为引擎a>引擎b>引擎c,新增视图查询价值排序为新增视图Va<新增视图Vb<新增视图Vc,可以得到引擎a匹配的目标新增视图为新增视图Vc,引擎b匹配的目标新增视图为新增视图Vb,引擎c匹配的目标新增视图为新增视图Va。
在可选的实施方式中,考虑到不同的新增视图存在不同的数据量,而不同的数据量,使得引擎在处理数据上所消耗的时间不同。为了可以加速物化视图的生成,还可以根据新增视图的数据量以及多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。示例性地,针对每个引擎,获取引擎当前处理中的第一数据量,根据引擎的数据处理能力,以及设定的时间阈值,得到在时间阈值下,引擎可以处理的第二数据量,根据第二数据量和第一数据量的差值,得到引擎当前还可处理的目标数据量,即目标数据量=第二数据量-第一数据量。其中,时间阈值可以从SLA中获取得到。
在得到引擎当前可处理的目标数据量后,可以将目标数据量与新增视图的数据量进行匹配,得到与目标数据量匹配的新增视图,与目标数据量匹配的新增视图即为引擎匹配的目标新增视图。
其中,目标新增视图可以有多个,目标数据量与所有目标新增视图的数据量之和的差值的绝对值小于等于预设数据量阈值。
引擎当前处理中的第一数据量,可以通过加载到该引擎进行预计算(物化)的视图的数据量得到,例如,将视图Va、视图Vb、视图Vc加载至引擎中进行预计算,则引擎当前处理中的第一数据量可以为视图Va、视图Vb、视图Vc三个视图的数据量之和。
考虑到删除视图被删除时,处理删除视图的引擎会释放出处理删除视图所消耗的计算资源,而这部分释放出的计算资源,又可用于处理与删除视图相同数据量的视图,因此,在将删除视图从第一存储空间删除后,需要对引擎当前处理中的第一数据量进行更新。例如,引擎在T周期处理的第一数据量为视图Va、视图Vb、视图Vc的数据量之和,若在对第一存储空间中的物化视图进行更新操作时,将视图Va从第一存储空间删除后,则引擎当前处理中的第一数据量更新为视图Vb、视图Vc的数据量之和。
在得到多个引擎中各引擎匹配的目标新增视图后,即可将目标新增视图添加至对应匹配的引擎,通过对应匹配的引擎对目标新增视图物化,即对目标新增视图进行预计算/预汇聚等操作,得到新增的物化视图,并将新增的物化视图存储至第一存储空间,以此实现对第一存储空间的物化视图的更新。
本申请实施例根据引擎的数据处理能力,对引擎分配新增视图,可以在物化视图生成时,选择代价最优的引擎,提高资源的利用率,同时通过资源的合理分配,也提高了物化视图的生成速度。
考虑到第一存储空间的存储总空间是有限,为了在有限的存储空间中存储更高查询价值的物化视图,在本申请实施例中,可以根据第一存储空间的可使用空间以及新增视图的查询价值,为引擎分配新增视图。因此,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图,还可以包括:
根据删除视图所占的存储空间以及保留视图在进行状态更新后所占的存储空间,确定第一存储空间的可使用空间。
根据新增视图的查询价值以及新增视图所占的存储空间,得到新增视图的视图成本。
以可使用空间为约束,最大视图成本为目标,根据多个引擎的数据处理能力,为多个引擎分配新增视图,得到与多个引擎匹配的目标新增视图。
其中,保留视图所占的存储空间,表示第一存储空间已经被使用的空间,删除视图所占的存储空间表示第一存储空间释放出的可使用空间。
考虑到当保留视图的数据发生更新后,保留视图所占的存储空间也会发生变化,因此,本申请实施例基于保留视图在进行状态更新后所占的存储空间以及删除视图所占的存储空间,得到第一存储空间的可使用空间。
第一存储空间的可使用空间为第一存储空间的存储总空间减去保留视图在进行状态更新后所占的存储空间,再加上删除视图所占用的存储空间。示例性地,
其中,为在T+1周期第一存储空间的可使用空间,Size(Cache)为第一存储空间的存储总空间,
为保留视图在进行状态更新后所占用的存储空间,即在T+1周期第一存储空间已使用的存储空间,/>是T周期计算得到的删除视图所占的存储空间,也可以表示为在T+1周期第一存储空间释放的存储空间。
在本申请实施例中,新增视图的视图成本可以用新增视图的查询价值与新增视图所占的存储空间的比值进行表示。示例性地,新增视图的视图成本其中,/>为T周期计算得到的新增视图的集合,PVi T为新增视图的查询价值,Size(Vi)为新增视图所占的存储空间,/>为新增视图的视图成本。
在可选的实施方式中,可以根据第一存储空间的可使用空间以及新增视图所占用的存储空间,确定出可以存储在第一存储空间的新增视图组合,每个新增视图组合中至少包括一个新增视图。对于每个新增视图组合,将该新增视图组合中各个新增视图的视图成本进行累计,得到该新增视图组合的累计视图成本,之后根据多个引擎的数据处理能力,对最大累计视图成本对应的新增视图组合中新增视图进行分配,得到多个引擎各自匹配的目标新增视图。
其中,根据多个引擎的数据处理能力,对最大累计视图成本对应的新增视图组合中新增视图进行分配,得到多个引擎各自匹配的目标新增视图的过程,可以参照上述描述,在此不进行赘述。
需要说明的是,本申请实施例中,以第一存储空间的可使用空间为约束,最大视图成本为目标,根据多个引擎的数据处理能力,为多个引擎分配新增视图属于资源分配问题,还可以通过动态规划技术实现,关于动态规划技术的技术原理可以参考常规技术的介绍,在此不进行赘述。
本申请实施例以第一存储空间的可使用空间为约束,最大视图成本为目标,为多个引擎分配新增视图,可以在有限的存储空间中存储更高查询价值的物化视图,从而提高到用户查询时命中物化视图的成功率,达到查询加速的目的。
请参阅图12,图12为本申请实施例提供的物化视图的更新流程图。在得到删除视图、新增视图以及保留视图后,对保留视图沿用其对应的引擎进行状态更新,将删除视图进行剔除,更新各引擎的数据处理量,计算各新增视图的视图成本,基于视图成本以及各引擎的数据处理量,得到各引擎匹配的目标新增视图,基于各引擎对匹配的目标新增视图进行物化,生成物化视图并加载至第一存储空间。
基于构建的物化视图,本申请实施例提供的方法还可以包括以下步骤:
响应于查询请求,对查询请求进行解析,得到查询请求对应的请求信息。
若请求信息针对的是第一存储空间中的物化视图,从第一存储空间中获取请求信息对应的查询结果。
若请求信息针对的不是第一存储空间中的物化视图,从第三存储空间中获取请求信息对应的查询结果。
其中,查询请求对应的请求信息,可以是查询请求的请求信息,如表名、维度信息以及度量信息。
在确定请求信息是否命中物化视图时,可以检测物化视图是否包括查询请求对应的请求信息,若包括查询请求对应的请求信息,则表示请求信息针对的是第一存储空间中的物化视图,进而可以从包括查询请求对应的请求信息的物化视图中获取请求信息对应的结果数据,并进行反馈。
若未检测到第一存储空间中存在物化视图是包括查询请求对应的请求信息,则表示请求信息针对的不是第一存储空间中的物化视图,进而可以从第三存储空间中的基表数据中获取请求信息对应的结果数据,并进行反馈。
在本申请实施例中,对于每条查询请求,在对查询请求进行解析后,都会基于查询请求所请求的请求信息,生成查询记录,并存储于第四存储空间。
在本申请实施例中,当从第三存储空间中的基表数据中获取请求信息对应的结果数据后,可以基于查询请求对第二存储空间中的查询视图进行更新。其中,对第二存储空间中的查询视图进行更新,可以是检测第二存储空间中的查询视图是否包括查询请求中的请求信息,若存在查询视图包括查询请求中的请求信息,则保留第二存储空间中的查询视图,若未有查询视图包括查询请求中的请求信息,则基于查询请求的请求信息生成查询视图,将生成的查询视图存储于第二存储空间,以此实现对第二存储空间中的查询视图的更新。
本申请实施例提供的方法,通过构建物化视图,在用户的查询请求命中物化视图时,可以从物化视图中直接获取查询结果,在用户的查询请求未命中物化视图时,则可以从基表数据中获取查询结果。如此,通过两种方式,可以提高查询的可靠性,保证查询结果的正确性与一致性。
本申请实施例提供的物化视图的更新方法,通过自驱动功能进行更新,不仅可以降低视图的配置成本,提高配置效率,而且由于是根据用户的查询行为驱动物化视图的更新,因此更新后的物化视图更为准确,更有自适应性,可以满足用户的查询需求,提高用户查询时命中物化视图的成功率,达到查询加速的目的。除此之外,本申请实施例通过匹配引擎的差异,选择适配的引擎构建物化视图,可以屏蔽批处理和流处理引擎,实现同时支持离线批处理和实时流处理场景。
基于同一发明构思,本申请实施例提供了一种电子设备,该电子设备可以为上述实施例中的电子设备。该终端设备具体可以包括通信接口、存储器、处理器以及一个或多个计算机程序,上述各器件可以通过一个或多个通信总线连接。其中该一个或多个计算机程序被存储在上述存储中并被配置为被该一个或多个处理器执行,该一个或多个计算机程序包括指令,该指令可以用于执行上述实施例中电子设备执行的相关步骤。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,当计算机程序指令被处理电路执行时实现上述物化视图的更新方法中的功能或步骤。
此外,本申请实施例还可以提供一种芯片系统,芯片系统包括处理电路、存储介质,存储介质中存储有计算机程序指令当计算机程序指令被处理电路执行时实现上述物化视图的更新方法中的功能或步骤。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种物化视图的更新方法,其特征在于,包括:
获取物化视图的第一查询记录,所述物化视图存储于第一存储空间中;
根据所述第一查询记录,得到所述物化视图的视图价值;
若所述物化视图的视图价值小于预设阈值,更新所述第一存储空间中的物化视图。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一查询记录,得到所述物化视图的视图价值,包括:
分别对所述第一查询记录和查询视图的第二查询记录进行统计,得到所述物化视图的查询价值和所述查询视图的查询价值,其中所述查询视图存储在第二存储空间中;
根据所述物化视图的查询价值和所述查询视图的查询价值得到第一视图价值,以及根据所述物化视图的查询价值得到所述物化视图对应的第二视图价值,其中所述第一视图价值表示所述物化视图和所述查询视图对应的总视图价值;
确定所述第二视图价值与所述第一视图价值的比值为所述物化视图的视图价值。
3.根据权利要求2所述的方法,其特征在于,所述分别对所述第一查询记录和查询视图的第二查询记录进行统计,得到所述物化视图的查询价值和所述查询视图的查询价值,包括:
分别对T周期内的所述第一查询记录以及所述第二查询记录进行统计,得到所述T周期内所述物化视图的第一查询热度以及所述查询视图的第二查询热度;
根据所述第一查询热度以及T-1周期内所述物化视图的查询价值,得到所述T周期内所述物化视图的查询价值;
根据所述第二查询热度以及所述T-1周期内所述查询视图的查询价值,得到所述T周期内所述查询视图的查询价值。
4.根据权利要求2或3所述的方法,其特征在于,所述更新所述第一存储空间中的物化视图,包括:
根据查询价值对所述物化视图和所述查询视图进行排序,得到视图序列;
将所述视图序列中满足预设条件的视图存储在所述第一存储空间。
5.根据权利要求4所述的方法,其特征在于,所述将所述视图序列中满足预设条件的视图存储在所述第一存储空间,包括:
根据所述预设条件从所述视图序列中确定出理论视图;
将所述理论视图与所述物化视图进行比较,得到新增视图、删除视图以及保留视图,其中,所述新增视图是指未存储在所述第一存储空间中、但包括在所述理论视图中的视图,所述删除视图是指存储在所述第一存储空间中、但不在所述理论视图中的视图,所述保留视图指的是存储在所述第一存储空间中且包括在所述理论视图中的视图;
对所述第一存储空间的保留视图的状态进行更新,将所述删除视图从所述第一存储空间中删除,以及将所述新增视图物化后存入所述第一存储空间中。
6.根据权利要求5所述的方法,其特征在于,所述第一存储空间的存储总空间与所述理论视图对应的存储空间之和的差值小于预设空间阈值。
7.根据权利要求5或6所述的方法,其特征在于,在将所述理论视图存储在所述第一存储空间中之后,存储在所述第一存储空间中的物化视图的查询价值大于存储在第二存储空间中的查询视图的查询价值。
8.根据权利要求5所述的方法,其特征在于,所述将所述新增视图物化后存入所述第一存储空间中,包括:
根据多个引擎的数据处理能力,为所述多个引擎分配新增视图,得到与所述多个引擎匹配的目标新增视图;
对所述目标新增视图物化后存入所述第一存储空间中。
9.根据权利要求8所述的方法,其特征在于,所述根据多个引擎的数据处理能力,为所述多个引擎分配新增视图,得到与所述多个引擎匹配的目标新增视图,包括:
根据所述删除视图所占的存储空间以及所述保留视图在进行状态更新后所占的存储空间,确定所述第一存储空间的可使用空间;
根据所述新增视图的查询价值以及所述新增视图所占的存储空间,得到所述新增视图的视图成本;
以所述可使用空间为约束,最大视图成本为目标,根据所述多个引擎的数据处理能力,为所述多个引擎分配新增视图,得到与所述多个引擎匹配的目标新增视图。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
确定所述物化视图的数据量与所述物化视图对应的基表数据的数据量的第一占比,以及确定所述查询视图的数据量与所述查询视图对应的基表数据的数据量的第二占比;所述基表数据存储在第三存储空间;
根据所述第一占比与所述物化视图对应的基表数据所占的存储空间的乘积,得到所述物化视图所占的存储空间;
根据所述第二占比与所述查询视图对应的基表数据所占的存储空间的乘积,得到所述查询视图所占的存储空间。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述方法还包括:
响应于查询请求,对所述查询请求进行解析,得到所述查询请求对应的请求信息;
若所述请求信息针对的是所述第一存储空间中的物化视图,从所述第一存储空间中获取所述请求信息对应的查询结果;
若所述请求信息针对的不是所述第一存储空间中的物化视图,从第三存储空间中获取所述请求信息对应的查询结果。
12.根据权利要求11所述的方法,其特征在于,所述从第三存储空间中获取所述请求信息对应的查询结果之后,所述方法还包括:
更新所述第二存储空间中的查询视图。
13.一种电子设备,其特征在于,包括:
通信接口,用于与其它电子设备通信;
存储器,用于存储计算机程序指令;
处理器,用于执行所述计算机程序指令,以支持所述电子设备实现如权利要求1-12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理电路执行时实现如权利要求1-12中任一项所述的方法。
15.一种芯片系统,其特征在于,所述芯片系统包括处理电路、存储介质,所述存储介质中存储有计算机程序指令;所述计算机程序指令被所述处理电路执行时实现如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310934898.9A CN117194445A (zh) | 2023-07-27 | 2023-07-27 | 物化视图的更新方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310934898.9A CN117194445A (zh) | 2023-07-27 | 2023-07-27 | 物化视图的更新方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194445A true CN117194445A (zh) | 2023-12-08 |
Family
ID=88982555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310934898.9A Pending CN117194445A (zh) | 2023-07-27 | 2023-07-27 | 物化视图的更新方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194445A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688032A (zh) * | 2023-12-13 | 2024-03-12 | 北京镜舟科技有限公司 | 基于物化视图的查询加速方法、装置、电子设备及介质 |
-
2023
- 2023-07-27 CN CN202310934898.9A patent/CN117194445A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688032A (zh) * | 2023-12-13 | 2024-03-12 | 北京镜舟科技有限公司 | 基于物化视图的查询加速方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466899B2 (en) | Selecting controllers based on affinity between access devices and storage segments | |
CN110109953A (zh) | 一种数据查询方法、装置及设备 | |
US20040133759A1 (en) | Method and apparatus for optimizing heap size, and program and program recording medium thereof | |
US11163735B2 (en) | Database capacity estimation for database sizing | |
CN117194445A (zh) | 物化视图的更新方法及电子设备 | |
US10411969B2 (en) | Backend resource costs for online service offerings | |
EP4068118A1 (en) | Information pushing system, method and apparatus, device and storage medium | |
CN104035938A (zh) | 一种性能持续集成数据处理的方法及装置 | |
US11487588B2 (en) | Auto-sizing for stream processing applications | |
CN113094183B (zh) | Ai训练平台的训练任务创建方法、装置、系统及介质 | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
CN111382182A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112036931A (zh) | 一种实时标签计算方法、装置、计算机设备及存储介质 | |
CN110471935B (zh) | 一种数据操作的执行方法、装置、设备和存储介质 | |
US8732323B2 (en) | Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method | |
CN113641487B (zh) | 一种大数据平台sql任务执行引擎智能自动切换的方法 | |
CN111901405B (zh) | 一种多节点监控方法、装置、电子设备及存储介质 | |
CN114153609A (zh) | 资源控制方法及装置、电子设备、计算机可读存储介质 | |
CN113079062A (zh) | 一种资源调整方法、装置、计算机设备和存储介质 | |
JP3927181B2 (ja) | グリッドシステムにおけるジョブ割付方法及びグリッド仲介装置 | |
CN115984022A (zh) | 分布式支付系统统一对账方法和装置 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
US20220019955A1 (en) | Applied computer technology for high efficiency value stream management and mapping and process tracking | |
CN115237960A (zh) | 信息推送方法、装置、存储介质以及电子设备 | |
CN114117447A (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 |