newniu ELT框架

3 views
Skip to first unread message

anima

unread,
Feb 5, 2009, 11:42:41 PM2/5/09
to Beetle Learns To Hack
newniu ELT框架
源数据库(db1):Table1,Table2, ...,TablesN----------> 目的数据库(db2):TableX
源数据库(db1):视图 ------------newniu ETL----------> 目的数据库(db2)视图

要求:db1和db2中建立的视图结构完全一致的,包括:列名,列的数据类型, 列的含义;

newniu ELT 功能
根据表名生成视图
根据视图进行ETL
四种同步机制 : 初始化同步,增量同步,变更同步1(不保留历史数据),变更同步2(保留历史数据)


你的工作
整理出哪些表需要ETL
整理出建立视图的SQL语句
配置抽取ETL策略
让newniu ELT完成剩下的工作


零,工具
pl/sql, powerdesign, excel, ultraedit


一,部署
1, 创建用户, 使用用户里面的预览脚本
2, 切换用户, 用创建的用户登陆
3, 创建数据库, 使用整个数据的预览脚本-------创建dw数据仓库 <<DW---构建.SQL>>
4, 创建db link, 使用下面的db link脚本
5, 创建存储过程和触发器, 使用 数据库-->创建触发器存储过程 菜单里面生成到脚本

二,开发
6, 数据插入etl_tables, 数据来源于 <<核心初始数据.xls>>
6.1 在 pl/sql中执行 <<核心初始数据.xls>>-->要抽取的表信息---> 插入的sql语句
6.2 然后对数据区解锁, 将excel中的数据copy过去(包括序号列), 更新-->提交

7, 执行存储过程 pro_etl_views_insert 生成 etl_views里面的数据---->查看etl_views里是否成功生
成数据

8, 修改etl_views里数据, 使其是正确到数据-----------------特别注意 8 修改后 要执行 9和10项才能生效
//8.1 远程表表名后面跟@db_link_name----db中的表
8.2 dw中的加上限制条件 dw_data_age = 0, 下面有更新的SQL语句
8.3 录入db的视图, 将 核心初始数据.xls--->db的视图信息--->sql语句,
copy到pl/sql中执行, 对数据区解锁, 然后把excel中的数据 copy到 pl/sql里面去(包括序号列), 勾选-->提交

9, 执行存储过程 PRO_CREATE_ETL_VIEWS 创建视图 ---->查看view是否成功创建

10, 执行存储过程 PRO_ETL_ETLS_INSERT 自动生成 ETL_ETLS里面的数据---->查看ETL_ETLS里是否成功生
成数据


三,运行
11, 执行 pro_etl_by_init 进行 全量抽取(初始同步) --删除以前最新的再重新导入
12, 执行 pro_etl_by_add 进行 增量抽取(增量同步)

13, 执行 pro_etl_by_change_with_update 进行 变更抽取(变更同步)---采用更新同步方式
14, 执行 pro_etl_by_change_with_insert 进行 变更抽取(变更同步) ---采用插入方式, 保留历史版本


newniu ETL 0.4 下载地址
http://pipe-line.javaeye.com/topics/download/f3555c26-c874-38ff-bfd2-b07c38dd9d6d

Reply all
Reply to author
Forward
0 new messages