目的:标准化源数据
两种方式,kettle组件,纯写sql
类型 | 统一 |
---|---|
整形 | INTEGER(10) |
金额 | DECIMAL(20,2) |
浮点 | DECIMAL(20,x) |
比率 | DECIMAL(12,6) |
净值 | DECIMAL(16,3) |
日期 | VARCHAR(8),YYYYMMDD |
时间日期 | VARCHAR(14),YYYYMMDDHHmmSS |
使用kettle的
字段选择
-->元数据
中进行更改
也可以在表输出
中直接写sql,使用同to_char来进行转换
采集频率T+1
源数据日期:
ETL采集时间
在ODS层存储数据库上每个表添加字段
ODS_SRC_SYS_NO CHAR(30) 原系统编号
ODS_SRCDATE CHAR(30) 数据日期
ODS_ETLDATE CHAR(30) 采集日期
在使用kettle获取源数据时添加:
, to_char(sysdate-1,'yyyy/mm/dd') as src_date
, to_char(sysdate,'yyyy/mm/dd Hh24:mi:ss') as etl_date
, '核心' as src_sys_no
FROM LOAN1.F_LN_LNP_CTRT_CBAPP
增量
采集数据截止到昨天新增有变化的数据(只采集昨天一天的数据)必须有个增量字段
, to_char(sysdate-1,'yyyy/mm/dd') as src_date
, to_char(sysdate,'yyyy/mm/dd Hh24:mi:ss') as etl_date
, '核心' as src_sys_no
FROM LOAN1.F_LN_LNP_CTRT_CBAPP
WHERE CONTDATE=trunc(sysdate-1,'dd')
全量
采集截止到今天0点之前的,所有数据
, to_char(sysdate-1,'yyyy/mm/dd') as src_date
, to_char(sysdate,'yyyy/mm/dd Hh24:mi:ss') as etl_date
, '核心' as src_sys_no
FROM LOAN1.F_LN_LNP_ACCT_AMWKPL06
每次采集昨天的数据,避免单日多次运行,产生重复数据
kettle --> 脚本 --> 执行sql脚本
增量采集时,指定的增量字段便是CONTDATE
采集的数据是昨天产生的,所以这里指定删除条件为昨天产生的
delete from bkf_ln_lnp_ctrt_cbapp where CONTDATE=to_char(sysdate-1,'yyyy/mm/dd');
全量采集时,在目标库中删除今天要采集的数据
delete from bkf_ln_lnp_acct_amwkpl06 where trim(ODS_SRCDATE)=to_char(sysdate-1,'yyyy/mm/dd');
原文:https://www.cnblogs.com/inmeditation/p/12543349.html