[发明专利]ETL模块间父任务关系的获取方法和装置无效
申请号: | 200910207138.8 | 申请日: | 2009-10-27 |
公开(公告)号: | CN102053972A | 公开(公告)日: | 2011-05-11 |
发明(设计)人: | 林正华 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京鑫媛睿博知识产权代理有限公司 11297 | 代理人: | 龚家骅 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | etl 模块 任务 关系 获取 方法 装置 | ||
技术领域
本申请涉及通讯技术领域,尤其涉及一种ETL模块间父任务关系的获取方法和装置。
背景技术
ETL(Extract/Transform/Load,抽取/转换/装载)是指对数据库的数据进行抽取、转换、装载操作,从而将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成后,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
具有对数据库的数据进行抽取、转换、装载的操作功能的程序可以封装为一个功能模块,用于完成固定的数据操作,这个功能模块可以称为ETL模块。
ETL模块的操作对象基本为数据库中的表,比如ETL模块1的操作是抽取表A的数据,对抽取的数据进行筛选过滤后生成表B,则ETL模块1中可能包括以下SQL(Structured Query Language,结构化查询语言)语句:
SQL(insert into B select*from A where type=1)
其语义为从表A中选择类型(type)为1的值插入到表B中。
假设表A是在ETL模块2中生成的。那么在ETL模块1和ELT模块2的执行序列上,必须是ETL模块2运行生成表A成功后,才能执行ETL模块1的功能。否则,ETL模块1在执行时,将因为无法获取表A中的数据而报错。该情况下一般,将ETL模块2称为ETL模块1的父任务,而ETL模块1称为ETL模块2的子任务。
现有技术中,在系统中每添加上一个新的ETL模块时,需要手工把该ETL模块中涉及到的输入表整理出来,再手工整理出这些输入表是由哪些ETL模块生成的。根据整理出的输入表和输出表,记录新的ETL模块与其他已存在的ETL模块之间的父子关系,进而设置个ETL模块的调度顺序。
现有技术中存在的问题在于:
对ETL模块之间父子关系的分析通过手工操作完成,一方面浪费时间、效率低下,另一方面由于一个ETL模块常常会有近10个数据源,因此很容易会有遗漏。一旦发生遗漏,在ETL模块做相应计算时就会发生数据错误。
发明内容
本申请的实施例提供一种ETL模块间父任务关系的获取方法和装置,用于根据ETL模块中SQL语句对各ETL模块之间的父任务关系进行自动分析,提高分析准确性和分析效率。
为了达到上述目的,本申请的实施例提供了一种ETL模块间父任务关系的获取方法,包括:
对各ETL模块中的关键字进行匹配;
根据所述匹配结果,获取各ETL模块的输入表和输出表;
根据所述各ETL模块的输入表和输出表,获取所述各ETL模块间存在的父任务关系。
其中,所述对各ETL模块中的关键字进行匹配包括:
所述各ETL模块中包括的为结构化查询语言SQL语句时,使用lex、yacc和/或antlr工具对各ETL模块中SQL语句的关键字进行匹配。
其中,所述关键字至少包括:insert into、merge into、update、from和using中的一种或多种。
其中,所述根据所述匹配结果,获取各ETL模块的输入表和输出表,包括:
对于一ETL模块,
匹配到insert into时,判断insert into后的字符串是所述ETL模块的输出表;
匹配到merge into时,判断merge into后的字符串是所述ETL模块的输出表;
匹配到update时,判断update后的字符串是所述ETL模块的输出表;
匹配到from时,判断from后的字符串是所述ETL模块的输入表;
匹配到using时,判断using后的字符串是所述ETL模块的输入表。
其中,所述根据所述各ETL模块的输入表和输出表,获取所述各ETL模块间存在的父任务关系,包括:
对各ETL模块的输入表和输出表进行匹配,当第一ETL模块的输入表为第二ETL模块的输出表时,判断第二ETL模块为第一ETL模块的父任务,并对第一ETL模块的父任务进行记录。
本申请的实施例还提供了一种ETL模块间父任务关系的获取装置,包括:
关键字匹配单元,用于对各ETL模块中的关键字进行匹配;
输入输出表获取单元,用于根据所述关键字匹配单元的关键字匹配结果,获取各ETL模块的输入表和输出表;
父任务关系获取单元,用于根据所述输入输出表获取单元获取的各ETL模块的输入表和输出表,获取所述各ETL模块间存在的父任务关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910207138.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种临床药理试验信息处理系统
- 下一篇:一种配电线路供电范围的显示方法