ETL中前期数据分析、变化数据探测,数据获取 注意事项

网络上或者数据仓库工具箱都提到总共会有34个子系统。个人理解的是这34个子系统都不会独立存在,也不需要一次全部去实现。根据当前业务的发展的阶段,当前最紧急的问题展开。

获取数据

从源系统中收集原始数据,为之后的数据处理提供“粮食”,存储在ETL环境的磁盘上。

子系统一:数据分析

对源数据进行分析,包括数据内容,一致性,结构的描述。一但确认数据源就要立即展开轻量级的评估工作。最终确定数据源是否可用,今早发现数据源是否能够支撑业务。


数据分析

子系统二:变化数据获取系统

将最新的数据源分离出来被称为变化数据获取(Change Data Capture,CDC),背后的思想是:仅仅传输那些上次加载后发生变化的数据。


变化数据
变化数据获取子系统主要目标包括:

1,分离变化数据以允许可选在加载过程而不是完全更新加载
2,获取源数据所有的变化(删除、更新和插入),包括由非标准接口所产生的变化
3,用变化原因标记变化了的数据,以区分对错误更正和真正的更新
4,利用其它的元数据支持合规性跟踪
5,尽早执行CDC步骤,最好是在大量数据传输到数据仓库前完成

获取源数据变化可以采取的几种方式

1,审计列。这些列一般都是在数据库在插入或者更新的时候,激活触发器自动而产生的。这些一般存储着一条记录的插入或者修改时间
2,定时获取。通常会选择所有那些建立日期或者修改日期字段等于SysDate-1 的行。风险在于如果晚间加载过程失败并且推迟了一天,那就意味着丢失的数据将无法再进入数据仓库
3,全差异比较。将昨天和今天的数据进行逐个比较,找到那些发生了的变化的数据。缺点是:对资源消耗巨大。可以尝试采用CRC(Cyclie Redundancy Checksum)快速检出某个复杂的记录是否发生了变化,而不需要对每一个字段进行校验
4,数据库日志抓取。一旦数据日志被情况,日志中包含的所有事务都会丢失,一定要和DBA沟通好,请他未为满足特殊需求设立一个专门的日志。

子系统三:获取系统

ETL系统通常会被要求从范围广泛的系统中获取设计多种不同类型和固有难题的数据。这些不是ETL工具或者小组经验可以支持的,在此情况下,请求所有者将这些原系统转换为平面文件。
1,对于比较古老的系统,最容易的办法是采用文件形式,将这些文件移动到ETL服务器上。
2,如果浙西数据在数据库中,可以按照流来设置,其中数据流出源系统,通过转换引擎,从单一过程进入过渡数据库。
3,如果数据量巨大,需要提前对数据进行压缩。且在加密前压缩。

数据清洗和整合

清洗与整合数据是ETL系统的关键任务。
如果做好数据清洗的工作?提高数据数量文化与过程
1,通过技术方面的解决方案,增加录入数据的限制性约束,来改善数据质量的问题。
2,当然纯粹的通过技术的方式无法取得成功。我们需要逐步建设数据质量文化。
3,建设数据质量文化的经验:
    定义一个针对数据质量文化的高级别承诺。
    在执行层面上发起过程改造
    投资用于改进数据录入环境
    投资改进应用集成
    投资用于改变工作过程
    促进端到端的团队意识
    促进部门间合作
    大力褒奖卓越的数据质量
    不断度量并改进数据质量

数据获取

子系统四:数据清洗系统

ETL数据清洗过程通常希望订正脏数据,同事希望数据仓库能够提供对组织生产系统中数据的准确描述。
数据清洗系统的目标
1,提供清洗数据,获取数据质量事件,以及度量并最终控制数据仓库中的数据质量的全面结构。
2,今早诊断并分类数据质量问题
3,获得更好的数据
4,提供在ETL中可能遇到的数据错误的专门描述
5,获取所有数据量错误以及随时间变化精确度量数据质量矩阵的框架
6,附加到最终数据上的质量可信度度量
数据清洗的做法:
1,质量检测。每个质量加测单元就是一个测试单元,如果测试成功,就会不会有事情发生,否则一定会在错误事件模式中出现错误行,并做选择,是终止过程,还是将错误数据发到挂起状态,还是对数据做标记。
2,对质量事件的响应。上面已经提到。
    终止过程
    错误记录发送到搁置文件中,以便后续处理
    对数据进行标注,并将其放到流水线下一步
无论如何,第三步是目前为止最好的选择。


数据清洗

你可能感兴趣的:(ETL中前期数据分析、变化数据探测,数据获取 注意事项)