ETL通用解决方案_oracle+存储过程实现

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ETL通用解决方案一一oracle+存储过程实现

方案理念-- 四化理念

1.数据规格化

2.处理自动化

3.信息集中化

4.操作人性化

架构

通过视图实现来至两个不同数据库的表的结构完全一致, 在结构完全相同的两个表之间进行数据同步, 问题变得相当简单. 同步代码如下.

ETL

--- 初始同步

delete from ods_table; insert into v_table select * from db_table; commit;

--- 新增同步insert into v_table select * from db_table t where t.id not in (select id from v_table);

commit;

--- 变更同步

update ods_table t

set t.c_number = (select db.c_number from db_table db where db.id = t.id)

where t.c_number != (select db.c_number from db_table db where db.id =

t.id);

commit;

实现两个表结构完全一致的方法如下

--- 建表

CREATE SEQUENCE SEQ_ETL_INCREASE_ID

INCREMENT BY 1

START WITH 1

NOCACHE;

/* Table:

ETL_TABLES

*/

/* */

CREATE TABLE ETL_TABLES(

"ID" NUMBER DEFAULT -1 NOT NULL,

"DEVELOP_DATE" DATE

DEFAULT SYSDATE NOT NULL,

"DEVELOP_BY" VARCHAR2(100) DEFAULT 'cyyan@isoftstone' NOT NULL,

"LAST_MAINTAIN_BY" VARCHAR2(100) DE FAULT 'cyyan@isoftstone' NOT NULL,

"MEMO" VARCHAR2(500), "STATUS" NUMBER DEFAULT 1,

CONSTRAINT PK_ETL_TABLES PRIMARY KEY ("ID")

"TABLE_NAME" NOT NULL, "TABLE_TYPE" NOT NULL, "TABLE_ROOT_I

"TABLE_NEED_CREATE_VIEW" NUMBER

"TABLE_CREATE_VIEW_NAME_PREFIX" VARCHAR2(100)

VARCHAR2(30)

VARCHAR2(30), DEFAULT 1,

VARCHAR2(30)

"DB_LINK_NAME"

"CURRENT_VERSION" DEFAULT 1 NOT NULL,

"VERSION_HISTORY" FAULT 'init input' NOT

DEFAULT 'v',

VARCHAR2(100),

NUMBER

VARCHAR2(3000)

DE

"LAST_MAINTAIN_DATE"

DATE DEFAULT SYSDATE NOT NULL,

);

COMMENT ON TABLE ETL_TABLES IS

'此表用于维护ETL涉及到所有表,包括:

1, db--- 业务系统数据库

2, ods-

--

操作数据数据库

3, dw--- 数据仓库';

*/

/* Table:

ETL_VIEWS

*/

*/ CREATE TABLE ETL_VIEWS(

"ID" NUMBER

DEFAULT -1 NOT NULL,

"VIEW_NAME" NOT NULL,

"VIEW_TYPE"

NOT NULL,

"VIEW_ROOT_IN"

"VIEW_SELECT" NOT NULL,

"VIEW_FROM" NOT NULL,

"VIEW_WHERE"

"VIEW_ORDER_BY"

VARCHAR2(100)

VARCHAR2(30) VARCHAR2(30), VARCHAR2(4000)

VARCHAR2(600)

VARCHAR2(2000), VARCHAR2(600),

"VIEW_GROUP_BY" "VIEW_HAVING" "VIEW_DB_LINK_NAME" "CURRENT_VERSION" DEFAULT 1 NOT NULL, "VERSION_HISTORY" FAULT 'init input' NOT NULL,

"DEVELOP_DATE" DATE DEFAULT SYSDATE NOT NULL,

"DEVELOP_BY" VARCHAR2(100) DEFAULT 'cyyan@isoftstone' NOT NULL, "LAST_MAINTAIN_DATE"

DATE DEFAULT SYSDATE NOT NULL,

"LAST_MAINTAIN_BY" VARCHAR2(100) DE FAULT 'cyyan@isoftstone' NOT NULL,

"MEMO" VARCHAR2(500), "STATUS" NUMBER DEFAULT 1,

CONSTRAINT PK_ETL_VIEWS PRIMARY KEY ("ID") );

COMMENT ON TABLE ETL_VIEWS IS '此表用于维护ETL 涉及到所有视图,包括: 1, v1---db 表中与 ods 对应到视图 2, v2---ods 表中与 db 对应到视图 3, v3---ods 表中与dw 对应到视图 4, v4---dw 表中与 ods 中对应到视图 ';

VARCHAR2(600), VARCHAR2(600) VARCHAR2(100), NUMBER

VARCHAR2(3000)

DE

相关文档
最新文档