数据处理方法、系统、装置和计算机可读存储介质与流程

文档序号:22890988发布日期:2020-11-10 18:16阅读:109来源:国知局
数据处理方法、系统、装置和计算机可读存储介质与流程

本发明涉及互联网技术领域,具体涉及一种数据处理方法、系统、装置和计算机可读存储介质。



背景技术:

随着互联网+技术蓬勃发展,每天都产生海量的数据,在海量运营数据中,公司决策层对公司营业状况的实时指导、决策、监控具有强烈的需求,报表系统的出现可以轻松满足这个需求。

传统关系型数据库查询方式,在对现有数据进行查询生成报表数据时,存在着大量针对多张数据库表进行随机查询的情况,而且大多数是表连接查询操作。在数据总量小于千万级别时,传统处理方式数据库响应时间能被优化到秒级以内。但是当查询数据总量超过几亿甚至是上十亿的时候,传统关系型数据库查询方式无论如何优化或者是更换索引机制,不仅无法满足快速响应的多并发要求,而且查询数据时对数据库造成很大的压力,甚至直接拖垮数据库服务。

传统关系型数据库无法支撑之后,衍生出离线处理方式,即将数据导入数据仓库(hive)中,进行离线计算,再对离线计算结算进行查询。离线数据仓库都是t+1离线分析数据,运营人员今天看昨天的数据报表,无法第一时间监控当前运营实时生产情况,随着大家对数据及时性的要求越来越高,实时计算应景产生。

综上,传统关系型数据库查询方式和离线处理方式各有缺点。传统关系型数据库查询方式由于报表系统的数据会涉及大量表关联查询、跨库和跨表查询,因此只能将业务表整合形成一个大数据表,虽然大数据表在系统中所占比例极小,但一个大数据表按照某一维度频繁查询统计多项指标数据时,由于各个事务都会争用同一个大数据表的资源而使效率低下,成为系统正常运行的性能瓶颈。离线处理方式虽然解决了传统关系型数据库性能瓶颈问题,但及时性不够,不能对运营生产数据实时形成监控,无法实时做出决策并指导生产。在当前互联网生态圈中,时间决定一切,这样显示无法满足运营决策分析要求。



技术实现要素:

有鉴于此,本发明实施例提供数据处理方法、系统、装置和计算机可读存储介质,以解决传统关系型数据库查询方式对于海量数据检索的性能瓶颈以及离线处理方式无法具有实时性的缺点。

第一方面,本发明实施例提供一种数据处理方法,包括:

获取多个表的表数据;

将所述多个表的表数据分别存储到多个数据单元中,所述多个表和所述多个数据单元一一对应;

从所述多个数据单元中获取所述多个表的表数据,并基于所述多个表的关联关系组织所述多个表的表数据,以得到文档数据;以及

将所述文档数据存储到集群上,

其中,所述集群上部署有全文检索服务,所述文档数据根据全文检索服务提供的接口进行组织和存储。

可选地,监控并解析数据库操作日志,以实时地获取多个表的表数据。

可选地,所述多个表中任意两个表之间具有下述关联关系中的至少一种:一对一关系、多对一关系和多对多关系。

可选地,当所述多个表中任意两个表之间的关联关系为一对一关系时,在组织所述文档数据时,采用关联字段作为唯一标识;当所述多个表中第一表和其他表之间是多对一关系时,在组织所述文档数据时,采用所述第一表的主键作为唯一标识;当所述多个表中任意两个表之间是多对多关系时,在组织所述文档数据时,采用由所述多个表中每个表的主键组成的联合字段作为唯一标识。

可选地,并发执行所述从多个数据单元中获取多个表的表数据,并基于所述多个表的关联关系组织所述多个表的表数据,以得到文档数据的步骤。

可选地,还包括:将所述多个表的表数据缓存到缓存数据库上,以及在获取一条表数据时,通过检索缓存数据库获取其他表的表数据,以组织所述文档数据。

可选地,当所述多个表中任意两个表之间的关联关系为一对一关系时,每获取一条表数据,将其组织为所述文档数据实时存储到所述集群上;当所述多个表中第一表和其他表之间是多对一关系时,每获取所述第一表的一条表数据,将其主键缓存到所述缓存数据库中,并且通过检索缓存数据库获取其他表的表数据,以组织所述文档数据;当所述多个表中任意两个表之间是多对多关系时,每获取一条表数据,将其缓存到所述缓存数据库中,并且只有在获取到所述多个表的所有表的表数据时,才组织所述文档数据。

可选地,基于kafka平台实现将所述多个表的表数据分别存储到多个数据单元中以及从所述多个数据单元中获取所述多个表的表数据的步骤。

可选地,所述全文检索服务为elasticsearch搜索服务,所述文档数据为es文档。

第二方面,本发明实施例提供一种数据处理系统,包括:

获取数据模块,用于实时获取多个表的表数据,并将所述多个表的表数据分别存储到多个数据单元中,所述多个表和所述多个数据单元一一对应;

组织数据模块,用于从所述多个数据单元中获取所述多个表的表数据,并基于所述多个表的关联关系组织所述多个表的表数据,以得到文档数据;

存储数据模块,用于将所述文档数据存储集群上,所述集群上部署有全文检索服务,所述文档数据根据全文检索服务提供的接口进行组织和存储。

可选地,所述获取数据模块监控并解析数据库操作日志,以得到所述多个表的表数据。

可选地,当所述多个表中任意两个表之间的关联关系为一对一关系时,在组织所述文档数据时,采用关联字段作为唯一标识;当所述多个表中第一表和其他表之间是多对一关系时,在组织所述文档数据时,采用所述第一表的主键作为唯一标识;当所述多个表中任意两个表之间是多对多关系时,在组织所述文档数据时,采用由所述多个表中每个表的主键组成的联合字段作为唯一标识。

本发明的实施例具有以下优点或有益效果:实时将关系型数据库表中的数据转换为全文检索服务支持的文档数据,并存储到集群上,使得能够利用全文检索服务检索文档数据,从而规避了传统关系型数据库查询方式对于海量数据检索的性能瓶颈以及离线处理方式无法具有实时性的缺点,使得海量数据检索同时具有实时性和高效性的优点。

附图说明

通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是根据本发明实施例的数据处理方法的流程图;

图2-4基于本发明的数据处理流程方法对三种关联关系下组织和存储文档数据进行示例性地描述;

图5是根据本发明实施例的数据处理系统的结构图;

图6是采用相关技术构建本发明实施例的数据处理系统的技术架构图;

图7是根据本发明实施例的用于执行数据处理方法的装置的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

本发明的核心思想在于实时地将关系型数据库中的多个表的表数据转换为存储到集群上的文档数据,由于集群上部署了用于支持文档数据的存储和检索的全文检索服务,从而能够确保海量数据检索的实时性和高效性。

图1是根据本发明第一实施例的数据处理方法的流程图。具体包括以下步骤。

在步骤s101中,获取多个表的表数据。此处多个表例如为业务系统中的关系型数据库的多个表。由于业务系统中的表和表数据是处于一个动态变化过程中,为了满足本发明的实时性需求,同时不影响到业务系统的正常工作,在一个可选的实施例中,通过监控并解析数据库操作日志,获取多个表的表数据。数据库操作日志包括对于表结构操作的日志,例如在数据库中增加一个新表、删除表中的一个字段、或者删除一个表,和对于表数据操作的日志,例如,在表中增加一条表数据、删除一条表数据或者修改一条表数据,从而通过本步骤,一方面基于数据结构的变化修改表数据,另一方面基于表数据自身的变化修改表数据。

在步骤s102中,将多个表的表数据分别存储到多个数据单元中。此处数据单元是用于缓存表数据的各种缓存类型的总称,例如可以是消息队列、共享内存,等等。数据单元和表一一对应。通过本步骤,每个表中的表数据在读取后会被存储到对应的数据单元中。

在步骤s103中,从多个数据单元中获取多个表的表数据,并基于多个表的关联关系组织多个表的表数据,以得到文档数据。其中,关系型数据库的两个表之间的关联关系包括:一对一关系、多对一关系和多对多关系。对于不同的关联关系,采用不同的方式组织多个表的表数据,以形成文档数据。文档数据相当于关系型数据库中的表根据关联关系合并成一个宽表得到的数据,而且此处文档数据是全文检索服务支持的数据类型,根据全文检索服务提供的接口进行组织和存储。

在步骤s104中,将文档数据存储到集群上。其中,集群上部署有全文检索服务。由于文档数据基于唯一标识进行管理,因此在将文档数据存储到集群上时,不同的文档数据也可能会被全文检索服务合并,或者现有的文档数据被修改。

应该理解的是,正如背景技术中所指出的,虽然可以将关系型数据库中的表数据直接关联得到宽表数据用于检索,然而这样的宽表数据检索的性能太低,而离线检索又不具有实时性的特点,因此,本实施例将关系型数据库中的表数据实时写入到数据单元中,然后从数据单元读取表数据以组织文档数据,并存储在部署了全文检索服务的集群上,从而可以利用全文检索服务实现海量数据检索的高效性,同时由于表数据具有实时性,因而海量数据检索的实时性也得到保证。

另外,对于步骤s103,即从多个数据单元中获取多个表的表数据,并基于多个表的关联关系组织多个表的表数据,以得到文档数据的步骤,为了确保实时性,可以采用并发执行方式。此处并发执行方式是指对于多个数据单元,建立多个线程或进程,每个线程或进程从一个数据单元获取表数据,并组织得到文档数据。在前文已经提及,关系型数据库的两个表之间的关联关系包括一对一关系、多对一关系和多对多关系。对于一对一关系的第一表和第二表,每从数据单元中得到一个表数据,可以直接按照全文检索服务提供的接口以关联字段的数值作为唯一标识组织得到文档数据并存储到集群上。对于多对一关系的第一表和第二表,每从数据单元中读取到一条表数据,可以先将其缓存到数据单元中,然后从数据单元中读取表数据,根据第一表的主键作为唯一标识组织文档数据。同理,对于多对多关系的第一表和第二表,每从数据单元中读取到一条表数据,可以先将其缓存到数据单元中,然后从数据单元中读取表数据,将第一表的主键和第二表的主键组成组合字段,将该组合字段作为唯一标识组织文档数据。而对于超过两个以上的表,可以基于上述逻辑进行相应演化。

下面结合附图2-4对三种关联关系下组织和存储文档数据进行示例性的描述。由于在实践场景中三个表的关联最为普遍,因此以下示例均基于三个表的关联。

参考图2所示,表a、表b和表c基于关联字段sno进行表关联,关联关系是1:1:1。针对此种关联关系,概括而言,其处理方式是:针对数据单元a、b和c,采用并发方式,分别循环从数据单元a、b和c中获取表数据,每获取到一个表数据,即采用sno作为唯一标识组织文档数据并存储到集群上。下面基于图2具体阐述其加工处理逻辑。

针对数据单元a,每从数据单元a中获取一条表a的表数据时,将sno的数值作为唯一标识,组织文档数据并实时保存到集群上;针对数据单元b,每从数据单元b中获取一条表b的表数据时,将sno的数值作为唯一标识,组织文档数据并实时保存到集群上;针对数据单元c,每从数据单元c中获取一条表c的表数据时,将sno的数值作为唯一标识,组织文档数据并实时保存到集群上。可以指出,虽然在图2中,关联字段sno并不是表a、b和c的主键,但是实际上在做多表关联时,关联字段和主键可能会是相同的字段。

继续参考图3所示,表a、表b和表c基于关联字段sno进行关联,关联关系是n:1:1。针对此种关联关系,概括而言,其处理方式是:针对数据单元a、b和c,采用并发方式,分别循环从每个数据单元a、b和c中获取表数据,每获取到一个表数据,即采用表a主键a_id字段为作为唯一标识组织文档数据。下面结合图3具体阐述其加工处理逻辑。

针对数据单元a,每从数据单元a获取一条表a的表数据时,第一步将该条表数据的主键a_id的值以“a_id”+${sno}为key缓存到redis数据库中,${sno}表示该条a的表数据中的sno的值。第二步以表a主键a_id字段为唯一标识组织文档数据,同时以“b_col”+${sno}、“c_col”+${sno}为key从redis中反向拉取b、c表在redis上缓存的表数据。如果获取到的b表和c表的表数据不为空,将获取到的b表和c表的表数据和a表的表数据组织文档数据。如果获取到的b、c表的表数据都为空,此种情况表明a表的表数据先被处理,因此采用a表的表数据组织文档数据,并将文档数据保存到集群上。“a_id”是一个常量字符串,表示存储a表的主键的值,“b_col”是一个常量字符串,表示存储b的表数据,“c_col”是一个常量字符串,表示存储c表的表数据。

针对数据单元b,每从数据单元b获取一条表b的表数据时,第一步需要将该条b表的表数据以“b_col”+${sno}为key缓存到redis中。第二步以“a_id”+${sno}为key从redis数据库反向拉取a表的主键a_id的数值,其中,${sno}为该条b表的表数据中的sno的值。由于a表的sno对b表中的sno为多对一关系,此时获取到的主键a_id的数值是一个数值集合。如果获取到该数值集合,表明a表中的表数据被在先获取,存储到集群中的文档数据只保存a表中的表数据,缺少b表的表数据,因此需要根据获取到的主键a_id的数值集合将b表的表数据组织文档数据。如果获取到es文档唯一标识集合为空,则表明b表的表数据先被处理,对于b表的该条表数据的处理结束。

针对数据单元c的表数据的处理逻辑和数据单元b的表数据的处理逻辑相同,这里不再赘述。

继续参考图4所示,表a、表b和表c基于关联字段sno进行表关联,关联关系是n:n:n。针对此种关联关系,概括而言,其处理方式是:针对数据单元a、b和c,采用并发方式,分别循环从每个数据单元a、b和c中获取表数据,每获取到一个表数据,即采用a的主键a_id,表b主键b_id和表c主键c_id三个字段联合拼接才能形成文档数据的唯一标识,即文档数据的唯一标识为:a_id|b_id|c_id。在下述步骤中,同样借助redis缓存技术相关交叉检验,补充文档数据中表a、b、c的表数据,保证文档数据的完整性。下面结合图4具体阐述其加工处理逻辑。

针对数据单元a,每从数据单元a获取一条表a的表数据时,第一步将该条a表的表数据的主键a_id的值以“a_id”+${sno}为key缓存到redis数据库中,同时将该条表数据以“a_col”+${a_id}为key缓存到redis中。第二步分别以“b_id”+${sno}、“c_id”+${sno}为key从redis中反向拉取缓存的b表的主键b_id和c表的主键c_id,如果都查询到结果,表明b、c表的表数据比该条表a的表数据先被处理,则将表a主键a_id与缓存中获取到的表b的主键b_id和表c的主键c_id组合形成文档数据的唯一标识,此时拼接形成的文档数据的唯一标识为:a_id|b_id|c_id。第三步通过获取的表b的主键b_id、表c的主键c_id,反向拉取b、c表缓存的表数据,即通过“b_col”+${b_id}、“c_col”+${c_id}为key分别从redis中反向拉取b、c表缓存的表数据,将a表的表数据与b、c表缓存的表数据进行组装加工,形成数据文档,保存到集群上。在第二步中,如果没有同时获取b、c表的主键,则针对a表的该条表数据的处理结束,此种情况下表明a表的表数据先到,需要等待b表和c表的表数据到达后,交叉组合形成文档数据的唯一标识,才能合并数据形成文档数据。

针对数据单元b,每从数据单元b获取一条表b的表数据时,第一步将表b主键b_id字段值以“b_id”+${sno}为key缓存到redis中,同时将b表的表数据以“b_col”+${b_id}为key缓存到redis中。第二步以“a_id”+${sno}、“c_id”+${sno}为key从redis中反向拉取a、c表缓存的主键a_id和c_id,如果都查询到结果,表明a、c表的表数据先被处理,则将表b的主键b_id与缓存中获取到的表a的主键a_id和表c的主键c_id拼接组合形成文档数据的唯一标识,此时拼接形成的文档数据的唯一标识为:a_id|b_id|c_id。第三步通过缓存获取到的表a、c主键:a_id,c_id,反向拉取a、c的表数据,即通过“a_col”+${a_id}、“c_col”+${c_id}为key分别从redis中反向拉取a、c表缓存的表数据,将a、c表的缓存的表数据与b表的该条表数据进行组合加工,形成文档数据,保存到集群上。在第二步中,如果没有同时获取a、c表的主键,则针对b表的该条表数据的处理结束,此种情况表明b表的表数据先被处理,需要等待a、c表的表数据处理后,交叉组合形成文档数据。

针对数据单元c,每从数据单元c获取一条表c的表数据时,第一步将表c的主键c_id字段值以“c_id”+${sno}为key缓存到redis中,同时将c表的表数据以“c_col”+${c_id}为key缓存到redis中。第二步以“a_id”+${sno}、“b_id”+${sno}为key从redis中反向拉取a、b的主键,如果都查询到结果,表明a、b表的表数据先被处理,则将表c主键c_id与获取到的表a的主键a_id和表b的主键b_id拼接组合形成文档数据的唯一标识,此时拼接形成的文档数据的唯一标识为:a_id|b_id|c_id。第三步通过获取到的表a和表b的主键:a_id,b_id,组成反向拉取a、b表缓存的表数据,即通过“a_col”+${a_id}、“b_col”+${b_id}为key分别从redis中反向拉取a、b表缓存的表数据,将a、b表缓存的表数据与c表缓存的表数据进行组合加工,形成文档数据,保存到集群上。在第二步中,如果没有同时获取a、b表的主键,则对于c表的该条表数据的处理结束,此种情况表明c表的该条表数据先处理,需要等待a、b表的关联的表数据被处理后,交叉组合形成文档数据。

应该理解,本发明对于一对一关系、多对一关系和多对多关系的表数据,均利用了文档检索服务提供的接口组织文档数据,并将文档数据存储到部署了全文检索服务的集群上,从而能够利用文档检索服务的海量数据检索能力实现对文档数据的高效检索。文档数据通过唯一标识用以区分,当将一个文档数据存储到集群上时,如果该文档数据的唯一标识和已有的文档数据的唯一标识相同,则全文检索服务自动将该文档数据和已有的文档数据合并,合并方式包括在已有的文档数据中增加新的字段及其对应的值、修改现有文档数据的相应字字段的值,等等,即实现关联表数据的实时合并。

另外,对于多对一关系和多对多关系的表数据,由于无法实时得文档数据的唯一标识,因此需要借助redis数据库的缓存技术,通过redis缓存数据库的缓存和读取,实现表数据的相关交叉检验,补全文档数据,保证文档数据的完整性。

图5是根据本发明实施例的数据处理系统的结构图。数据处理系统500包括:获取数据模块501、组织数据模块502和存储数据模块503。

获取数据模块501用于实时获取多个表的表数据,并将多个表的表数据分别存储到多个数据单元中,多个表和多个数据单元一一对应。组织数据模块502用于从多个数据单元中获取多个表的表数据,并基于多个表的关联关系组织多个表的表数据,以得到文档数据。存储数据模块503用于将文档数据存储集群上,集群上部署有全文检索服务,文档数据为全文检索服务支持的数据类型,根据全文检索服务提供的接口进行组织和存储。

在一个可选的实施例中,业务系统运行时实时输出数据库操作日志,而获取数据模块则监控数据库操作日志,实时解析数据库操作日志,由此得到多个表的实时表数据。

在另一个可选的实施例中,组织数据模块502从多个数据单元中获取表数据,并根据多个表的关联关系的不同采用不同的方式组织和存储文档数据。例如,当多个表中任意两个表之间的关联关系为一对一关系时,在组织文档数据时,采用关联字段作为唯一标识,并实时地将文档数据存储到集群上;当多个表中第一表和其他表之间是多对一关系时,在组织文档数据时,采用第一表的主键作为唯一标识,并缓存第一表的主键的值和其他表的表数据,当获取第一表的表数据时,如果能够从缓存中获取到其他表的表数据,则将第一表的表数据和其他表的表数据组织成文档数据并存储到集群上,如果不能从缓存中获取到其他表的表数据,则将第一表的表数据组织成文档数据并缓存到集群上,而当获取其他表的表数据时,可以从缓存中获取第一表的主键的值,作为唯一标识组织文档数据,并存储到集群上,全文检索服务处理相应文档数据的合并工作;当多个表中任意两个表之间是多对多关系时,在组织文档数据时,采用由多个表中每个表的主键组成的联合字段作为唯一标识,并缓存每个表的主键的值和每个表的表数据,只有在所有的表数据都完备的情况下,才将组织好的文档数据存储到集群上。

图6是采用相关技术构建本发明实施例的数据处理系统的技术架构图。参考图6所示,基于mysql表产生的binlog日志,通过开源框架canal解析binlog日志,将create、update、delete的数据实时同步解析和贮存到kafka系统中,kafka系统采用不同topic的消息队列存储表数据(topic消息队列对应于上述的数据单元)。加工系统实时订阅从kafka消息,并进行业务逻辑加工处理,实现多个数据流实时关联合并组成es文档,并存储到es集群中,形成实时数据仓库,利用es强大的搜索和分析能力,进行不同维度聚合形成报表指标输出。

综上所述,本发明通过利用分布式索引多用户能力的全文搜索引擎,提供一种将多个数据流实时加工形成实时数据仓库通用宽表的方法,其设计能够支撑与其相关的所有业务数据,其功能独立,能够适应未来业务数据扩展,与其他功能模块耦合度低且解决高并发或大数据量性能瓶颈。

图7是根据本发明另一实施例的执行上述数据处理方法的装置的结构图。图7示出的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围构成任何限制。

参考图7,该装置包括通过总线连接的处理器701、存储器702和输入输出设备703。存储器702包括只读存储器(rom)和随机访问存储器(ram),存储器702内存储有执行系统功能所需的各种计算机指令和数据,处理器701从存储器702中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备包括键盘、鼠标等的输入部分5;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。存储器702还存储有以下的计算机指令以完成本发明实施例的分布式任务管理方法规定的操作:获取多个表的表数据;将所述多个表的表数据分别存储到多个数据单元中,所述多个表和所述多个数据单元一一对应;从所述多个数据单元中获取所述多个表的表数据,并基于所述多个表的关联关系组织所述多个表的表数据,以得到文档数据;以及将所述文档数据存储到集群上,所述集群上部署有全文检索服务,所述文档数据根据全文检索服务提供的接口进行组织和存储。

相应地,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述数据处理方法所规定的操作。

附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用java、c/c++/c#、sql等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。

根据本发明的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过internet连接的多个pc机、pc服务器、刀片机、超级计算机等。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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