CN101587477B - Etl模块自动维护方法及系统 - Google Patents
Etl模块自动维护方法及系统 Download PDFInfo
- Publication number
- CN101587477B CN101587477B CN2008100984522A CN200810098452A CN101587477B CN 101587477 B CN101587477 B CN 101587477B CN 2008100984522 A CN2008100984522 A CN 2008100984522A CN 200810098452 A CN200810098452 A CN 200810098452A CN 101587477 B CN101587477 B CN 101587477B
- Authority
- CN
- China
- Prior art keywords
- module
- etl module
- etl
- earliest
- makeing mistakes
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种ETL模块自动维护方法及系统,通过在数据库内设置两维表,其第一维表用以保存每一ETL模块的运行情况,该运行情况至少需要包括每一出错ETL模块的出错信息及出错时间;其第二维表用以保存能够运行ETL模块所必需的运行数据。申请人定期检测第一维表,找出当前最早出错的ETL模块,并利用第二维表内的运行数据重新运行该ETL模块来完成自动维护ETL模块。本发明能够自动并及时维护ETL模块,不仅节省了人力资源,降低了维护成本,而且也使得技术人员减轻了维护的压力。
Description
技术领域
本发明涉及数据库领域,特别是涉及对ETL模块自动进行维护的方法及ETL模块自动维护系统。
背景技术
数据仓库是在企业管理和决策中面向主题、集成的、与时间相关的、不可修改的数据集合。也就是说,对所有的应用系统,例如客户关系管理(CRM,Customer Relationship Management)系统、财务系统等,按主题进行集成,并记录整个历史变化情况。随着企业信息化程度的不断提高,企业内部积累了大量的业务数据,数据仓库用于对这些相互独立、分散的数据进行统一处理,以满足企业高层决策与分析需要。
参照图1,其为数据仓库系统的体系结构框图。整个数据仓库系统是一个包含四个层次的体系结构,包括数据源101、数据仓库102、联机分析处理(OLAP,on-line analytical processing)系统103及前端工具104,其中:
数据源101,是数据仓库系统的基础,通常包括企业内部信息和外部信息。内部信息包括各种业务处理数据和各类文档数据,外部信息包括各类法律法规、市场信息和竞争对手的信息等。例如,CRM系统,财务系统。
数据仓库102,是以数据表的结构存储所述数据源101的数据,每个数据表对应一个数据对象,一个数据源可以对应多个数据对像。
OLAP系统103,用于对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。
前端工具104,主要包括各种报表工具,查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库的应用开发工具,实现对数据仓库102的访问。其中,数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。
数据仓库的ETL模块是对数据抽取(extract)、转换(Transform)、装载(Load)的过程,是对OLAP系统开发的过程。其中,所述数据抽取是指从源系统中提取数据;所述数据转换是指开发者将提取的数据,按照业务需要转换为目标数据结构,并实现汇总;所述数据装载是指加载经转换和汇总的数据到目标数据仓库中。每一ETL模块用于完成对数据的一项处理,如上述提及的数据抽取、转换、装载,并对处理结果以数据表的形式保存在数据仓
库中,以提供企业管理和决策中使用。
也就是说,ETL模块是一预先编好程序。大多数ETL模块是定周期执行的,如每天、每周或每月。在一些大型的OLAP系统中,服务器在同一时间点通常要执行几个ETL模块,而每一ETL模块执行时都需要占用相应的系统资源,如CPU、内存资源。随着公司业务的不断扩大和市场的快速变化,带来分析需求数据的高速增长,所产生的数据源和需分析的数据对象也不断增长,也使得设置的ETL模块也不断增加,这就造成了服务器在同一时间点需要执行的ETL模块可能会增加,由此导致很多ETL模块由于没有相应的资源而导致异常中断的现象出现。还有,现有的OLAP系统通常是运用Oracle数据库进行开发的,Oracle数据库等数据库开发软件的不断升级也会导致系统不稳定,由此造成ETL模块运行过程中出现异常情况导致执行中断。
然而,ETL模块执行后得到的数据表,是公司或企业需要及时看到的数据表,以便能通过该些数据表中的数据作出下一步的决策和分析。因此,目前对ETL模块的维护是直接通知相应的技术人员,由人工进行维护。这种维护存在着很多的问题:
服务器根据每一ETL模块的预先设定来执行ETL模块,在24小时内很有可能都有ETL模块在运行,任何时刻都有可能出现报错。这就使得公司或企业采用24小时技术人员轮岗制或发现出错信息后通知技术人员来修理ETL模块的出错。采用24小时技术人员轮岗制不仅增加人工成本,而且对于ETL模块的错误能否进行能够进行维护及维护的时间与技术人员的水平也极有关系,而采用后一种方式来进行ETL模块的维护存在很多的不确定性,技术人员为了能尽快地维护出错模块,对技术人员有很多的不便,同时,ETL模块维护的时间很容易出现延迟,且延迟的时间、是否能维护存在着诸多的不确定性。即,ETL模块维护存在维护时间长、不确定性大的技术问题。
发明内容
针对上述缺陷,本发明的目的在于提供一种ETL模块自动维护方法以解决现有技术中不能及时对ETL模块进行维护以及维护过程中人力资源浪费严重的问题。
本发明的另一个目的在于提供一种ETL模块自动维护装置,以解决现有技术中不能及时对ETL模块进行维护以及维护过程中人力资源浪费严重的问题。
为了达到上述目的,本发明提出一种ETL模块自动维护方法,包括以下步骤:
(1)预先设定将每一ETL模块运行情况保存在第一维表中,所述第一维表用于保存每一ETL模块的运行情况,其至少包括每一出错ETL模块的出错信息和出错时间;
(2)每一ETL模块在运行之前,将至少包括模块名、运行参数和用户名的ETL模块运行数据保存在第二维表中,所述第二维表用于保存能够运行ETL模块所必需的运行数据;
(3)在预先设定的时间周期内检测所述第一维表,找到当前最早出错的ETL模块;
(4)如果该当前最早出错的ETL模块的出错信息属于预先设定的非逻辑错误中的一种错误,则进行步骤(5);
(5)在第二维表中找到该当前最早出错的ETL模块对应的运行数据,通过用户名和模块名在数据库层找到预先存储的对应的模块,利用运行参数重新启动该当前最早出错的ETL模块进行运行。
本发明还提供一种ETL模块自动维护系统,包括:
第一单元,用以预先设定将每一ETL模块运行情况保存在第一维表中;所述第一维表用于保存每一ETL模块的运行情况,其至少包括每一出错ETL模块的出错信息和出错时间;
第二单元,用以在每一ETL模块运行之前,将至少包括模块名、运行参数和用户名的ETL模块运行数据保存在第二维表中,所述第二维表用于保存能够运行ETL模块所必需的运行数据;
第三单元,用以在预先设定的时间周期内检测所述第一维表,找到当前最早出错的ETL模块;
第四单元,用以在该当前最早出错的ETL模块的出错信息属于预先设定的非逻辑错误中的一种错误时,在第二维表中找到该当前最早出错的ETL模块对应的运行数据,通过用户名和模块名在数据库层找到预先存储的对应的模块,利用运行参数重新启动该当前最早出错的ETL模块进行运行。与现有技术相比,本发明具有以下技术效果:通过自动校验维表检测出错ETL模块,并由处理器单元自动完成出错模块的重启工作,可以及时地对ETL模块进行维护,同时也避免了由于维护人员素质地参差不齐导致的种种失误。更重要的是本发明极大地节约了人力资源,降低了维护成本。
附图说明
图1为现有技术中数据仓库系统的体系结构框图;
图2为本发明的一种ETL模块自动维护方法的流程图;
图3为本发明的一种ETL模块自动维护系统的结构示意图。
具体实施方式
以下结合附图,具体说明本发明。
申请人在经过无数的实践发现,ETL模块出错主要是可以分为以下三种错误:第一,是ETL模块的技术人员在编写程序的逻辑上存在问题,引起ETL模块运行时出错;第二,是系统资源问题导致的错误;第三,是数据库开发软件升级等带来系统不稳定而引出的错误。又由于现有的ETL模块在正式上线之前,都需要经过严格的逻辑测试,由逻辑问题导致的错误非常少。大量的ETL模块出错是第二种和第三种原因造成的。技术人员发现ETL模块出错后,通常是手工找到哪个ETL模块出错,然后将该ETL模块进行重启即可。但是为了能使发生ETL模块出错时尽快地消除错误,则使得维护的技术人员24个小时待命,这种人为的手工维护费时费力且容易出错。
为此,本发明提供了一种ETL模块自动维护方法。请参阅图2,其包括以下步骤:
S110:预先设定将每一ETL模块运行情况保存在第一维表中,所述第一维表用于保存每一ETL模块的运行情况,其至少包括每一出错ETL模块的出错信息和出错时间。
申请人在运行ETL模块时,将每一ETL模块的运行情况都保存在第一维表中。每一ETL模块通常都是定周期运行的。因此,第一维表中的记录就是其中运行ETL模块的运行情况。第一维表中的记录表可以按照ETL模块运行的开始时间或运行出错时间顺序进行保存。表1,其为第一维表的一种示例表。
表1
该示例中,第一维表包括每个ETL模块的运行开始时间(BEGIN_TIME)、运行出错时间(ERROR_END_TIME)、运行情况。如果该ETL模块在运行过程中发生错误,则运行情况中还包括出错时间(ERROR_END_TIME)、出错信息(ERROR_CODE)、出错说明(ERROR_MSG)等。
在本发明中,ETL模块是基于Oracle数据库进行开发的,Oracle数据库自带有出错代码及对应的出错信息,当ETL模块运行出错时,Oracle数据库会返回出错代码。技术人员从返回的出错代码中即可获知对应的出错信息。
系统按照每一ETL模块的设定来运行ETL模块,在每一ETL模块运行完毕后,将运行情况返回至第一维表中。
S120:每一ETL模块在运行之前,将至少包括模块名、运行参数和用户名的ETL模块运行数据保存在第二维表中,所述第二维表用于保存能够运行ETL模块所必需的运行数据。
每一ETL模块保存在数据库的数据库层,比如,可存储在OLAP系统中。当ETL模块要运行时,每一ETL模块需要模块所必需的运行数据才能运行。该运行数据可以包括各模块的用户名、模块名和运行所需的参数。请参阅表2,其为第二维表的示例表。
表2
其中,SCHEMA为用户名、PROCEDURE_NAME为模块名,PARAMETER为参数。
S130:在预先设定的时间周期内检测所述第一维表,找到当前最早出错的ETL模块。
比如,本发明所采用的操作系统为Linux时,可以在Crontab中预先设定一时间来检查第一维表。设定的时间可以按照具体的运行情况设定,本实例中10分钟为例。
第一维表中,可以将每次出错ETL模块维护后将该记录从第一维表中删除,这样,找到当前最早出错的ETL模块记录就是第一维表中最靠前的出错ETL模块记录。
第一维表中,也可以设置一运行标志符,查找当前最早出错的ETL模块就是找到该标志符后最靠前的出错ETL模块记录,处理该记录后,将该标志符往下移动到该记录上。
上述公开的找到当前最早出错的ETL模块就是本实例的几种实施方式,但并不是用于限定本发明。
S140:如果该当前最早出错的ETL模块的出错信息属于预先设定的非逻辑错误中的一种错误,则进行步骤S150。
申请人预先将ETL模块的出错信息分为两类:逻辑错误和非逻辑错误。本实施例中将比较出错error_msg字段,如果代号属于
ORA-30036:unable to extend segment by%s in undo tablespace%s
(无法扩展undo表空间)
ORA-01652:unable to extend temp segment by 64in tablespace TEMP3
(无法扩展TEMP3这个临时表空间)
ORA-12805:parallel query server died unexpectedly
(并行查询服务器突然死机)
ORA-01089:immediate shutdown in progress-no operations are permitted
(当前查询数据库处于关机状态,不允许任何操作)
ORA-01157:cannot identify/lock data file-see DBWR trace file
(不能识别/锁定数据文件-参见DBWR文件路径)
ORA-12801:error signaled in parallel query server P007,instance dw04:dwdb4
(在并行查询服务器p007上的错误信号,例如dw04:dwdb4)
ORA-03113:end-of-file on communication channel
(在通信信道结束文件)
ORA-02068:following severe error from LNK_DB 1_STB
(以下服务器出错LNK_DB1_STB)
ORA-01033:ORACLE initialization or shutdown in p
(ORACLE正在被初始化或关闭)
ORA-02063:preceding 2 lines from LNK_CRM
(基于LNK_CRM前两行)
ORA-00600:intemal error code,arguments
(内部错误码,(参数))
中的一种,即认为是该ETL模块出错就是为非逻辑错误中的一种。该非逻辑错误可以根据不同的数据库软件来进行设定的。
S150:在第二维表中找到该当前最早出错的ETL模块对应的运行数据,通过用户名和模块名在数据库层找到预先存储的对应的模块,利用运行参数重新启动该当前最早出错的ETL模块进行运行。
从第二维表中取出该模块的模块名,参数,用户名,数据库密码。运行sqlplus数据库用户名/数据库密码(如sqlplus tbods/odscode)进入数据库层,之后运行exec模块用户名.模块名称(参数)(如exectbods.cart_metric(null))并重新启动该模块。如果模块重启还出错,则会放到预先设定的时间后(本实例中是10分钟)后再处理一次,直到那时有足够的系统资源,处理完后,把第一维表中的出错信息移到第三维表中做个备份。
也就是说,不管ETL模块运行是否成功,都会将该ETL模块在第一维表中对应的运行记录,进行删除,并且将该ETL模块重启后运行的情况添加到第一维表中。如果ETL模块运行还未成功,则按照上述的维护方法,还可以有第二次、第三次等的运行机会。ETL模块在第一维表中对应的运行记录在删除之前,备份到第三维表中。第三维表保存每一经维护的ETL模块的运行情况,以便后续技术人员能根据其第三维表保存的信息进行数据分析、汇总,以便能使技术人员对ETL模块的运行作出更好的优化。
另外,ETL模块在预先设定的时间(如10分钟)后被重新启动,也可以记录重新启动的次数,当其启动的次数达到一预先设定值时,停止启动。
请参见图3,其为本发明的一种ETL模块自动维护系统的结构示意图。该系统包括数据库301及处理单元302。其中数据库301可以为Oracle数据库,并且其至少具有一数据库层,所述数据库层用以存储需要运行的所有ETL模块以及运行ETL模块后所得到的运行结果。所述的第一维表则用以保存每一ETL模块的运行情况,该运行情况至少需要包括每一ETL模块的出错信息及出错时间。所述的第二维表则用以保存能够运行ETL模块所必需的运行数据,如ETL模块的模块名、参数、用户名和数据库密码等。
该ETL模块自动维护系统的处理器单元302与数据库进行通信,在该系统工作时,所述处理器单元302先在预先设定的时间周期内检测所述的第一维表,该时间周期是可以自由设定的,比如10分钟。当处理器单元302检测到当前最早出错的ETL模块后,判断该ETL模块的出错信息是否属于预先保存的非逻辑错误中的一种,如果是的话,则在上述第二维表中找到该ETL模块,同时利用第二维表内保存的该ETL模块的运行参数、用户名和数据库密码来重新启动该ETL模块。当ETL模块维护结束后,处理器单元302可以将该次维护的相关信息储存至数据库301中的第三维表内。
以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。
Claims (6)
1.一种ETL模块自动维护方法,其特征在于,包括以下步骤:
(1)预先设定将每一ETL模块运行情况保存在第一维表中,所述第一维表用于保存每一ETL模块的运行情况,其至少包括每一出错ETL模块的出错信息和出错时间;
(2)每一ETL模块在运行之前,将至少包括模块名、运行参数和用户名的ETL模块运行数据保存在第二维表中,所述第二维表用于保存能够运行ETL模块所必需的运行数据;
(3)在预先设定的时间周期内检测所述第一维表,找到当前最早出错的ETL模块;
(4)如果该当前最早出错的ETL模块的出错信息属于预先设定的非逻辑错误中的一种错误,则进行步骤(5);
(5)在第二维表中找到该当前最早出错的ETL模块对应的运行数据,通过用户名和模块名在数据库层找到预先存储的对应的模块,利用运行参数重新启动该当前最早出错的ETL模块进行运行。
2.如权利要求1所述的方法,其特征在于,步骤(5)还包括步骤:
将该当前最早出错的ETL模块在第一维表中对应的运行记录,进行删除,并且将ETL模块重新启动后的运行结果添加到第一维表中。
3.如权利要求2所述的方法,其特征在于,步骤(5)还包括,将ETL模块在第一维表中对应的运行记录在删除之前,备份到第三维表中。
4.如权利要求1所述的方法,其特征在于,还包括:记录重新启动的次数,当其启动的次数达到一预先设定值时,停止启动。
5.如权利要求1所述的方法,其特征在于,
步骤(3)中通过找到运行标记符之后的最早出错的ETL模块来找到当前最早出错的ETL模块;
步骤(5)还包括:将预先设定的运行标记符标记至该第一维表中对应的运行记录,并将当前最早出错的ETL模决运行结果添加到第一维表中。
6.一种ETL模块自动维护系统,其特征在于,包括:
第一单元,用以预先设定将每一ETL模块运行情况保存在第一维表中;所述第一维表用于保存每一ETL模块的运行情况,其至少包括每一出错ETL模块的出错信息和出错时间;
第二单元,用以在每一ETL模块运行之前,将至少包括模块名、运行参数和用户名的ETL模块运行数据保存在第二维表中,所述第二维表用于保存能够运行ETL模块所必需的运行数据;
第三单元,用以在预先设定的时间周期内检测所述第一维表,找到当前最早出错的ETL模块;
第四单元,用以在该当前最早出错的ETL模块的出错信息属于预先设定的非逻辑错误中的一种错误时,在第二维表中找到该当前最早出错的ETL模块对应的运行数据,通过用户名和模块名在数据库层找到预先存储的对应的模块,利用运行参数重新启动该当前最早出错的ETL模块进行运行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100984522A CN101587477B (zh) | 2008-05-23 | 2008-05-23 | Etl模块自动维护方法及系统 |
HK10104604.8A HK1137252A1 (en) | 2008-05-23 | 2010-05-11 | Method and system for automatically maintaining etl modules etl |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100984522A CN101587477B (zh) | 2008-05-23 | 2008-05-23 | Etl模块自动维护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587477A CN101587477A (zh) | 2009-11-25 |
CN101587477B true CN101587477B (zh) | 2012-10-31 |
Family
ID=41371727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100984522A Active CN101587477B (zh) | 2008-05-23 | 2008-05-23 | Etl模块自动维护方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101587477B (zh) |
HK (1) | HK1137252A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096685B (zh) * | 2009-12-11 | 2013-04-17 | 阿里巴巴集团控股有限公司 | 分布式数据同步到数据仓库的方法及装置 |
CN104156343B (zh) * | 2014-08-20 | 2017-05-10 | 北京国双科技有限公司 | 数据仓库中的乱码处理方法及装置 |
CN104298773B (zh) * | 2014-10-30 | 2018-01-09 | 北京思特奇信息技术股份有限公司 | 一种etl作业自动切库系统及方法 |
CN105760383B (zh) * | 2014-12-16 | 2019-06-11 | 阿里巴巴集团控股有限公司 | 一种etl任务中指标变更的检测方法和装置 |
CN105808619B (zh) | 2014-12-31 | 2019-08-06 | 华为技术有限公司 | 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置 |
PL233157B1 (pl) * | 2017-10-20 | 2019-09-30 | Politechnika Slaska | Sposób ekstrakcji i transformacji strumieniowych danych pomiarowych wykorzystujący obliczenia równoległe |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042746A (zh) * | 2006-03-21 | 2007-09-26 | 上海浦东国际集装箱码头有限公司 | 基于数据仓库的集装箱码头智能化报表及方法 |
CN201021997Y (zh) * | 2007-03-09 | 2008-02-13 | 福建富士通信息软件有限公司 | 数据仓库与经营分析装置 |
-
2008
- 2008-05-23 CN CN2008100984522A patent/CN101587477B/zh active Active
-
2010
- 2010-05-11 HK HK10104604.8A patent/HK1137252A1/xx unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042746A (zh) * | 2006-03-21 | 2007-09-26 | 上海浦东国际集装箱码头有限公司 | 基于数据仓库的集装箱码头智能化报表及方法 |
CN201021997Y (zh) * | 2007-03-09 | 2008-02-13 | 福建富士通信息软件有限公司 | 数据仓库与经营分析装置 |
Non-Patent Citations (2)
Title |
---|
吴飞,邢桂芬,邢玉萍.基于本体的ETL设计研究.《计算机工程与设计》.2007,第28卷(第7期),1517-1519,1571. * |
许威.同步/异步ETL架构的比较.《中国金融电脑》.2007,(第4期),72-76. * |
Also Published As
Publication number | Publication date |
---|---|
CN101587477A (zh) | 2009-11-25 |
HK1137252A1 (en) | 2010-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587477B (zh) | Etl模块自动维护方法及系统 | |
US10635656B1 (en) | Extract, transform, and load application complexity management framework | |
US7181461B2 (en) | System and method for real time statistics collection for use in the automatic management of a database system | |
US9201738B2 (en) | Method, computer readable storage medium and computer system for obtaining snapshots of data | |
US20190294481A1 (en) | Endpoint process state collector | |
CN106570086B (zh) | 数据迁移系统及数据迁移方法 | |
US8775412B2 (en) | Method and system for a self-healing query access plan | |
US7099897B2 (en) | System and method for discriminatory replaying of log files during tablespace recovery in a database management system | |
US20090240711A1 (en) | Method and apparatus for enhancing performance of database and environment thereof | |
US6389430B1 (en) | Real-time database object statistics collection | |
US20180032567A1 (en) | Method and device for processing data blocks in a distributed database | |
CN104375928A (zh) | 异常日志管理方法及系统 | |
US8131796B2 (en) | Recoverable return code tracking and notification for autonomic systems | |
US20210334281A1 (en) | Join pattern agnostic aggregate computation in database query operations | |
CN101676900A (zh) | 提高目标数据准确性的数据清洗方法及清洗系统 | |
CN118331962A (zh) | 基于时序表的数据处理方法、设备、存储介质及数据库 | |
CN102521385A (zh) | 一种对数据库系统表设置强制访问控制的方法 | |
CN117009836A (zh) | 一种基于无监督学习的容器pod风险检测方法及系统 | |
CN116168462A (zh) | 基于智能巡检设备的安全隐患识别方法、装置和设备 | |
CN116089394A (zh) | 数据库的数据回滚方法、存储介质与设备 | |
CN108920256A (zh) | 检核任务执行方法及装置 | |
CN117290145B (zh) | 一种基于大数据的计算机设备管理系统及方法 | |
CN116991806B (zh) | 一种基于空间数据的土壤数据自动叠加分析方法 | |
CN115794574A (zh) | 多种平台参数比对的方法、系统、终端设备及存储介质 | |
CN116150286A (zh) | 数据血缘解析方法、装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1137252 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1137252 Country of ref document: HK |