CN111125214B - 一种轻量级增量数据同步方法、装置及计算机可读介质 - Google Patents
一种轻量级增量数据同步方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN111125214B CN111125214B CN201911216162.8A CN201911216162A CN111125214B CN 111125214 B CN111125214 B CN 111125214B CN 201911216162 A CN201911216162 A CN 201911216162A CN 111125214 B CN111125214 B CN 111125214B
- Authority
- CN
- China
- Prior art keywords
- incremental data
- data
- synchronization
- incremental
- lightweight
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种轻量级增量数据同步方法、装置及计算机可读介质,涉及数据同步技术领域;该同步方法包括:监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;解析预先配置的同步任务以读取所述增量数据表中的增量数据;根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;本发明通过设置触发器机制获得增量数据,结合自定义同步时间的调度任务,实现数据从源数据库同步到目标数据库,可快速完成小微型系统之间的数据同步,且具有轻量级、依赖性低、部署快的特点。
Description
技术领域
本发明属于数据同步技术领域,更具体地,涉及一种轻量级增量数据同步方法、装置及计算机可读介质。
背景技术
随着科技的发展和进步以及互联网技术在各个领域的广泛应用,各领域系统的数据共享也成为趋势,目前一般采用ETL技术完成不同数据库之间的数据共享与同步;ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
目前数据应用集成领域很多数据同步工具也是层出不穷,例如Oracle、SAP、微软、Informatica,Datastage等数据集成同步软件;其中,Datastage是常见的大型数据集成软件,DataStage的开发环境是基于C/S模式的,通过DataStage Client连接到DataStageServer上进行开发,对机器的要求比较高;而且Datastage是商业软件,最专业的ETL工具,价格不菲,适合大规模的ETL应用,总之部署复杂要求高,费用成本也高,应用起来也不够简便;而小微型系统数据集成不需要复杂的ETL过程,只需简单的数据处理和同步,因此,需要开发一种轻量级的数据同步工具来完成小微型系统的数据同步。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种轻量级增量数据同步方法、装置及计算机可读介质,运用Quartz任务调度框架灵活配置同步任务,通过设置触发器机制获得增量数据,结合自定义同步时间的调度任务,实现数据从源数据库同步到目标数据库,解决了小微型系统的数据同步共享问题。
为实现上述目的,按照本发明的第一个方面,提供了一种轻量级增量数据同步方法,包括以下步骤:
监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;
解析预先配置的同步任务以读取所述增量数据表中的增量数据;
根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步。
优选的,上述轻量级增量数据同步方法,所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;
按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。
优选的,上述轻量级增量数据同步方法,所述同步任务还包括作业编号、执行时间、查询增量数据SQL、目标表主键和目标表修改字段;
通过读取同步任务中的所述查询增量数据SQL来获取增量数据表中的增量数据。
优选的,上述轻量级增量数据同步方法还包括:删除增量数据表中已进行同步的增量数据。
优选的,上述轻量级增量数据同步方法还包括:记录同步过程中的日志数据,生成日志记录。
按照本发明的第二个方面,还提供了一种轻量级增量数据同步装置,包括监听模块、解析模块和同步模块;
所述监听模块用于监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;
所述解析模块用于解析预先配置的同步任务以读取所述增量数据表中的增量数据;
所述同步模块用于根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步。
优选的,上述轻量级增量数据同步装置,所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;
同步模块按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。
优选的,上述轻量级增量数据同步装置,所述同步任务还包括作业编号、执行时间、查询增量数据SQL、目标表主键和目标表修改字段;
解析模块通过读取同步任务中的所述查询增量数据SQL来获取增量数据表中的增量数据。
优选的,上述轻量级增量数据同步装置,所述同步模块还用于在执行成功时删除增量数据表中已进行同步的增量数据,在执行失败时记录异常页面告警。
按照本发明的第三个方面,还提供了一种计算机可读介质,其存储有可由计算机可读介质执行的计算机程序,当所述计算机程序在计算机可读介质上运行时,使得所述计算机可读介质执行上述任一项所述方法的步骤。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明通过数据库触发器机制实时获取增量数据,对现有业务系统没有影响,不用停止联机服务;同步任务可自由配置、字段灵活改变、执行时间灵活配置,可快速完成小微型系统之间的数据同步;采用Java编写,具有轻量级、依赖性低、部署快的特点。
(2)本发明主要针对小微型系统进行数据同步过程的数据量小的应用场景,数据处理简单、使用简便,对服务器性能要求不高;区别于大型系统的数据同步工具的应用场景。
附图说明
图1是本发明实施例提供的一种轻量级增量数据同步方法的流程图;
图2是本发明实施例提供的一种轻量级增量数据同步装置的逻辑框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供的一种轻量级增量数据同步方法及装置,运用Quartz任务调度框架灵活配置同步任务,通过设置触发器机制获得增量数据,结合自定义同步时间的调度任务,实现数据从源数据库同步到目标数据库,解决了小微型系统的数据同步共享问题,;本发明的适用场景如下:
场景一:某系统需要在两个单位部署,A单位是系统的使用者和数据产生者,B单位是上一级单位只需查阅数据,以上场景可用本发明将A单位的数据按规定时间同步到B单位系统数据库。
场景二:A系统和B系统是两个关联的系统,但是数据库相互独立的,B系统需要A系统的部分数据做业务分析。以上场景就可以使用本发明将A系统的部分数据同步到B系统的数据库。
下面通过具体的实施例对本发明提供的轻量级增量数据同步方法及装置作进一步详细说明。
图1是本实施例提供的一种轻量级增量数据同步方法的流程图,参见图1,该同步方法包括以下步骤:
S100:监听源数据库的数据变更事件,获取源数据库中的增量数据并将其插入增量数据表中;
该数据变更事件包括插入数据、删除数据和更新数据,源数据库中包含至少一个源数据表,目标数据库中具有一个与该源数据表对应的目标数据表;通过各监听源数据表中的数据变更事件,当任一源数据表中插入了增量数据后,首先读取该源数据表中的该增量数据并将其存放在建立的增量数据表中;表1是本实施例提供的增量数据表的字段信息;
表1增量数据表字段信息
字段名 | 中文备注 | 类型 |
P_ID | 自增字段 | 数值 |
DEST_TABLE | 目标表名称 | 字符型 |
ACTION_FLAG | 标识 | 字符型 |
ACTION_VALUE | 字段值 | 字符型 |
如表1所示,本实施例按目标数据表的名称、增量数据的标识(Insert、Delete)和字段值记录增量数据,通过dest_table字段区分不同的目标数据表。
S200:解析预先配置的同步任务以读取所述增量数据表中的增量数据;
表2是本实施例提供的同步任务xml的属性信息,本实施例中的同步任务包括作业编号、自定义的任务执行时间、查询增量数据SQL以及目标数据表的名称、字段、主键和修改字段;通过读取同步任务中的查询增量数据SQL来获取增量数据表中的增量数据。
表2同步任务XML属性信息
S300:根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;
按照增量数据表中记录的增量数据的标识、增量数据的字段值以及同步任务xml中的目标表的名称和字段组成得到增量数据的执行语句,根据执行时间按组合得到的执行语句在目标数据库中执行。
比如:获取增量数据的标识:Insert标识和Delete标识;
按标识组合Insert语句和Delete语句在目标端执行,组合见下例:
例1:INSERT INTO table_name(field1,field2,...fieldN)
VALUES(value1,value2,...valueN);
例2:DELETE FROM table_name[WHERE Clause]
步骤400:执行成功则删除已增量数据表中已同步的增量数据,执行失败则记录异常页面告警;
步骤500:记录同步任务执行的关键点日志便于任务跟踪和异常分析。
本实施例提供了一种轻量级增量数据同步的装置,该装置可以采用软件和/或硬件的方式实现,并可集成在电子设备上;具体的,该装置包括监听模块、解析模块和同步模块;
监听模块用于监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;
增量数据表中的字段信息包括自增字段、目标数据表的名称、增量数据的标识和字段值;增量数据的标识包括Insert标识和Delete标识;通过dest_table字段区分不同的目标数据表;本实施例中,监听模块采用基于数据库触发机制的表触发器实现,该表触发器包括INSERT、UPDATE、DELETE三种类型。基于触发器机制获取源数据库表中的增量数据,并为该增量数据设置对应的标识(INSERT、UPDATE、DELETE)进行区分。
解析模块用于解析预先配置的同步任务以读取所述增量数据表中的增量数据;
本实施例中,同步任务包括作业编号、自定义的任务执行时间、查询增量数据SQL以及目标数据表的名称、字段、主键和修改字段;通过读取同步任务中的查询增量数据SQL来读取增量数据表中的增量数据。
同步模块用于根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;
本实施例中,同步模块按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句,根据执行时间按组合得到的执行语句在目标数据库中执行。
执行成功,同步模块删除已增量数据表中已同步的增量数据;同步执行失败,同步模块则记录异常页面告警。
本实施例还提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述轻量级增量数据同步方法的步骤。计算机可读介质的类型包括但不限于SD卡、U盘、固定硬盘、移动硬盘等存储介质。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种轻量级增量数据同步方法,其特征在于,包括以下步骤:
监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;
解析预先配置的同步任务以读取所述增量数据表中的增量数据;
根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;
所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;
按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。
2.如权利要求1所述的轻量级增量数据同步方法,其特征在于,所述同步任务还包括作业编号、执行时间、查询增量数据SQL、目标表主键和目标表修改字段;
通过读取同步任务中的所述查询增量数据SQL来获取增量数据表中的增量数据。
3.如权利要求2所述的轻量级增量数据同步方法,其特征在于,还包括:
执行成功时,删除已增量数据表中已同步的增量数据;执行失败时,记录异常页面告警。
4.如权利要求3所述的轻量级增量数据同步方法,其特征在于,还包括:记录同步过程中的日志数据,生成日志记录。
5.一种轻量级增量数据同步装置,其特征在于,包括监听模块、解析模块和同步模块;
所述监听模块用于监听源数据库的数据变更事件,获取所述源数据库中的增量数据并将其插入增量数据表中;
所述解析模块用于解析预先配置的同步任务以读取所述增量数据表中的增量数据;
所述同步模块用于根据增量数据表和同步任务组合所述增量数据的执行语句,所述执行语句用于在目标数据库中执行所述数据变更事件以实现源数据库与源数据库之间的数据同步;所述增量数据表中包括目标表的名称、增量数据的标识和字段值;所述同步任务包括目标表的名称和字段;
同步模块按照增量数据的标识、目标表的名称、字段和增量数据的字段值组成得到增量数据的执行语句。
6.如权利要求5所述的轻量级增量数据同步装置,其特征在于,所述同步任务还包括作业编号、执行时间、查询增量数据SQL、目标表主键和目标表修改字段;
解析模块通过读取同步任务中的所述查询增量数据SQL来获取增量数据表中的增量数据。
7.如权利要求5所述的轻量级增量数据同步装置,其特征在于,所述同步模块还用于在执行成功时删除增量数据表中已进行同步的增量数据,在执行失败时记录异常页面告警。
8.一种计算机可读介质,其特征在于,其存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911216162.8A CN111125214B (zh) | 2019-12-02 | 2019-12-02 | 一种轻量级增量数据同步方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911216162.8A CN111125214B (zh) | 2019-12-02 | 2019-12-02 | 一种轻量级增量数据同步方法、装置及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125214A CN111125214A (zh) | 2020-05-08 |
CN111125214B true CN111125214B (zh) | 2023-08-25 |
Family
ID=70496905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911216162.8A Active CN111125214B (zh) | 2019-12-02 | 2019-12-02 | 一种轻量级增量数据同步方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125214B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742415A (zh) * | 2020-05-29 | 2021-12-03 | 北京金山云网络技术有限公司 | 增量数据同步方法、装置及电子设备 |
CN111708841B (zh) * | 2020-06-08 | 2024-01-23 | 中国工商银行股份有限公司 | 数据库数据同步方法及装置 |
CN113779048A (zh) * | 2020-06-18 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
CN111858632B (zh) * | 2020-07-22 | 2024-02-20 | 浪潮云信息技术股份公司 | 一种基于NiFi的关系型数据库增量数据的入库方法 |
CN112256666B (zh) * | 2020-09-08 | 2023-06-16 | 山东黄金矿业(莱州)有限公司三山岛金矿 | 一种逻辑增量迁移方法 |
CN112182104A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 一种数据同步方法、装置、设备及存储介质 |
CN112527922B (zh) * | 2020-12-15 | 2023-11-24 | 神州数码信息系统有限公司 | 一种基于不变模型的数据仓库增量加工方法 |
CN112668047A (zh) * | 2020-12-28 | 2021-04-16 | 浪潮云信息技术股份公司 | 基于定时任务的数据增量静态脱敏实现方法及系统 |
CN112948406B (zh) * | 2021-03-01 | 2023-06-13 | 烽火通信科技股份有限公司 | 一种配置变更数据存储和同步的方法、系统和装置 |
CN113486019B (zh) * | 2021-07-27 | 2024-02-23 | 中国银行股份有限公司 | 自动触发对远程多数据库数据实时批量同步方法和装置 |
CN116149969B (zh) * | 2023-04-04 | 2023-06-20 | 湖南中青能科技有限公司 | 一种数据库模型匹配异常监测处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN107885804A (zh) * | 2017-11-02 | 2018-04-06 | 平安科技(深圳)有限公司 | 数据库同步方法、应用服务器及计算机可读存储介质 |
CN108595522A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种增量同步方法、装置及系统 |
CN109960710A (zh) * | 2019-01-16 | 2019-07-02 | 平安科技(深圳)有限公司 | 数据库之间的数据同步方法和系统 |
CN110502585A (zh) * | 2019-08-30 | 2019-11-26 | 山东健康医疗大数据有限公司 | 一种可配置的MySql数据库间数据同步方法 |
-
2019
- 2019-12-02 CN CN201911216162.8A patent/CN111125214B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2891994A1 (en) * | 2013-11-04 | 2015-07-08 | Guangdong Electronics Industry Institute Ltd. | Method for achieving automatic synchronization of multisource heterogeneous data resources |
CN107885804A (zh) * | 2017-11-02 | 2018-04-06 | 平安科技(深圳)有限公司 | 数据库同步方法、应用服务器及计算机可读存储介质 |
CN108595522A (zh) * | 2018-03-27 | 2018-09-28 | 北京明朝万达科技股份有限公司 | 一种增量同步方法、装置及系统 |
CN109960710A (zh) * | 2019-01-16 | 2019-07-02 | 平安科技(深圳)有限公司 | 数据库之间的数据同步方法和系统 |
CN110502585A (zh) * | 2019-08-30 | 2019-11-26 | 山东健康医疗大数据有限公司 | 一种可配置的MySql数据库间数据同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111125214A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111125214B (zh) | 一种轻量级增量数据同步方法、装置及计算机可读介质 | |
CN110046168B (zh) | 一种增量数据一致性实现方法及装置 | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
US10339038B1 (en) | Method and system for generating production data pattern driven test data | |
US9110967B2 (en) | Data lineage in data warehousing environments | |
US7337176B1 (en) | Data loading tool for loading a database | |
US10671671B2 (en) | Supporting tuples in log-based representations of graph databases | |
CN111400408A (zh) | 数据同步方法、装置、设备及存储介质 | |
US9378226B1 (en) | Method and system for a user-defined field type | |
EP3095047B1 (en) | Database key identification | |
CN109408589B (zh) | 数据同步方法及装置 | |
CN109388523B (zh) | 一种基于二进制日志文件恢复MySQL数据库的方法 | |
US8214376B1 (en) | Techniques for global single instance segment-based indexing for backup data | |
CN111259004B (zh) | 一种存储引擎中数据索引的方法以及相关装置 | |
JP2011013923A (ja) | 属性付きキー・バリュー・ストアによるデータベース・システム | |
US7213039B2 (en) | Synchronizing differing data formats | |
CN111831755B (zh) | 一种跨数据库数据同步方法、系统、介质及设备 | |
CA2792146A1 (en) | System and method for subject identification from free format data sources | |
JP2009129289A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP4989761B2 (ja) | イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法及びイベント履歴記憶プログラム | |
US9047354B2 (en) | Statement categorization and normalization | |
EP3635580A1 (en) | Functional equivalence of tuples and edges in graph databases | |
CN107291938A (zh) | 订单查询系统及方法 | |
CN111259082B (zh) | 大数据环境下实现全量数据同步的方法 | |
CN117909392B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |