基于Hudi的数据查询方法、装置、设备及存储介质与流程

文档序号:25799143发布日期:2021-07-09 12:18阅读:229来源:国知局
基于hudi的数据查询方法、装置、设备及存储介质
技术领域
:1.本申请涉及数据查询
技术领域
:,特别是涉及基于hudi的数据查询方法、装置、设备及存储介质。
背景技术
::2.随着信息技术的不断发展,数据已经成为驱动行业发展的重要因素。在现有数据处理领域中,因为dfs(distributedfilesystem,分布式文件系统)、hdfs(hadoopdistributedfilesystem,hadoop分布式文件系统)及云存储等在大规模的数据存储上具有低成本的优势,所以在现代的数据存储体系结构中扮演了重要角色。大量的数据从不同的数据源汇入到dfs中,这些汇集的数据拥有不同的数据结构,包括结构化、半结构化和非结构化,共同构成了数据湖。hudi作为一个数据湖存储系统,提供了事务操作,并解决了dfs中数据不能更新和删除问题。3.现有技术中,hudi底层使用parquet文件格式进行数据存储,每一条记录都有一个主键。hudi写数据到parquet时,会对主键添加文件级别索引(粗粒度),包括主键的范围信息与bloomfilter(布隆过滤器),以加快数据更新过程。4.但是在数据查询方面,由于hudi表仅提供了一层粗粒度的主键索引,针对非主键查询,其查询速度较慢,查询性能较低。技术实现要素:5.本申请实施例的目的在于提供一种基于hudi的数据查询方法、装置、设备及存储介质,以实现增加基于hudi的数据查询速度,提高查询性能。具体技术方案如下:6.第一方面,本申请实施例提供了一种基于hudi的数据查询方法,所述方法包括:7.获取查询请求,解析所述查询请求得到各谓词字段;8.判断各所述谓词字段是否均已建立es索引、且各所述谓词字段的查询结果是否均存储在es存储中;9.若是,则根据各所述谓词字段的es索引查询得到查询结果;10.若否,根据各所述谓词字段查询预设hudi表,得到查询结果。11.在一种可能的实施方式中,所述方法还包括:12.在目标谓词字段的查询频率大于第一频率阈值时,建立所述目标谓词字段的es索引,并基于所述目标谓词字段的es索引,建立所述目标谓词字段与相应的主键字段和/或分区字段的二级索引;13.在所述目标谓词字段的查询频率大于第二频率阈值时,将所述目标谓词字段的查询结果存储在所述es存储中。14.在一种可能的实施方式中,所述根据各所述谓词字段查询预设hudi表,得到查询结果,包括:15.若各所述谓词字段中即不存在主键字段又不存在分区字段,则查询es索引得到各所述谓词字段对应的主键字段和/或分区字段,得到目标主键字段和/或目标分区字段;16.根据所述目标主键字段和/或所述目标分区字段查询预设hudi表,得到查询结果。17.在一种可能的实施方式中,所述根据各所述谓词字段查询预设hudi表,得到查询结果,包括:18.若各所述谓词字段中仅存在分区字段,则根据各所述谓词字段的分区字段,对所述预设hudi表进行分区过滤查询,得到查询结果;19.若各所述谓词字段中仅存在主键字段,则根据各所述谓词字段的主键字段进行预设hudi表扫描,得到查询结果;20.若各所述谓词字段中同时存在主键字段与分区字段,则根据各所述谓词字段的分区字段查询预设hudi表,得到对应的分区数据;并根据各所述谓词字段的主键字段,在所述对应的分区数据中进行主键过滤及布隆过滤,得到查询结果。21.在一种可能的实施方式中,所述预设hudi表为存储在内存中的hudi表快照,所述方法还包括:22.每当源hudi表中的元数据变更后,更新所述内存中的hudi表快照。23.在一种可能的实施方式中,所述预设hudi表为存储在内存中的hudi表快照,所述方法还包括:24.获取源hudi表的版本号,检测所述源hudi表的版本号与所述内存中的hudi表快照的版本号是否相同,其中,当所述源hudi表中的元数据变更后,所述源hudi表的版本号相应变更;25.若二者的版本号不同,则根据所述源hudi表更新所述内存中的hudi表快照。26.第二方面,本申请实施例提供了一种基于hudi的数据查询装置,所述装置包括:27.谓词字段获取模块,用于获取查询请求,解析所述查询请求得到各谓词字段;28.es索引判断模块,用于判断各所述谓词字段是否均已建立es索引、且各所述谓词字段的查询结果是否均存储在es存储中;若是则运行es表查询模块,若否则运行hudi表查询模块;29.es表查询模块,用于根据各所述谓词字段的es索引查询得到查询结果;30.hudi表查询模块,用于根据各所述谓词字段查询预设hudi表,得到查询结果。31.在一种可能的实施方式中,所述装置还包括:32.二级索引建立模块,用于在目标谓词字段的查询频率大于第一频率阈值时,建立所述目标谓词字段的es索引,并基于所述目标谓词字段的es索引,建立所述目标谓词字段与相应的主键字段和/或分区字段的二级索引;33.查询结果缓存模块,用于在所述目标谓词字段的查询频率大于第二频率阈值时,将所述目标谓词字段的查询结果存储在所述es存储中。34.在一种可能的实施方式中,所述hudi表查询模块,具体用于:若各所述谓词字段中即不存在主键字段又不存在分区字段,则查询es索引得到各所述谓词字段对应的主键字段和/或分区字段,得到目标主键字段和/或目标分区字段;根据所述目标主键字段和/或所述目标分区字段查询预设hudi表,得到查询结果。35.在一种可能的实施方式中,所述hudi表查询模块,具体用于:36.若各所述谓词字段中仅存在分区字段,则根据各所述谓词字段的分区字段,对所述预设hudi表进行分区过滤查询,得到查询结果;37.若各所述谓词字段中仅存在主键字段,则根据各所述谓词字段的主键字段进行预设hudi表扫描,得到查询结果;38.若各所述谓词字段中同时存在主键字段与分区字段,则根据各所述谓词字段的分区字段查询预设hudi表,得到对应的分区数据;并根据各所述谓词字段的主键字段,在所述对应的分区数据中进行主键过滤及布隆过滤,得到查询结果。39.在一种可能的实施方式中,所述预设hudi表为存储在内存中的hudi表快照,所述装置还包括:40.hudi表快照更新模块,用于每当源hudi表中的元数据变更后,更新所述内存中的hudi表快照。41.在一种可能的实施方式中,所述预设hudi表为存储在内存中的hudi表快照,所述装置还包括:42.hudi表快照更新模块,用于获取源hudi表的版本号,检测所述源hudi表的版本号与所述内存中的hudi表快照的版本号是否相同,其中,当所述源hudi表中的元数据变更后,所述源hudi表的版本号相应变更;若二者的版本号不同,则根据所述源hudi表更新所述内存中的hudi表快照。43.第三方便,本申请实施例提供了一种电子设备,包括处理器及存储器;44.所述存储器,用于存放计算机程序;45.所述处理器,用于执行所述存储器上所存放的程序时,实现本申请中任一所述的基于hudi的数据查询方法。46.第四方便,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请中任一所述的基于hudi的数据查询方法。47.本申请实施例有益效果:48.本申请实施例提供的基于hudi的数据查询方法、装置、设备及存储介质,获获取查询请求,解析查询请求得到各谓词字段;判断各谓词字段是否均已建立es索引、且各谓词字段的查询结果是否均存储在es存储中;若是,则根据各谓词字段的es索引查询得到查询结果;若否,根据各谓词字段查询预设hudi表,得到查询结果。在hudi的基础上建立es索引,可以通过es索引得到查询结果,es索引查询效率高于hudi表的查询效率,因此能够增加基于hudi的数据查询速度,提高查询性能。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明49.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。50.图1为本申请实施例的基于hudi的数据查询方法的第一种示意图;51.图2a为本申请实施例的基于hudi的数据查询方法的第二种示意图;52.图2b为本申请实施例的基于hudi的数据查询方法的第三种示意图;53.图3为本申请实施例中的内存中hudi表更新方式的第一种示意图;54.图4为本申请实施例中的内存中hudi表更新方式的第二种示意图;55.图5为本申请实施例的基于hudi的数据查询装置的一种示意图;56.图6为本申请实施例的电子设备的一种示意图。具体实施方式57.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。58.首先,对本申请中的术语进行解释:59.hudi:摄取和管理大型分析数据集的存储系统。60.spark:分布式内存计算引擎。61.sql(structuredquerylanguage,结构化查询语言):结构化查询语言,一种数据库查询和程序设计语言。62.谓词:sql条件表达式中返回为真值的函数。63.dfs:分布式文件系统。64.bloomfilter:布隆过滤器。65.parquet:一种高效的数据列式存储格式,支持压缩与编码。66.es(elasticsearch):分布式搜索与分析引擎。67.现有技术中,在数据查询方面,由于hudi表仅提供了一层粗粒度的主键索引,针对非主键查询,其查询速度较慢。并且hudi数据的元数据保存在文件中,每一次查询都需要对文件进行扫描操作,在数据量很大的情况下,扫描耗时开销比较大,查询性能较低。68.为了解决上述问题,本申请实施例提供了一种基于hudi的数据查询方法,参见图1,该方法包括:69.s101,获取查询请求,解析上述查询请求得到各谓词字段。70.本申请实施例的基于hudi的数据查询方法可以通过电子设备实现,具体的,该电子设备可以hudi系统中的查询服务器等。71.查询请求可以为用户输入的需要查询的信息,对查询请求进行解析,得到查询请求对应的各谓词字段。一种实施方式中,可以通过sql对查询请求进行解析,提取谓词表达式,并获取谓词表达式中各谓词对应的谓词字段。72.s102,判断各上述谓词字段是否均已建立es索引、且各上述谓词字段的查询结果是否均存储在es存储中。73.本申请实施例中将hudi系统的文件中满足预设条件的元数据存储在es存储中,并建立es索引。一种实施方式中,满足预设条件的元数据可以为对应的谓词字段的查询频率大于预设第二频率阈值的元数据,其中,第二频率阈值可以根据实际情况自定义设置,可选的,第二频率阈值与hudi系统中数据量的大小正相关;一种实施方式中,满足预设条件的元数据为各主键的最大、最小值所对应的元数据。74.s103,若是,则根据各上述谓词字段的es索引查询得到查询结果。75.在各谓词字段均已建立es索引、且所要获取的数据(即查询结果)均存储在es表中的情况下,利用各谓词字段的es索引查询得到查询结果。76.s104,若否,根据各上述谓词字段查询预设hudi表,得到查询结果。77.在存在未建立es索引的谓词字段、或所要获取的查询结果未全部存储在es存储中的情况下,需要查询预设hudi表得到查询结果。根据各谓词字段查询预设hudi表的具体过程可以参见相关技术中查询hudi表的过程,一种可能的实施方式中,上述根据各上述谓词字段查询预设hudi表,得到查询结果,包括:78.步骤一,若各上述谓词字段中仅存在分区字段,则根据各上述谓词字段的分区字段,对上述预设hudi表进行分区过滤查询,得到查询结果。79.若各谓词字段中仅存在分区字段,则根据各谓词字段的分区字段,对预设hudi表进行分区过滤,得到过滤后的分区数据。然后利用预设的上层计算引擎对过滤后的分区数据进行分析,得到查询结果。80.步骤二,若各上述谓词字段中仅存在主键字段,则根据各上述谓词字段的主键字段进行预设hudi表扫描,得到查询结果。81.若各谓词字段中仅存在主键字段,则根据各谓词字段的主键字段(主键索引),对预设hudi表进行扫描,得到主键字段对应的数据。然后利用预设的上层计算引擎对主键字段对应的数据进行分析,得到查询结果。82.步骤三,若各上述谓词字段中同时存在主键字段与分区字段,则根据各上述谓词字段的分区字段查询预设hudi表,得到对应的分区数据;并根据各上述谓词字段的主键字段,在上述对应的分区数据中进行主键过滤及布隆过滤,得到查询结果。83.若各谓词字段中即存在分区字段又存在主键字段,则先根据各谓词字段的分区字段,对预设hudi表进行分区过滤,得到过滤后的分区数据。然后根据各谓词字段的主键字段,对过滤后的分区数据进行扫描,得到主键字段对应的数据。并利用预设的上层计算引擎对主键字段对应的数据进行分析,得到查询结果。84.在本申请实施例中,在hudi的基础上建立es索引,可以通过es索引得到查询结果,es索引查询效率高于hudi表的查询效率,因此能够增加基于hudi的数据查询速度,提高查询性能。85.在一种可能的实施方式中,参见图2a,上述方法还包括:86.s105,在目标谓词字段的查询频率大于第一频率阈值时,建立上述目标谓词字段的es索引,并基于上述目标谓词字段的es索引,建立上述目标谓词字段与相应的主键字段和/或分区字段的二级索引。87.s106,在上述目标谓词字段的查询频率大于第二频率阈值时,将上述目标谓词字段的查询结果存储在上述es存储中。88.目标谓词字段为任一谓词字段,第一频率阈值可以根据实际情况自定义设置,一种实施方式中,第一频率阈值与hudi系统中数据量的大小正相关。构建二级索引可依赖es实现,将查询频繁(即查询频率大于第一频率阈值)的谓词字段与主键字段和/或分区字段构建es二级索引,当针对非主键字段进行查询,可以先去es表中获取相对应的主键字段和/或分区字段,然后根据主键字段和/或分区字段在hudi表中执行检索,从而减少非主键字段查询无索引的情况。89.在一种可能的实施方式中,参见图2b,上述根据各上述谓词字段查询预设hudi表,得到查询结果,包括:90.s1041,若各上述谓词字段中即不存在主键字段又不存在分区字段,则查询es索引得到各上述谓词字段对应的主键字段和/或分区字段,得到目标主键字段和/或目标分区字段。91.s1042,根据上述目标主键字段和/或上述目标分区字段查询预设hudi表,得到查询结果。92.当获取到目标主键字段和目标分区字段时,根据目标分区字段查询hudi表,得到对应的目标分区数据;根据目标主键字段,在目标分区数据中进行主键过滤及布隆过滤,得到查询结果。93.当仅获取到目标主键字段时,根据目标主键字段进行hudi表扫描,得到查询结果。94.当仅获取到目标分区字段时,则根据目标分区字段对hudi表进行分区过滤查询,得到查询结果。95.在本申请实施中,针对查询频繁的非主键字段,建立es二级索引,当针对非主键字段进行查询,可以先去es表中获取相对应的主键字段和/或分区字段,然后根据主键字段和/或分区字段在hudi表中执行检索,从而减少非主键字段查询无索引的情况,相比于现有技术中遍历hudi表中的全部字段,能够增加基于hudi的数据查询速度,提高查询性能。96.一种实施方式中,上述预设hudi表为存储在内存中的hudi表快照。本申请实施例中的查询预设hudi表具体是指查询内存中的hudi表快照。可选的,可以利用快照技术,制作文件中源hudi表的快照,存在到内存中,当需要查询hudi表时,直接查询内存中的hudi表快照即可。97.由于hudi系统使用元数据追踪hudi表的文件,故当hudi表的元数据数据量比较大时,计算相关数据文件的代价就会非常高,本申请实施例中将hudi表的快照保存在内存中,可选的,还可以将一些元数据(例如,文件中主键的最大、最小值)保存在内存中,从而加快上层计算引擎处理数据的速度。98.内存中hudi表快照可以通过多种方式进行更新:99.一种实施方式中,可以手动触发内存中hudi表快照更新,例如,用户手动执行相关的刷新操作,如执行相关sql语句:refeshtabledb.tb。100.在一种可能的实施方式中,上述预设hudi表为存储在内存中的hudi表快照,上述方法还包括:每当源hudi表中的元数据变更后,更新上述内存中的hudi表快照。101.每当源hudi表执行数据变更操作,例如写入、更新或删除操作后,触发更新内存中的hudi表快照,其更新过程具体可以如图3所示。102.在一种可能的实施方式中,上述预设hudi表为存储在内存中的hudi表快照,上述方法还包括:103.步骤a,获取源hudi表的版本号,检测上述源hudi表的版本号与上述内存中的hudi表快照的版本号是否相同,其中,当上述源hudi表中的元数据变更后,上述源hudi表的版本号相应变更。104.步骤b,若二者的版本号不同,则根据上述源hudi表更新上述内存中的hudi表快照。105.可以按照预设的时间间隔,周期性的触发执行上述步骤a及步骤b。当hudi系统的文件中源hudi表中的元数据变更后,需要相应更新hudi系统文件中源hudi表的版本号。一种实施方式中,hudi系统文件中源hudi表的版本号的变更方式为单调递增。可选的,可以将实时的时间作为版本号。106.例如。可以启动一周期线程,检测hudi系统的文件中源hudi表的版本号是否与内存中hudi表的版本号一致,若不一致则触发flush操作。比如内存中的hudi表的快照的版本号为20200623140520,而文件中源hudi表的最新的版本号为20200623165520,则会触发内存中的hudi表的快照更新操作,将最新的据同步到内存中,内存中的hudi表的更新过程具体可以如图4所示。107.本申请实施例还提供了一种基于hudi的数据查询装置,参见图5,该装置包括:108.谓词字段获取模块11,用于获取查询请求,解析上述查询请求得到各谓词字段;109.es索引判断模块12,用于判断各上述谓词字段是否均已建立es索引、且各上述谓词字段的查询结果是否均存储在es存储中;若是则运行es表查询模块,若否则运行hudi表查询模块;110.es表查询模块13,用于根据各上述谓词字段的es索引查询得到查询结果;111.hudi表查询模块14,用于根据各上述谓词字段查询预设hudi表,得到查询结果。112.在一种可能的实施方式中,上述装置还包括:113.二级索引建立模块,用于在目标谓词字段的查询频率大于第一频率阈值时,建立上述目标谓词字段的es索引,并基于上述目标谓词字段的es索引,建立上述目标谓词字段与相应的主键字段和/或分区字段的二级索引;114.查询结果缓存模块,用于在上述目标谓词字段的查询频率大于第二频率阈值时,将上述目标谓词字段的查询结果存储在上述es存储中。;115.在一种可能的实施方式中,上述hudi表查询模块,具体用于若各上述谓词字段中即不存在主键字段又不存在分区字段,则查询es索引得到各上述谓词字段对应的主键字段和/或分区字段,得到目标主键字段和/或目标分区字段;根据上述目标主键字段和/或上述目标分区字段查询预设hudi表,得到查询结果。116.在一种可能的实施方式中,上述hudi表查询模块,具体用于:117.若各上述谓词字段中仅存在分区字段,则根据各上述谓词字段的分区字段,对上述预设hudi表进行分区过滤查询,得到查询结果;118.若各上述谓词字段中仅存在主键字段,则根据各上述谓词字段的主键字段进行预设hudi表扫描,得到查询结果;119.若各上述谓词字段中同时存在主键字段与分区字段,则根据各上述谓词字段的分区字段查询预设hudi表,得到对应的分区数据;并根据各上述谓词字段的主键字段,在上述对应的分区数据中进行主键过滤及布隆过滤,得到查询结果。120.在一种可能的实施方式中,上述预设hudi表为存储在内存中的hudi表快照,上述装置还包括:121.hudi表快照更新模块,用于每当源hudi表中的元数据变更后,更新上述内存中的hudi表快照。122.在一种可能的实施方式中,上述预设hudi表为存储在内存中的hudi表快照,上述方法还包括:123.hudi表快照更新模块,用于hudi表快照更新模块,用于获取源hudi表的版本号,检测上述源hudi表的版本号与上述内存中的hudi表快照的版本号是否相同,其中,当上述源hudi表中的元数据变更后,上述源hudi表的版本号相应变更;若二者的版本号不同,则根据上述源hudi表更新上述内存中的hudi表快照。124.本申请实施例还提供了一种电子设备,包括:处理器及存储器;125.上述存储器,用于存放计算机程序;126.上述处理器用于执行上述存储器存放的计算机程序时,实现如下步骤:127.获取查询请求,解析上述查询请求得到各谓词字段;128.判断各上述谓词字段是否均已建立es索引、且各上述谓词字段的查询结果是否均存储在es存储中;129.若是,则根据各上述谓词字段的es索引查询得到查询结果;130.若否,根据各上述谓词字段查询预设hudi表,得到查询结果。131.可选的,参见图6,除了上述处理器21及存储器23外,本申请实施例的电子设备还包括通信接口22和通信总线24,其中,处理器21,通信接口22,存储器23通过通信总线24完成相互间的通信。132.可选的,上述处理器用于执行上述存储器存放的计算机程序时,还能够实现上述任一基于hudi的数据查询方法。133.上述电子设备提到的通信总线可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。134.通信接口用于上述电子设备与其他设备之间的通信。135.存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non‑volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。136.上述的处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field‑programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。137.本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现任一基于hudi的数据查询方法。138.在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于hudi的数据查询方法。139.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。140.需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。141.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机程序产品及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。142.以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1