[发明专利]适用于多种目的表更新方式的通用ETL方法有效
申请号: | 201410226998.7 | 申请日: | 2014-05-27 |
公开(公告)号: | CN105224527B | 公开(公告)日: | 2018-07-13 |
发明(设计)人: | 孙二林 | 申请(专利权)人: | 北京宸瑞科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康思博达知识产权代理事务所(普通合伙) 11426 | 代理人: | 路永斌;余光军 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种适用于多种目的表更新方式的通用ETL方法,该方法既避免了ETL工具软件所存在的成本高、速度慢、故障多、实施工作量大的缺点,又克服了现有数据库脚本所存在的不通用、不能实现多种表更新方式的问题,该方法设置用于记录数据仓库中的各个ETL任务的ETL任务表、用于记录ETL存储过程运行时产生的日志的ETL日志表、用于执行某个作业所包含的ETL任务的存储过程模块以及在存储过程模块执行时,用于把目的表的索引和备注复制到影子表的索引和备注信息存储过程亚模块,通过设置上述四个数据库对象,调整其顺序,再设置数据库连接、作业等必须程序,从而完成抽取源表数据进行转化并最终将数据存储至目标数据仓库的ETL过程。 | ||
搜索关键词: | 存储过程 表更新 索引 通用 仓库 数据库对象 数据库脚本 数据库连接 备注信息 方法设置 记录数据 模块执行 目标数据 数据存储 源表数据 任务表 日志表 运行时 日志 工作量 抽取 影子 复制 记录 转化 | ||
【主权项】:
1.一种适用于多种目的表更新方式的通用ETL方法,其特征在于,该方法包括如下步骤:步骤1:在目标数据仓库中建立数据库连接,数据库连接用于访问源表;步骤2:在目标数据仓库中建立空白目的表;步骤3:在目标数据仓库中建立转化视图,所述转化视图的数据结构与目的表的数据结构一致;步骤4:在目标数据仓库中建立ETL任务表和ETL日志表,其中,ETL任务表用于记录ETL任务的内容,ETL任务表至少包括更新方式栏、作业名称栏、更新序号栏、更新状态栏,ETL日志表用于记录ETL存储过程在运行时产生的日志信息;步骤5:在目标数据仓库中输入存储过程信息模块,所述存储过程信息模块包括存储过程模块和索引和备注信息存储过程亚模块,其中,存储过程模块用于执行作业信息模块所包含的ETL任务;步骤6:在ETL任务表中输入ETL任务信息,所述输入的ETL任务信息至少包括从源表到目的表的更新方式和作业信息模块名称;步骤7:在目标数据仓库中输入作业信息模块,每个作业信息模块中都包括一个以上ETL任务,所述作业信息模块用于在预定的时间通过向接收子模块发送参数的方式来调用存储过程模块;其中,存储过程模块包括:接收子模块,其用于接收作业信息模块发出的参数信息,并通知统计子模块查找并记录该作业信息模块中包含的所有ETL任务,同时,通知ETL日志表记录开始日志;统计子模块,其用于查找并记录作业信息模块包含的所有ETL任务,将各个ETL任务按照更新序号排序,其中,当统计子模块开始查找并记录ETL任务时,通知ETL任务表将其中的更新状态栏改为等待执行;更新方式选择子模块,其用于查询在ETL任务表中预设的从源表到目的表的ETL任务的更新方式,并根据预设的从源表到目的表的更新方式通知相应的更新子模块对目的表进行更新,同时通知ETL任务表将其中的更新状态栏改为正在执行;全表数据替换更新子模块,其用于在预设的从源表到目的表的更新方式为全表数据替换时对目的表进行更新,其对目的表的更新过程包括如下步骤:根据源表创建目的表的影子表,所述影子表中只有数据;删除目的表;把影子表重命名为目的表;全表数据替换并重建索引子模块,其用于在预设的从源表到目的表的更新方式为全表数据替换并重建索引时对目的表进行更新,其对目的表的更新过程包括如下步骤:根据源表创建目的表的影子表,所述影子表中只有数据;调用用于把目的表中的索引信息和备注信息复制到影子表的索引和备注信息存储过程亚模块,通过索引和备注信息存储过程亚模块把目的表的索引信息和备注信息复制到影子表;删除目的表;把影子表重命名为目的表;差异添加子模块,其用于在预设的从源表到目的表的更新方式为差异添加时对目的表进行更新,其对目的表的更新过程包括如下步骤:向目的表中插入源表中有而目的表中没有的数据;时间修改添加或字符串修改添加子模块,其用于在预设的从源表到目的表的更新方式为时间修改添加或字符串修改添加时对目的表进行更新,其对目的表的更新过程包括如下步骤:删除目的表中数据更新时间与源表中数据更新时间不一致的所有数据;向目的表中插入源表中有而目的表中没有的数据;时间添加子模块,其用于在预设的从源表到目的表的更新方式为时间添加时对目的表进行更新,其对目的表的更新过程包括如下步骤:分别计算源表和目的表最大添加时间;把源表中数据添加时间介于源表和目的表这两个最大添加时间点之间的数据添加到目的表中;和循环处理子模块,其用于在更新模块更新结束后通知ETL任务表将其中的更新状态栏改为已完成,并记录ETL任务结束时间和新增数据条数;进行循环处理过程,即通知更新方式选择子模块处理下一个ETL任务,直至作业信息模块所包含的所有ETL任务都执行完毕,当作业信息模块所包含的所有ETL任务都执行完毕后,存储过程模块运行结束,通知ETL日志表记录结束日志。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宸瑞科技股份有限公司,未经北京宸瑞科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410226998.7/,转载请声明来源钻瓜专利网。