10 一种数据清洗方案的设计

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

SOURCEID
VARCHAR2(80)
原有业务系统源字段的代码 ID值
SOURCENAME
VARCHAR2(80)
原有业务系统源字段对应的 代码名称
ETLDATE DONE_FLAG
MAIN_KEY
DATE CHAR(1)
VARCHAR2(60)
ETL 时间 0:未处理,1:有效数据, 已处理,2:脏数据,已处理。 原业务系统中主要用于限制 数据范围的字段名,一般为
用于参数文件内容排序,按
行号从小到大的输出到文件

COL1
COLB
各 WorkFlow 或者 session 参 数的标题行
COL2
COLB
各变量的名称及内容
此表的用途在于当有脏数据产生时,该视图 将有记录,可以生成脏数据所对应的参数文件。 该参数文件可用于脏数据重抽。
结束语
入公司发展战略、管理体系和日常经营活动的主 要目标。
时间型主键
KEY_VALUE KEY_TYPE REMARK
VARCHAR2(20) CHAR(1) VARCHAR2(255)
原业务系统的主键字段的值 0:日期,1:字符,2:数值 说明
字段
ETL session 表(TB_SYS_ETL_SESS) 数据类型
备注
TB_NAME PURPOSE
VARCHAR2(100) CHAR(1)
脏数据处理步骤
脏数据处理整体的步骤为: 数据抽取时产生脏数据,插入脏数据处理表 中。 在 WEB 界面中对产生的脏数据进行处理, 分别针对脏数据和非脏数据进行处理。 针对已经处理的脏数据进行重抽,并删除已 处理的脏数据。
开始
数据抽取 输出 脏数据记录 输入
WEB界 面中脏数
据处理
修改
基础编码 编码映射表 ETL参数文件
来自代码种类表 CODETYPE 来自代码表
SOURCETABENAME SOURCEFIELDNAME SOURCECODETABLENAME
VARCHAR2(30) VARCHAR2(50) VARCHAR2(50)
CODECONTENT 原有业务系统源数据表 原有业务系统源字段 原有业务系统对应的源代码 表
输入
结束
脏数据重 抽
删除
删除已处理
判定
脏数据
图 2 脏数据处理流程
数据抽取
在数据抽取过程中所有的代码转换都通过代 码转换表(CODEMAPPING)进行转换。当在代 码转换表中找不到该代码时,该条数据即为脏数 据。当确定数据为脏数据时需要将该信息记录在 脏数据表(TB_SYS_ETL_DIRTYDATA)中。
狭义的数据中心是指数据仓库和建立在数 据仓库之上的决策分析应用,具体包括:数据源 分 析 , 数 据 的 ETL(Extraction Transformation Loading),ODS(Operational Data Store)数据库, 数据仓库,数据集市,分析应用和元数据管理等。
脏数据是指源系统中的数据不在给定的范 围内或对于实际业务毫无意义,或是数据格式非 法,以及在源系统中存在不规范的编码和含糊的 业务逻辑的数据[3]。在本文中脏数据特指源业务 系统不规范编码的数据。
前是一件非常困难的事情。好的脏数据处理方 案,可以起到事半功倍的效果。
本文设计了脏数据的处理方案,目的就是提 高脏数据的处理效率和统一脏数据处理模式。
关键定义
数据中心是指企业的业务系统与数据资源 进行集中、集成、共享、分析的场地、工具、流 程等的有机组合:数据仓库及其分析应用是数据 中心的一个主要应用;数据中心包括了操作型数 据和分析型数据以及数据与数据的集成/整合流 程;数据中心提供所有应用系统(包括集中的业 务应用系统、业务应用系统数据库、数据交换平 台、应用集成平台、数据仓库)的运营场所;数 据中心也是容纳用以支持应用系统运行的基础 设施(包括服务器、网络、存储设备)的物理地 点[2]。
脏数据处理方案
数据中心是为电网生产、建设、企业经营、 综合管理等提供服务的统一信息平台,是各业务 应用系统的数据共享平台,是企业级综合分析与 辅助决策的支撑平台。
业务系统是数据中心的―供应商‖;业务系统
1761
重庆市电机工程学会 2012 年学术会议论文
的建设单位是数据中心的―生产商‖;数据中心是 业务系统的提升和补充, 并非取代;数据中心 是业务系统数据的有机融合,并非简单堆积。
但是,各业务信息系统缺乏统一的数据标准 规范。企业的资源管理出现了信息交叠和信息资 源浪费等问题。在系统信息兼容性,数据一致性 方面需整合,重复录入、重复报表的现象仍然存 在,给基层单位增加了不必要的工作负担。数据 作为企业重要资源亟需提升其利用价值[1]。数据 中心的数据在抽取过程中难免产生脏数据,如果 不处理脏数据,则会影响数据的完整性、有效性。 如果采用手工方式处理脏数据,在大量的数据面
一种数据清洗方案的设计
一种数据清洗方案的设计
吕小红 1+
1(重庆市电力公司检修分公司,重庆市 400039)
摘要:数据是企业信息化建设的生命线,―三分技术,七 分管理,十二分数据‖。数据清洗是提高数据集成数据质 量的一个重要手段。为有效保障应用集中、信息共享和 消除―信息孤岛‖,本文从信息化标准体系入手,设计了一 种数据清洗方案,将数据转换和数据清洗两者结合起来, 强化清洗过程的描述能力,对数据中心的脏数据进行处 理,从而提高脏数据的处理效率和统一脏数据处理模式, 并整体提升企业信息化建设的水平。
源 ID
源名称
ETL 时间 处理标志
主键名称
主键值 主键类型 备注
字段名称 表名 用途
SESSION 名称 目录名 工作流名称 维护人员 维护时间 备注
字段
ETL脏数据表(TB_SYS_ETL_DIRTYDATA)
数据类型
备注
TYPEID SYSTEMID
VARCHAR2(3) VARCHAR2(3)
展示层
业务应用
安全生产数据集市
电网设备数据集市
E
(O(ODDSS))
电网运行数据集市
T
用电客户数据集市
L
电量电费数据集市
数数据据仓仓库库
财务绩效数据集市
。。。。数据集市
安全生产分析 电网设备分析 电网运行分析 用电客户分析 电量电费分析 财务绩效分析 。。。。分析
图1 数据层次
本文侧重于 ETL 过程中产生的脏数据处理。 数据清洗的过程是从大量原始数据中使用一系 列逻辑判断,检查数据是否是符合数据仓库的数 据,从而选择做进一步保留或过滤的动作[4]。文 献[5]指出,目前数据清洗的主要问题是:对数据 的检查和修复的动作或者使用硬编码,或者只是 由人工来判断。在使用硬编码的方式下,需要清 洗的数据定义不发生变化,而一旦变化则需要重 新修改清洗部分的代码,重新编译,导致系统的 可扩展性和灵活性较差,而且硬编码的清洗过程 描述性较弱,难以应对复杂逻辑的数据清洗;在 使用人工判断的情形下,只能处理较小的数据 量,不仅增加了人们的工作量,而且质量和准确 性较差,对于大规模的数据清洗则无能为力。
数据重抽 ETL 脏数据重抽流程: 1、将脏数据参数文件视图
( VI_SYS_DIRTY_DATA_PARA ) 生 成 参 数 文 件。按行号的顺序,生成到参数文件中,将列 1, 列 2 的内容通过行列转换的方式输出到文本文 件中。
2、通过参数文件中的$$TABLES 变量得到 是否有新的已处理脏数据。如果$$TABLES 中有 内容则有脏数据,如果为空,则没有需要处理的 脏数据。当没有已处理脏数据时跳回第 1 步。有 脏数据则进入第 3 步。
参考文献
本文构想了一种脏数据的处理方案,目的是 提高脏数据的处理效率和统一脏数据处理模式。 这种方案将有助于建立统一数据模型,实现企业 信息资源的全面共享和管理价值的增值,实现公 司信息管理从分散管理到集中管理的转变;实现 主要信息系统实用化、基础数据及时准确、业务 流程完整顺畅、系统操作常态实用,信息系统成 为纵向贯通和横向集成的业务管理平台,有效融
3、利用第一步所生成的参数文件中的 $$WHERECOONDITION 变量对相应的脏数据 源业务表进行重抽。在抽取过程中删除相应的脏 数据记录。
开始
脏数据参数 文件视图
输入
查询脏数 据
生成
参数文件
不存在
存在已 处理有 脏数据
输入
存在 输入
ETL session 表
相应 session重

结束
图 4 ETL脏数据重抽流程
4、新脏数据的时间戳的值与旧脏数据时间 戳的值进行比较。如果大于则直接跳到第 6 步。
5、更新新时间戳的值到脏数据表中。 6、脏数据处理结束。
开始
是否为脏 数据
插入脏数 据

更新时间 戳


脏数据是 否已经存


新时间戳 小于旧时 否
间戳
否 结束
图 3 ETL抽取脏数据处理流程
WEB 界面脏数据处理 脏数据通过 WEB 界面展现出,由脏数据管理人 员进行处理决定。分为两种情况:第一种是脏数 据确实为脏数据,则维护该数据抽取相关 MAPPING 的参数文件,将该脏数据排除。另一 种为该代码为有效代码,此时需要在 ODS 库中 相应的编码表中新建一个编码,并在代码映射表 中插入相应的记录。 数据表的设计
字段名称 代码种类 ID 业务系统 ID
字段 TYPEID SYSTEMID
代码映射表(CODEMAPPING) 数据类型 VARCHAR2(3) VARCHAR2(3)
源表名 源字段名 源代码表名
SOURCETABENAME SOURCEFIELDNAME SOURCECODETABLENAME
VARCHAR2(30) VARCHAR2(50) VARCHAR2(50)
重庆电力依托企业门户和数据中心的搭建, 实现了跨业务的数据集成,资源配置趋于合理, 信息―孤岛‖现象逐步减少。通过 ERP、生产管理、 调度自动化、营销管理、电力市场交易运营、安 全监督管理、协同办公、应急指挥、农电业务应 用、招投标管理、数字档案馆、国际合作、纪检 监察、审计、法律事务等系统的建设,统一管理 模式的业务平台基本建成。
原有业务系统源数据表 Session 的用途:0:全量,1: 增量,2:脏数据重抽,3: 其他
SESS_NAME FLDR_NAME WFL_NAME OPRTR OPRT_TIME REMARK
VARCHAR2(100) VARCHAR2(100) VARCHAR2(100) VARCHAR2(20) DATE VARCHAR2(255)
VARCHAR2(80)
VARCHAR2(80)
VARCHAR2(36) VARCHAR2(80) VARCHAR2(255)
原有业务系统源字段的代码 ID值 原有业务系统源字段对应的 代码名称 转换后的代码 ID 值 转换后的代码名称 一些代码说明
字段名称 代码种类 ID 业务系统 ID
源表名 源字段名 源代码表名
业务系统侧重专业应用,数据中心强调主题 分析,两者相辅相成,构造企业级综合分析和高
级应用;业务系统支撑数据中心,数据中心规范 业务系统,两者相互作用,构成统一的、完整的 电力信息系统。数据的层次关系如图 1 所示。
数据的获取/抽取/清洗/整合/分析/展现应用
数据源层
数据获取层
数据仓库层
数据集市层
数据分析 应用层
备注 来自代码种类表 CODETYPE 来自代码表 CODECONTENT 原有业务系统源数据表 原有业务系统源字段 原有业务系统对应的源代码 表
1763
重庆市电机工程学会 2012 年学术会议论文
源 ID
源名称
目标 ID 目标名称 备注
SOURCEID
SOURCENAME
DESTINATIONID DESTINATIONNAME REMARK
如图表 3 2 所示 ETL 抽取时脏数据处理流 程:
1、判断是否为脏数据,即在代码转换表中找 不到新代码。
2、判断该记录在脏数据表中是否存在。判断 条件为代码种类 ID、业务系统 ID、源表名、
1762
一种数据清洗方案的设计
源字段名,源 ID 全部相等。如果存在跳到第 4 步。
3、将脏数据插入到脏数据表 (TB_SYS_ETL_DIRTYDATA)中。数据插入后 直接到第 6 步。
关键词:脏数据 数据清洗 数据中心 重庆电力
引言
―十一五‖以来,重庆电力信息化坚持以业务 需求为导向,以建设 ERP 系统平台为主线,以业 务管理信息化为重点,以标准化建设为原则,快 速推进 SG186 工程建设。信息化工作在信息网络 基础设施建设、集中式信息系统开发、信息安全 体系架构和信息化管理等方面全面提高。
SESSION 名称 Session 所在目录 调用 SESSION 的工作流名称 记录信息的维护人员 记录信息的维护时间 对维护进行说明
1764
一种数据清洗方案的设计
字段名称 行号
参数标题 参数内容
字段
脏数据参数文件(VI_SYS_DIRTY_DATA_PARA)
数据类型
备注
ROW_Nቤተ መጻሕፍቲ ባይዱM
VARCHAR2(100)
相关文档
最新文档