数据仓库数据清洗之码值映射
来源:互联网 发布:网络安全法解读 ppt 编辑:程序博客网 时间:2024/04/30 02:27
一、映射表F_CM_CODE_MAPPING
1. 源系统码值与目标码值映射关系表结构
不建议将源表码值和目标码值分两个表进行关联,设计建议参考F_CM_CODE_MAPPING
这个有问题,需要增加目标描述字段。
2. 源系统码值与目标码值映射关系表生成
2.1 源系统多个码值对应一个目标码值 or 源系统的码值不在码表中保存而在注释中——手工维护映射表。
2.2 源系统码值和目标码值一一对应(目标码值就是源系统码值)——ETL直抽到映射表中。
EG:
SQOOP方案:为减少SQOOP任务将ODS所有码值一起抽取,代码如下。
sqoop import -D mapred.job.queue.name=${queueName} \
--connect ${oracle_connection} \
--username ${oracle_username} \
--password ${oracle_password} \
--query "select \
系统A,\
表A,\
“字段名a” ,\
字段a,\
字段a描述,\
“字段名a” ,\
字段a,\
字段a描述,\
数据日期\
from 表A
union all
系统A,\
表B,\
“字段名b” ,\
字段b,\
字段b描述,\
“字段名b” ,\
字段b,\
字段b描述,\
数据日期\
from 表 B
…………
二、新增码值自动检查方案
在源系统码值与目标码值映射关系表生成的第一种情况,即手工维护映射表时,源系统新增了码值,数据仓库是发现不了的。故增加下面的机制检查新增的码值。
第一步:
将ODS中所有的码值表抽取到数仓中的CODE_SOURCE表。
Eg:
数仓中SQOOP目标表CODE_SOURCE表结构src_sys, src_tbl,field_en, field_value
SQOOP方案:为减少SQOOP任务将ODS所有码值一起抽取,代码如下。
sqoop import -D mapred.job.queue.name=${queueName} \
--connect ${oracle_connection} \
--username ${oracle_username} \
--password ${oracle_password} \
--query "select \
系统A,\
表A,\
“字段名a” ,\
字段a,\
from 表A
union all
系统A,\
表B,\
“字段名b” ,\
字段b,\
from 表 B
…………
第二步:
将数仓中CODE_SOURCE与数仓中F_CM_CODE_MAPPING关联,CODE_SOURCE中多余的码值便是新增的码值。
Eg:
配置任务检查CODE_SOURCE关联F_CM_CODE_MAPPING,F_CM_CODE_MAPPING中字段取数字段的值为空的,即表示源头新增了码值。
Select* from CODE_SOURCE A left join F_CM_CODE_MAPPING B onA. src_sys=B. src_sys and A. src_tbl=B. src_tbl and A.field_en =B. field_en
WhereB. field_value is NULL;
查询过程举例:标红的行即为源系统新增的码值。
三、 码值表
在主题层向外提供数据时,同时需要提供对应的码值表,数据仓库的码值表实现方案是通过对映射表F_CM_CODE_MAPPING进行加工的。
EG:
SELECTDISTINCT 标准码值, 标准码值类型, 标准码值描述
FROMF_CM_CODE_MAPPING
- 数据仓库数据清洗之码值映射
- 大数据之数据仓库
- 数据清洗之数据质量检查
- 数据挖掘而之数据清洗
- python数据预处理之数据清洗
- 数据清洗---缺失值处理
- 慕课网学习spark笔记之数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据清洗
- 数据仓库之数据及预处理
- ETL----从源数据到数据仓库的逻辑数据映射
- 【开发日记】马桶识别之数据清洗,通过Resnet50清洗脏数据
- POJ3468 A Simple Problem with Integers(线段树区间修改--动态实现)
- zookeeper安装和使用 windows环境
- JVM常见内存溢出问题归纳
- junit4单元测试的注释使用说明
- #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
- 数据仓库数据清洗之码值映射
- include标签
- HDU1321 ZOJ1295 Reverse Text
- 洛谷 P1057 传球游戏
- poj 2912 Rochambeau
- swift-下拉刷新实现原理(附Demo)
- 独家秘笈_block关键字的使用(通俗易懂+化繁为简)
- '<' is an unknown code
- 各软件JVM调优