CN105808746A - 一种基于Hadoop体系的关系型大数据无缝接入方法及系统 - Google Patents

一种基于Hadoop体系的关系型大数据无缝接入方法及系统 Download PDF

Info

Publication number
CN105808746A
CN105808746A CN201610141867.8A CN201610141867A CN105808746A CN 105808746 A CN105808746 A CN 105808746A CN 201610141867 A CN201610141867 A CN 201610141867A CN 105808746 A CN105808746 A CN 105808746A
Authority
CN
China
Prior art keywords
operator
task
sub
father
mapreduce
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
Application number
CN201610141867.8A
Other languages
English (en)
Inventor
向小佳
赵晓芳
杨訸
刘洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201610141867.8A priority Critical patent/CN105808746A/zh
Publication of CN105808746A publication Critical patent/CN105808746A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出基于Hadoop体系的关系型大数据无缝接入方法及系统,该方法包括将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在SQOOP算子当中;通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;根据所述处理算子树中各节点的shuffle key及父节点与子节点之间的关系,进行任务合并。

Description

一种基于Hadoop体系的关系型大数据无缝接入方法及系统
技术领域
本发明涉及大数据存储与计算平台技术领域,特别涉及一种基于Hadoop体系的关系型大数据无缝接入方法及系统。
背景技术
随着大数据时代的到来,数据呈爆炸式增长,种类也越来越多。为应对海量数据低成本、可扩展、高可靠存储及快速处理的挑战,产业界、学术界掀起大数据处理的浪潮,典型技术代表是Hadoop生态系统。Hadoop实现了分布式文件系统HDFS,以及MapReduce编程模型,为大数据处理提供了存储与计算平台,进而在其上演化出了挖掘工具Hive,提供类SQL查询,简化了MapReduce编程,然而,由于技术体系的不同,大数据处理技术是应对当前数据爆炸的新形势而发展起来的体系,与原有的沿袭关系型数据库管理技术的体系完全不同,大量关系型数据库中的遗留(Legacy)数据在新技术浪潮中没有得到充分利用,形成了信息孤岛,浪费了原有的投资。
就这一问题,目前出现了Apache的Sqoop(Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中)和淘宝的DataX,DataX允许在异构的数据库/文件系统之间传输数据,传输过程不落地,全部位于内存中,以DataX为核心进行数据交换。Sqoop允许在关系型数据库与HDFS之间以MapReduceJob的方式交换数据,可以在多台机器上同时导入,而DataX只能在一台机器上进行导入,所以在处理大数据时Sqoop较快,而处理小规模数据时,DataX较方便。虽然Sqoop与DataX都提供了关系数据库的数据提取方式,但没有与上层大数据处理无缝对接与优化。
发明内容
针对现有技术的不足,本发明提出基于Hadoop体系的关系型大数据无缝接入方法及系统。
本发明提出一种基于Hadoop体系的关系型大数据无缝接入方法,包括:
步骤1,将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;
步骤2,将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在Sqoop算子当中;
步骤3,若将外部数据源导入到所述Hadoop体系中,则将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,若从所述Hadoop体系中将内部数据源导出,则将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;
步骤4,根据所述处理算子树中各节点的shufflekey及父节点与子节点之间的关系,进行任务合并。
所述步骤3中若将外部数据源导入到所述Hadoop体系中的步骤包括:步骤201,基于Hadoop平台,在MapReduce任务启动前,初始化与外部数据源相关的conf变量,将外部数据源相关的jar包加入到tmpjars中、将InputFormat初始化;
步骤202,在获取getSplits阶段,如果识别到MapReduce任务读取的表名与外部数据源的表名相同,则执行步骤203,否则执行步骤206;
步骤203,启动Sqoop对应的InputFormat,获得相应的分块,将所述分块加入到getSplits所返回的split数组中;
步骤204,在获取记录读入器阶段,根据所述分块的类型,识别出外部数据源读取的分块,设置HADOOPMAPFILENAME与IOContext为所读入的外部表表名;
步骤205,对HADOOPMAPFILENAME与IOContext的内容进行识别,如果识别到表名与输入算子TableScanOperator所读的表名或转换后的TableScanOperator所读的表名相同,则将该TableScanOperator作为Map任务算子MapOperator的子算子;
步骤206,如果存在读本地表,启动hive自带的InputFormat获得分布式文件系统HDFS对应的分块,加入到getSplits所返回的split数组中,如果不存在,则执行步骤209;
步骤207,根据分块的类型,识别出本地的分块,自动置HADOOPMAPFILENAME与IOContext为输入路径;
步骤208,对HADOOPMAPFILENAME与IOContext的内容进行识别,如果识别到路径与TableScanOperator所读的路径相同,就将TableScanOperator作为MapOperator的子算子;
步骤209,执行HQL的查询任务。
所述步骤3中若从所述Hadoop体系中将内部数据源导出的步骤包括:步骤301,在最后一个MapReduce任务执行前,执行初始化与外部源相关的conf变量,将与外部数据源相关的jar包加入到tmpjars中,更改OutputFormat为ExportOutputFormat,将OutputFormat初始化;
步骤302,找到最后一个执行的MapReduce任务,MapReduce任务的输出即外部数据源的输入,在最后一个输出算子FileSinkOperator处做标记;
步骤303,对于做了标记的FileSinkOperator,存入分布式文件系统HDFS,同时存入OutputFormat,然后OutputFormat将做了标记的FileSinkOperator存入外部数据库。
所述步骤4包括:在所述处理算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,则将两个算子相对应的任务进行合并。
所述步骤4还包括若所述处理算子树中,存在子算子的多个父算子与子算子的shufflekey相同,则将父算子相对应的任务进行合并,将合并后的任务与所述子算子相对应的任务进行合并;子算子只有一个父算子,子算子相对应的任务中存在来自父算子相对应的任务的表,其余表来自大数据系统自有分布式存储中的文件,则将子算子相对应的任务与父算子相对应的任务进行合并;当子算子相对应的任务执行aggregation时,此时子算子只有一个父算子,则子算子相对应的任务与父算子相对应的任务进行合并。
所述步骤4还包括,存在子算子的多个父算子,其中只有一个父算子与子算子的shufflekey相同,则将与子算子的shufflekey相同的父算子相对应的任务与子算子相对应的任务进行合并。
本发明还提出一种基于Hadoop体系的关系型大数据无缝接入系统,包括:
生成抽象语法树模块,用于将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;
添加Sqoop算子模块,用于将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在SQOOP算子当中;
导入导出数据源模块,用于若将外部数据源导入到所述Hadoop体系中,则将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,若从所述Hadoop体系中将内部数据源导出,则将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;
合并模块,用于根据所述处理算子树中各节点的shufflekey及父节点与子节点之间的关系,进行任务合并。
所述合并模块包括:在所述处理算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,则将两个算子相对应的任务进行合并。
所述合并模块还包括若所述处理算子树中,存在子算子的多个父算子与子算子的shufflekey相同,则将父算子相对应的任务进行合并,将合并后的任务与所述子算子相对应的任务进行合并;子算子只有一个父算子,子算子相对应的任务中存在来自父算子相对应的任务的表,其余表来自大数据系统自有分布式存储中的文件,则将子算子相对应的任务与父算子相对应的任务进行合并;当子算子相对应的任务执行aggregation时,此时子算子只有一个父算子,则子算子相对应的任务与父算子相对应的任务进行合并。
所述合并模块还包括,存在子算子的多个父算子,其中只有一个父算子与子算子的shufflekey相同,则将与子算子的shufflekey相同的父算子相对应的任务与子算子相对应的任务进行合并。
由以上方案可知,本发明的优点在于:
本发明实例在hive的基础上提出并设计了模块化的大数据生态系统中的关系型数据库接入层,在Sqoop单一功能的基础上,将Sqoop、Hive、Hadoop集成为一个大系统,使之能够无缝集成关系数据源;同时本发明实例通过扩充hive的ANTLR语法解析模块,加入Sqoop算子(本发明中算子为MapReduce框架下IO与计算任务的逻辑抽象,其在物理层面对应具体的MapReduceIO或计算单元),通过增加多数据源识别模块,提供外部遗留关系数据源的自主发现与多种导入、导出机制,节省了用户的旧有数据资源投资;进而,在类SQL工作流的抽象层面,借助算子树分析,本发明实例实现了遗留关系大数据处理的优化,即面向外部数据源实现了大数据查询的优化,发明实例原型系统的实验表明,上述关系大数据无缝接入与优化技术能够提高遗留数据的整合度和处理效率。
附图说明
图1是本发明实施例的系统整体架构图;
图2是本发明实施例中抽象语法树图;
图3是本发明实施例中查询语句连接操作的工作过程图;
图4是本发明实施例中关系数据无缝接入的三种导入方式图;
图5是是本发明实施例中关系数据无缝接入的导出方式图。
具体实施方式
首先对本发明中出现的名词进行解释,如下所示:
Hadoop:一种开源大数据处理系统及相应的生态环境,本文所述的发明应用于该生态环境。
HDFS:hadoop生态环境中的分布式存储文件系统。
Sqoop:一种大数据查询处理算子树中的算子名,同名开源软件Sqoop用来在关系数据库和分布式文件系统间进行数据交换。
MapReduce:一种大数据计算框架,在Hadoop中有具体实现。
ShuffleKey:洗牌键,一种数据流处理过程中的排序关键字。
conf:配置。
jar:一种java语言的函数库文件。
tmpjars:提交任务时一起打包的jar文件集合。
InputFormat:对大数据处理任务输入数据格式进行描述的类。
OutputFormat:对大数据处理任务输出数据格式进行描述的类。
getSplits:在MapReduce的Hadoop实现中,用来切分数据、获取数据分片(split)的阶段。
getRecordReader:在MapReduce的Hadoop实现中,用来根据数据分片生成记录读入器的函数。
HADOOPMAPFILENAME、IOContext:Sqoop流程中用来交换的外部关系数据库相关配置信息。
TableScanOperator:输入算子,用于从外部表读入关系数据。
MapOperator:执行Map任务的算子。
FileSinkOperator:执行结果输出的算子。
ReduceSinkOperator:Reduce结果输出算子。
aggregation:聚合类任务,例如Count、Sum等。
ANTLR:一个基于Java开发的功能强大的语言识别工具。
CLI:命令行。
ThriftServer:ApacheThrift是跨语言服务访问框架,最早由Facebook开发,贡献给了Apache。
WebGUI:基于网络的图形用户界面。
join:连接任务,传统数据库中的常用任务之一,通过键值匹配来生成记录。
本发明实施例基于开源工具Sqoop设计并实现了模块化的大数据生态系统中的关系数据库接入层,有机结合Sqoop、Hive、Hadoop,扩展Hadoop生态平台操控遗留关系型大数据的能力;扩充HQL(开源云仓库Hive的类SQL语法)语法的ANTLR解析模块,加入Sqoop算子,执行层面对应增加了关系型数据源发现与多种导入、导出机制;进而,结合算子树,提出遗留关系大数据处理的优化算法,实现大数据查询优化,经优化的遗留关系大数据HQL查询能够提炼多次操作之间的相关性,充分利用缓存,提高了处理速度,节省了导入时间;
本发明方法的具体步骤如下所示:
步骤11,数据分析处理请求通过三种接口:CLI命令行方式、ThriftServer方式、webGUI方式提交;
步骤12,扩充HQL(类SQL)语法的ANTLR解析模块,加入Sqoop算子,为MapReduce框架下的关系型大数据源导入导出任务的逻辑抽象,执行层面则对应增加了关系型数据源发现与多种导入、导出机制;HQL解析时能够识别数据是属于外部关系型数据库还是内部的分布式存储,然后确定是导入数据还是导出数据:a)如果识别数据是导入且属于外部数据库就需要将外部数据库中的数据导入到内部存储中,此时建立导入的Sqoop算子,放在所有算子之前执行;b)如果数据是导出,就在所有查询执行完毕以后执行数据导出到外部数据库的操作,此时建立导出的Sqoop算子,放在所有算子之后执行;外部可对接多种关系型数据库;
步骤13,根据HQL解析得到的表名,如果是内部表便通过与元数据服务模块MetaStore(如图1右上)的交互获取访问数据的存储元数据(getMetaData),如果是Hive中未定义的外部表,系统会自动通过Sqoop算子将元数据信息导入到Hive的元数据存储中,之后再由MetaStore模块访问新存储的元数据,然后解析HQL请求,将其翻译为逻辑查询计划,即由具备顺序依赖关系的MapReduce任务算子所构建形成的算子树,进而,根据关系型大数据访问的特点调整算子树,转化为优化查询计划,最后,生成符合MapReduce语法的物理查询计划,提交大数据引擎执行;
步骤14,为实现关系型大数据查询HQL的高效率、高性能执行,设计了优化模块,通过将上述逻辑查询计划进行合并,提出了两种优化原则:1)当查询需要访问外部关系型大数据源时,采用外部源优化,通过算子树调整生成逻辑查询计划,将导入导出的操作合并到查询主操作中,避免为导入导出生成单独的MapReduce任务;2)优化模块根据算子所代表的MapReduce任务ShuffleKey异同、任务间依赖关系,判断任务的可合并性,并据此调整算子树,合并算子,最终生成的物理查询计划具备更少执行时间,能够节省计算、存储与网络资源。
通过ANTLR语法解析模块的扩充,形成instance、db、tab三维数据源命名空间,例如外部关系型数据源sqoop.oracle1.workflow.project,sqoop代表外部数据源,oracle1代表驱动维度,workflow代表数据库实例,project代表关系表;基于上述语法建立逻辑层面的sqoop算子,用于关系型数据源导入导出MapReduce任务的无缝接入;
本发明的多种导入方式,分别是:CreateFirst方式、Direct方式、SqoopOperator方式;
步骤31,CreateFirst方式是在获取元数据(getMetaData)前,将空表(即元数据信息)导入到大数据系统中,也就是说只创建表,并不导入数据,是一种以备后续优化步骤使用的数据导入方式;该方式的优点是:1)便于后续优化,优化后的Sqoop算子不需要将表内容转存到外存,如分布式存储HDFS中,而是直接在内存中处理;2)创建速度快,不需要导入表数据,CreateFirst方式仅创建空表,不启动MapReduce任务;
步骤32,Direct是在获取元数据(getMetaData)前导入完整表,也就是将导入的MapReduce任务放在主逻辑查询计划前,该方法的特点是:在主查询开始前导入表的全部内容,包括元数据和表数据,两阶段的工作方式中,数据导入和查询相对独立;但是由于将表导入了外部存储中,在读表时还需要从外部存储将数据读入内部存储,因此不支持外部源优化,浪费了时间;
步骤33,Sqoop算子方式,在最后执行物理计划的时候运行导入过程,该方法支持外部源优化,如果实施外部源优化,会自动取消导入表数据,直接将外部源数据放到内存中处理;该方法节省时间,可是如果在执行HQL之前未定义该表,Hive就无法找到该表元数据,执行将报错,所以使用该方式需要预先建表;
本发明导出方式中,导出时要求待导出的数据已经存放在大数据系统内部分布式存储中的对应表中,并且在外部源中也已建好对应的关系表,导出的示意图如图5所示,其特征在于:
步骤41,导出采用插入操作实现,当查询到有导出外部表以后,首先取得外部数据库名和外部表名称,将这些信息放入导出Sqoop算子中,因为Sqoop算子是放在最后的一个算子,并且在未优化外部源的情况下,无法与其他算子共存,只能单独执行,所以如图5所示,实际执行过程是两阶段的;
本发明通过采用任务合并的机制,达到逻辑查询计划算子树的优化合并,缩短查询开销,为用户提供跨越介质的高性能统一存储视图,包括:
步骤51,对导入、导出的情况,优化前因为每个导入导出操作均需占用一个MapReduce任务,所以不能与查询的MapReduce任务放在一起执行,由于导入导出MapReduce任务没有shuffle排序过程,所以将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过这种流水线的方式来合并导入导出的MapReduce任务与查询的MapReduce任务,达到优化目的;
步骤52,算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,可以将这两个任务合并,因为shufflekey相同,所以数据来源有交集,合并后节省了一次MapReduce任务,并且减少了读磁盘的过程;
步骤53,首先,如图3,以查询语句“selectp.background,g.stylefrompicpjoingraphgonp.type=g.type;”为例示意join(连接操作)的工作过程;图中,等值连接的列为map端的输出键,map端的输出的值(value)是选择子句中的列以及该数据来源表的记号,将这两者放在一起作为map端的输出值(value),然后在reduce端,对key相同的来自不同表的数据进行连接;其次,子任务与所有父任务可以合并包括三种情况:1)子任务执行Join,两个父任务都与子任务shufflekey相同,此时两个父任务可以合并为一个任务,然后,该任务再与子任务合并;2)子任务执行join且只有一个父任务,参与join的表一个来自父任务,其他的来自大数据系统自有分布式存储中的文件,此时可以将子任务与唯一的父任务合并;3)子任务执行aggregation,该情况下它有且只有一个父任务,父子任务可合并;
步骤54,子任务与部分父任务可以合并的情况如下:子任务执行join,两个父任务中仅一个与子任务shufflekey相同,此时,可将子任务与该父任务合并。
本发明实施例首先提出了基于Hadoop体系的关系型大数据无缝接入方法及系统;其次,为了接入关系型大数据后的高性能分析查询,基于任务合并的技术思路,提出了如下两类优化方案:1)当查询需要采用外部关系大数据源时,调整算子树,将导入导出MapReduce任务合并到查询MapReduce任务中,以流水线的方式执行优化;2)当算子树中算子所代表的任务间存在合并可能,例如父子任务间具有相同的shufflekey,则结构调整算子树,将可以合并的任务放入一个物理计划执行,减少MapReduce任务,节省任务启动时间、网络传输时间、磁盘I/O时间以及多余运算时间。
下面结合实施步骤,对本发明实施例的优化方案进行详细说明;
本发明实施例基于开源工具Sqoop设计并实现了模块化的大数据生态系统中的关系数据库接入层,有机结合Sqoop、Hive、Hadoop,扩展Hadoop生态平台操控遗留关系型大数据的能力;数据分析处理请求通过CLI命令行、ThriftServer、webGUI三种界面提交,语法采用HQL;
首先,要实现外部源与大数据生态平台的无缝对接,需在HQL解析的时候获知外部关系大数据源。
步骤101,HQL的解析从ANTLR所生成的词法和语法分析函数开始,将查询语句转换为一个个的查询块,再根据查询块与获得的元数据信息生成相应的处理算子树,代表逻辑执行计划,;
步骤102,HQL使用ANTLR作为其词法、语法分析工具,输入的外部数据源操控、查询语句通过解析,最后得到一个抽象语法树,包含查询的所有内容,对重要解析流程示例如下:
//首先,增加关键字
KW_SQOOP:'SQOOP';
//其次,修改tableName定义
tableName
:(source=KW_SQOOPDOT)?(instance=identifierDOT)?(db=IdentifierDOT)?tab=Identifier
->^(TOK_TABNAME$source?$instance?$db?$tab)
步骤103,通过增加SQOOP关键字及处理逻辑后使得系统底层能够支持外部数据表,当输入含外部源语句时会产生相应的抽象语法树,在所修改的语法中,“:”表示当符合后面的条件时,解析为tableName;“->”表示将符合该符号前面部分的内容转换为该符号之后的抽象语法树的内容;“?”表示前面部分可以出现0次或1次,DOT是自定义关键字,表示符号“.”;“^”表示以紧挨着该符号的符号为根,其他符号为根的子节点;当抽象语法树识别到关键字KW_SQOOP时表示出现了外部数据源,然后识别出抽象语法树中实例名、外部数据库名和表名,将结果存在SQOOP算子当中;
步骤104,典型语句select*fromsqoop.workflow.project的对应的抽象语法树如图2所示,其中TOK_TABNAME对应于所修改的语法,可以看到source、instance、db、tab分别对应sqoop、instanceName、db、tableName;通过instanceName,可以访问数据库的不同实例,数据库的实例可以是不同种类数据库,也可以是位于不同IP的同类型的数据库,这样在一次HQL语句中就可以访问多个不同的数据库,每个实例的具体参数需要通过“setintanceName.user=”、“setintanceName.password=”与“setinstanceName.url=”来进行配置,实际操作过程中也可以不输入实例,此时只能访问一个数据库,系统会自动调用conf.get("sqoop.db","mysql")方法读取设置中的sqoop.db的内容,“mysql”表示默认为mysql,通过这个方法确定导出的外部数据库种类。
本发明实施例通过外部源导入优化,实现了将导入的MapReduce任务合并到查询的MapRedue任务中;首先引入HADOOPMAPFILENAME、IOContext等配置模块,来为外部源导入增加可配置性,通过这些配置模块来确定是否读取该表中的数据,是否出现读取过程出错主要包含如下步骤:
201,基于Hadoop平台,在MapReduce任务启动前,初始化与外部源相关的conf变量,将外部数据源相关的jar包加入到tmpjars中等操作、将InputFormat初始化;
202,在获取分块前如果识别模块识别到该任务读取的表与外部数据源的表名相同转203,否则转206;
203,调用方法getSplits(getSplits是获取分块split的函数(方法),split是调用getSplits后输出的结果),借助Sqoop对应的InputFormat获得相应的分块(split),加入到结果数组中;
204,在获取记录读入器(getRecordReader)阶段,根据split的类型,识别出外部数据源读取的split,设置HADOOPMAPFILENAME和IOContext为所读入的外部表表名;
205,识别模块通过HADOOPMAPFILENAME和IOContext的内容进行识别,如果识别到表名与输入算子TableScanOperator所读的表名或转换后的TableScanOperator所读的表名相同就将该TableScanOperator作为Map任务算子MapOperator的子算子,意为将MapOperator从外部数据库中取得的内容传给该TableScanOperator;
206,如果存在读本地表,启动hive自带的InputFormat获得分布式文件系统HDFS对应的split,加入到getSplits所返回的split数组中,如果不存在转209;
207,在getRecordReader阶段,根据split的类型,识别出本地的split,自动置HADOOPMAPFILENAME和IOContext为输入路径;
208,识别模块通过HADOOPMAPFILENAME和IOContext的内容进行识别,如果识别到路径与TableScanOperator所读的路径相同,就将该TableScanOperator作为MapOperator的子算子,意为将MapOperator从本地读到的表传给TableScanOperator;
209,执行HQL的查询任务。
本发明实施例通过外部源导出的优化,实现了将导出的MapReduce任务合并到查询的MapRedue任务中;导出外部源与导入外部源修改方法类似,一个是修改InputFormat,一个是修改OutputFormat。主要包含如下步骤:
301,在最后一个MapReduce任务执行前,执行初始化与外部源相关的conf变量、将外部数据源相关的jar包加入到tmpjars中、更改OutputFormat为ExportOutputFormat,将OutputFormat初始化等操作;
302,找到最后一个执行的MapReduce任务,这个任务的输出就是外部数据源的输入,于最后一个输出算子FileSinkOperator处做标记;
303,对于做了标记的FileSinkOperator不仅将结果存入HDFS,还将执行将结果存入OutputFormat的操作,然后OutputFormat将结果存入外部数据库。
本发明实施例的优化机制中,当两个任务不包含父子关系,并且shufflekey相同时,可以将这两个任务合并,因为shufflekey相同,所以至少读一个相同的表,合并后节省了一次MapReduce任务执行,减少了读磁盘的过程,工作步骤总结如下:
401,将要合并的任务的相关信息全部放入一个执行任务之中;
402,将输入合并,各个TableScanOperator根据输入路径或表名(外部表是根据表名)选择是否读取该内容;
403,在ReduceSinkOperator的输出键值对(key,value)的key当中加入一个tag,用于标记它来自哪个任务;
404,在Reduce操作中接收shuffle的结果,根据tag的值,将结果分发给对应任务的Reducer算子中。
本发明实施例的优化机制中,子任务与所有直接父任务可以合并包括三种情况,1)子任务执行Join任务,两个父任务都与子任务shufflekey相同,那么首先两个父任务可以合并,看做一个任务,这一个任务再与子任务合并;2)子任务执行join任务,且只有一个父任务(join的表一个来自父任务,其他的来自文件,从文件中可以直接读取需要的表,不需要额外的父任务进行读取),此时可以将含join操作的子任务与唯一的父任务合并;3)子任务是一个aggregation操作,必然只有一个父任务,父任务将与其子任务合并;主要步骤包括:
501,将子任务的信息存入父任务中;
502,识别任务是否合并子任务,如果该任务合并了子任务,那么在父任务的最后一个算子FileSinkOperator中内嵌Map算子MapOperator,执行map操作,将MapOperator的路径指定为FileSinkOperator的存储路径,将FileSinkOperator的结果传给MapOperator,不再将结果存文件;否则转505;
503,子任务的TableScanOperator再根据路径选择是否接收该MapOperator传来的数据;路径相同则接收,路径不同则表示该TableScanOperator接收的是其他MapOperator传递的数据;
504,子任务的ReduceSinkOperator的结果不再交给shuffle,因为已经在父任务中排序完成,所以直接将ReduceSinkOperator的结果引导给ReduceSinkOperator的下一个算子;
505,正常执行剩下的算子。
本发明实施例的优化机制中,当子任务是个join任务时,可能出现该join任务与其中一个父任务shufflekey相同,与另一个不相同的情况,此时可将子任务与和其shufflekey相同的父任务合并,主要操作步骤如下:
601,对该子任务的算子作标记,然后将子任务信息放入可合并的父任务中;
602,先执行那个无法合并的父任务,结果通过FileSinkOperator存在磁盘中;
603,父任务读自身表和无法合并的已存盘的父任务表,识别模块根据路径将数据传给自身或子任务的TableScanOperator;
604,父任务Reduce阶段reduce函数获得的数据如果有标记且来自shuffle,转605,否则转606;
606,将数据传给子任务的reduce函数,转608;
606,将数据继续传给父任务的Reduce算子;
607,Reduce算子将结果传给FileSinkOperator,FileSinkOperator中会将结果直接引导给子任务的MapOperator,MapOperator将根据路径将数据传给对应的子任务的TableScanOperator,之后数据会传给子任务的ReduceSinkOperator,子任务的ReduceSinkOperator会直接将结果传给其reduce函数;
608,在子任务的reduce函数中对输入进行处理。
本发明还提出基于Hadoop体系的关系型大数据无缝接入系统,包括:
生成抽象语法树模块,用于将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;
添加Sqoop算子模块,用于将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在SQOOP算子当中;
导入导出数据源模块,用于若将外部数据源导入到所述Hadoop体系中,则将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,若从所述Hadoop体系中将内部数据源导出,则将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;
合并模块,用于根据所述处理算子树中各节点的shufflekey及父节点与子节点之间的关系,进行任务合并。
所述合并模块包括:在所述处理算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,则将两个算子相对应的任务进行合并。
所述合并模块还包括若所述处理算子树中,存在子算子的多个父算子与子算子的shufflekey相同,则将父算子相对应的任务进行合并,将合并后的任务与所述子算子相对应的任务进行合并;子算子只有一个父算子,子算子相对应的任务中存在来自父算子相对应的任务的表,其余表来自大数据系统自有分布式存储中的文件,则将子算子相对应的任务与父算子相对应的任务进行合并;当子算子相对应的任务执行aggregation时,此时子算子只有一个父算子,则子算子相对应的任务与父算子相对应的任务进行合并。
所述合并模块还包括,存在子算子的多个父算子,其中只有一个父算子与子算子的shufflekey相同,则将与子算子的shufflekey相同的父算子相对应的任务与子算子相对应的任务进行合并。

Claims (10)

1.一种基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,包括:
步骤1,将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;
步骤2,将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在Sqoop算子当中;
步骤3,若将外部数据源导入到所述Hadoop体系中,则将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,若从所述Hadoop体系中将内部数据源导出,则将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;
步骤4,根据所述处理算子树中各节点的shufflekey及父节点与子节点之间的关系,进行任务合并。
2.如权利要求1所述的基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,所述步骤3中若将外部数据源导入到所述Hadoop体系中的步骤包括:步骤201,基于Hadoop平台,在MapReduce任务启动前,初始化与外部数据源相关的conf变量,将外部数据源相关的jar包加入到tmpjars中、将InputFormat初始化;
步骤202,在获取getSplits阶段,如果识别到MapReduce任务读取的表名与外部数据源的表名相同,则执行步骤203,否则执行步骤206;
步骤203,启动Sqoop对应的InputFormat,获得相应的分块,将所述分块加入到getSplits所返回的split数组中;
步骤204,在获取记录读入器阶段,根据所述分块的类型,识别出外部数据源读取的分块,设置HADOOPMAPFILENAME与IOContext为所读入的外部表表名;
步骤205,对HADOOPMAPFILENAME与IOContext的内容进行识别,如果识别到表名与输入算子TableScanOperator所读的表名或转换后的TableScanOperator所读的表名相同,则将该TableScanOperator作为Map任务算子MapOperator的子算子;
步骤206,如果存在读本地表,启动hive自带的InputFormat获得分布式文件系统HDFS对应的分块,加入到getSplits所返回的split数组中,如果不存在,则执行步骤209;
步骤207,根据分块的类型,识别出本地的分块,自动置HADOOPMAPFILENAME与IOContext为输入路径;
步骤208,对HADOOPMAPFILENAME与IOContext的内容进行识别,如果识别到路径与TableScanOperator所读的路径相同,就将TableScanOperator作为MapOperator的子算子;
步骤209,执行HQL的查询任务。
3.如权利要求1所述的基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,所述步骤3中若从所述Hadoop体系中将内部数据源导出的步骤包括:步骤301,在最后一个MapReduce任务执行前,执行初始化与外部源相关的conf变量,将与外部数据源相关的jar包加入到tmpjars中,更改OutputFormat为ExportOutputFormat,将OutputFormat初始化;
步骤302,找到最后一个执行的MapReduce任务,MapReduce任务的输出即外部数据源的输入,在最后一个输出算子FileSinkOperator处做标记;
步骤303,对于做了标记的FileSinkOperator,存入分布式文件系统HDFS,同时存入OutputFormat,然后OutputFormat将做了标记的FileSinkOperator存入外部数据库。
4.如权利要求1所述的基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,所述步骤4包括:在所述处理算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,则将两个算子相对应的任务进行合并。
5.如权利要求1所述的基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,所述步骤4还包括若所述处理算子树中,存在子算子的多个父算子与子算子的shufflekey相同,则将父算子相对应的任务进行合并,将合并后的任务与所述子算子相对应的任务进行合并;子算子只有一个父算子,子算子相对应的任务中存在来自父算子相对应的任务的表,其余表来自大数据系统自有分布式存储中的文件,则将子算子相对应的任务与父算子相对应的任务进行合并;当子算子相对应的任务执行aggregation时,此时子算子只有一个父算子,则子算子相对应的任务与父算子相对应的任务进行合并。
6.如权利要求1所述的基于Hadoop体系的关系型大数据无缝接入方法,其特征在于,所述步骤4还包括,存在子算子的多个父算子,其中只有一个父算子与子算子的shufflekey相同,则将与子算子的shufflekey相同的父算子相对应的任务与子算子相对应的任务进行合并。
7.一种基于Hadoop体系的关系型大数据无缝接入系统,其特征在于,包括:
生成抽象语法树模块,用于将获取所述Hadoop体系中的查询语句及元数据信息,并将所述查询语句转换成查询块,根据所述查询块与所述元数据信息生成处理算子树,解析输入的外部的数据源操控、查询语句,生成抽象语法树;
添加Sqoop算子模块,用于将Sqoop算子添加到所述处理算子树中,当所述抽象语法树识别到关键字KW_SQOOP时表示出现外部数据源,识别出所述抽象语法树中所述外部数据源的实例名、外部数据库名和表名,将所述实例名、所述外部数据库名和所述表名存在SQOOP算子当中;
导入导出数据源模块,用于若将外部数据源导入到所述Hadoop体系中,则将导入的MapReduce任务的输出直接作为查询的MapReduce任务的输入,若从所述Hadoop体系中将内部数据源导出,则将查询的MapReduce任务的输出作为导出的MapReduce任务的输入,通过流水线的方式合并导入导出的MapReduce任务与查询的MapReduce任务;
合并模块,用于根据所述处理算子树中各节点的shufflekey及父节点与子节点之间的关系,进行任务合并。
8.如权利要求7所述的基于Hadoop体系的关系型大数据无缝接入系统,其特征在于,所述合并模块包括:在所述处理算子树中,当两个算子不包含父子关系,并且shufflekey是相同的,则将两个算子相对应的任务进行合并。
9.如权利要求7所述的基于Hadoop体系的关系型大数据无缝接入系统,其特征在于,所述合并模块还包括若所述处理算子树中,存在子算子的多个父算子与子算子的shufflekey相同,则将父算子相对应的任务进行合并,将合并后的任务与所述子算子相对应的任务进行合并;子算子只有一个父算子,子算子相对应的任务中存在来自父算子相对应的任务的表,其余表来自大数据系统自有分布式存储中的文件,则将子算子相对应的任务与父算子相对应的任务进行合并;当子算子相对应的任务执行aggregation时,此时子算子只有一个父算子,则子算子相对应的任务与父算子相对应的任务进行合并。
10.如权利要求7所述的基于Hadoop体系的关系型大数据无缝接入系统,其特征在于,所述合并模块还包括,存在子算子的多个父算子,其中只有一个父算子与子算子的shufflekey相同,则将与子算子的shufflekey相同的父算子相对应的任务与子算子相对应的任务进行合并。
CN201610141867.8A 2016-03-14 2016-03-14 一种基于Hadoop体系的关系型大数据无缝接入方法及系统 Pending CN105808746A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610141867.8A CN105808746A (zh) 2016-03-14 2016-03-14 一种基于Hadoop体系的关系型大数据无缝接入方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610141867.8A CN105808746A (zh) 2016-03-14 2016-03-14 一种基于Hadoop体系的关系型大数据无缝接入方法及系统

Publications (1)

Publication Number Publication Date
CN105808746A true CN105808746A (zh) 2016-07-27

Family

ID=56468193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610141867.8A Pending CN105808746A (zh) 2016-03-14 2016-03-14 一种基于Hadoop体系的关系型大数据无缝接入方法及系统

Country Status (1)

Country Link
CN (1) CN105808746A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250460A (zh) * 2016-07-28 2016-12-21 全球能源互联网研究院 一种考虑任务相关性的Hive优化方法及系统
CN106383738A (zh) * 2016-09-30 2017-02-08 北京百度网讯科技有限公司 任务处理方法和分布式计算框架
CN106777345A (zh) * 2017-01-16 2017-05-31 山东浪潮商用系统有限公司 一种基于海量数据迁移的数据抽取加载方法
CN107729349A (zh) * 2017-08-25 2018-02-23 昆仑智汇数据科技(北京)有限公司 一种基于元数据的特征数据集自动生成方法及装置
CN109992989A (zh) * 2017-12-29 2019-07-09 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN110168515A (zh) * 2016-09-15 2019-08-23 英国天然气控股有限公司 用于分析数据关系以支持查询执行的系统
CN110175207A (zh) * 2019-05-30 2019-08-27 深圳供电局有限公司 一种基于Hadoop和Spark的可扩展性大数据分析平台
CN110297830A (zh) * 2019-06-26 2019-10-01 成都品果科技有限公司 一种Redshift外部表动态列的处理方法及装置
CN110457307A (zh) * 2018-05-03 2019-11-15 阿里巴巴集团控股有限公司 元数据管理系统、用户集群创建方法、装置、设备和介质
CN110516000A (zh) * 2019-09-02 2019-11-29 中山大学 一种支持复杂工作流结构的工作流管理系统
CN111666321A (zh) * 2019-03-05 2020-09-15 百度在线网络技术(北京)有限公司 多数据源的操作方法及其装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110072006A1 (en) * 2009-09-18 2011-03-24 Microsoft Corporation Management of data and computation in data centers
US20120182891A1 (en) * 2011-01-19 2012-07-19 Youngseok Lee Packet analysis system and method using hadoop based parallel computation
CN103559189A (zh) * 2013-08-22 2014-02-05 国家电网公司 基于元数据集成模型的电力仿真培训资源管理系统及方法
CN103793424A (zh) * 2012-10-31 2014-05-14 阿里巴巴集团控股有限公司 数据库数据迁移方法及系统
CN104331435A (zh) * 2014-10-22 2015-02-04 国家电网公司 一种基于Hadoop大数据平台的低影响高效率的海量数据抽取方法
CN105302551A (zh) * 2015-10-14 2016-02-03 中国科学院计算技术研究所 一种大数据处理系统的正交分解构造与优化的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110072006A1 (en) * 2009-09-18 2011-03-24 Microsoft Corporation Management of data and computation in data centers
US20120182891A1 (en) * 2011-01-19 2012-07-19 Youngseok Lee Packet analysis system and method using hadoop based parallel computation
CN103793424A (zh) * 2012-10-31 2014-05-14 阿里巴巴集团控股有限公司 数据库数据迁移方法及系统
CN103559189A (zh) * 2013-08-22 2014-02-05 国家电网公司 基于元数据集成模型的电力仿真培训资源管理系统及方法
CN104331435A (zh) * 2014-10-22 2015-02-04 国家电网公司 一种基于Hadoop大数据平台的低影响高效率的海量数据抽取方法
CN105302551A (zh) * 2015-10-14 2016-02-03 中国科学院计算技术研究所 一种大数据处理系统的正交分解构造与优化的方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
蔺美青 等: "基于算子树的导弹突防作战效能评估方法研究", 《系统仿真学报》 *
郭庆: "Java EE 企业级应用向 Hadoop 平台迁移的技术研究", 《自动化与信息工程》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250460A (zh) * 2016-07-28 2016-12-21 全球能源互联网研究院 一种考虑任务相关性的Hive优化方法及系统
CN110168515B (zh) * 2016-09-15 2023-10-20 日立数据管理有限公司 用于分析数据关系以支持查询执行的系统
CN110168515A (zh) * 2016-09-15 2019-08-23 英国天然气控股有限公司 用于分析数据关系以支持查询执行的系统
CN106383738A (zh) * 2016-09-30 2017-02-08 北京百度网讯科技有限公司 任务处理方法和分布式计算框架
CN106383738B (zh) * 2016-09-30 2019-10-11 北京百度网讯科技有限公司 任务处理方法和分布式计算框架
CN106777345A (zh) * 2017-01-16 2017-05-31 山东浪潮商用系统有限公司 一种基于海量数据迁移的数据抽取加载方法
CN106777345B (zh) * 2017-01-16 2020-07-28 浪潮软件科技有限公司 一种基于海量数据迁移的数据抽取加载方法
CN107729349A (zh) * 2017-08-25 2018-02-23 昆仑智汇数据科技(北京)有限公司 一种基于元数据的特征数据集自动生成方法及装置
CN107729349B (zh) * 2017-08-25 2022-06-07 昆仑智汇数据科技(北京)有限公司 一种基于元数据的特征数据集自动生成方法及装置
CN109992989A (zh) * 2017-12-29 2019-07-09 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN109992989B (zh) * 2017-12-29 2023-10-13 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN110457307A (zh) * 2018-05-03 2019-11-15 阿里巴巴集团控股有限公司 元数据管理系统、用户集群创建方法、装置、设备和介质
CN110457307B (zh) * 2018-05-03 2023-10-24 阿里巴巴集团控股有限公司 元数据管理系统、用户集群创建方法、装置、设备和介质
CN111666321A (zh) * 2019-03-05 2020-09-15 百度在线网络技术(北京)有限公司 多数据源的操作方法及其装置
CN111666321B (zh) * 2019-03-05 2024-01-05 百度在线网络技术(北京)有限公司 多数据源的操作方法及其装置
CN110175207A (zh) * 2019-05-30 2019-08-27 深圳供电局有限公司 一种基于Hadoop和Spark的可扩展性大数据分析平台
CN110297830A (zh) * 2019-06-26 2019-10-01 成都品果科技有限公司 一种Redshift外部表动态列的处理方法及装置
CN110297830B (zh) * 2019-06-26 2021-09-14 成都品果科技有限公司 一种Redshift外部表动态列的处理方法及装置
CN110516000A (zh) * 2019-09-02 2019-11-29 中山大学 一种支持复杂工作流结构的工作流管理系统
CN110516000B (zh) * 2019-09-02 2023-03-21 中山大学 一种支持复杂工作流结构的工作流管理系统

Similar Documents

Publication Publication Date Title
CN105808746A (zh) 一种基于Hadoop体系的关系型大数据无缝接入方法及系统
CN107092656B (zh) 一种树状结构数据处理方法及系统
CN107491561B (zh) 一种基于本体的城市交通异构数据集成系统及方法
US10521427B2 (en) Managing data queries
US11593369B2 (en) Managing data queries
CN104346377B (zh) 一种基于唯一标识的数据集成和交换方法
CN105989150B (zh) 一种基于大数据环境的数据查询方法及装置
CN103761080B (zh) 一种基于SQL的MapReduce作业生成方法及系统
Bugiotti et al. Invisible glue: scalable self-tuning multi-stores
CN107016071B (zh) 一种利用简单路径特征优化树状结构数据的方法及系统
US20150310047A1 (en) System and Method for Composing a Multidimensional Index Key in Data Blocks
CN102693310A (zh) 一种基于关系数据库的资源描述框架查询方法和系统
CN105550268A (zh) 大数据流程建模分析引擎
CN107491476B (zh) 一种适用于多种大数据管理系统的数据模型转换及查询分析方法
CN105718593A (zh) 一种数据库查询优化方法及系统
CN104573039A (zh) 一种关系数据库的关键词查询方法
CN105677683A (zh) 批量数据查询方法和装置
CN104392037B (zh) 一种城市场景参数化建模系统
CN107247799A (zh) 兼容多种大数据存储的数据处理方法、系统及其建模方法
CN104573022A (zh) 一种HBase的数据查询方法及装置
CN102541631A (zh) 以多线程不同驱动源执行计划处理查询的方法和系统
CN115237937A (zh) 一种基于星际文件系统的分布式协同查询处理系统
Graube et al. Integrating industrial middleware in linked data collaboration networks
Gkirtzou et al. Keywords-to-sparql translation for rdf data search and exploration
CN104462610B (zh) 结合本体的分布式rdf存储与查询优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160727