抽取、转换和装载介绍(四)抽取数据
2016-04-11 10:24
204 查看
ETL架构中最初几个子系统是了解源数据和抽取数据的问题,并且将数据传输到数据仓库环境中,这样ETL就能独立于工作系统对这些数据进行操作。最初的子系统接口是面向源系统的,用于访问所需的数据。
子系统1——数据探查
这部分是对数据技术性分析,对数据的内容、一致性和结构进行描述。
战略性任务:一旦确定了某个候选的数据源,要进行轻量级的探查评估确定该数据源是否适合于包含到数据仓库中。这个很重要,免得项目搞了几个月最后发现数据源存在问题。
战术性任务:通过一些列探查尽可能多的确定出各种问题。
探查阶段为ETL团队提供了指导,需要多少数据清洗机制,并且不至于因为创建处理脏数据的系统分散了注意力而遗漏项目的主要环节。
子系统2——变化数据捕捉系统
由于大多数数据仓库的表都很大,不可能在每个ETL周期中都进行更新。
因此系统必须一定的功能,仅在当前源数据和上次更新后的数据相比发生改变时,才传递相关变化。
变化数据捕捉的思想是:仅提交那些和上一次装载相比变化了的数据,系统主要目标是:
可将变化的源数据分离出来进行有选择的处理,而不是进行完全更新。
捕捉对源数据的所有变化(删除、编辑和插入)。
使用原因代码来区别实际更新与错误的更正。
支持对其他的源数据的合规性跟踪。
尽可能早的实施变化数据捕捉,最好在大量数据传输到数据仓库之前就完成相关工作。
子系统3——抽取系统
更多的情况是每个源都可能是在不同的系统、环境或者DBMS中。
比如,关系DBMS、平面文件、XML源、Web日志或者复杂的ERP系统等形式存在。
从源系统中获取数据有两种方式,以文件形式或者以流的形式。
以流方式从源数据系统流出经过转换引擎到写入数据库将是一个完整的过程。
而以文件方式则包括三到四个离散步骤:将数据抽取到文件中、将文件移动到ETL服务器、转换文件内容和将转换数据写入到数据库中。
流式传输的有点很明显,但是文件传输方式也有其有点:
抽取的文件容易从不同的点重新开始,只要保存了文件就可以不影响源系统的前提下重新运行装载。
使用网络传输可以很轻松的对数据加密。
传输之前或者之后很容易比较文件,一次验证所有的数据是否都以正确传输。
子系统1——数据探查
这部分是对数据技术性分析,对数据的内容、一致性和结构进行描述。
战略性任务:一旦确定了某个候选的数据源,要进行轻量级的探查评估确定该数据源是否适合于包含到数据仓库中。这个很重要,免得项目搞了几个月最后发现数据源存在问题。
战术性任务:通过一些列探查尽可能多的确定出各种问题。
探查阶段为ETL团队提供了指导,需要多少数据清洗机制,并且不至于因为创建处理脏数据的系统分散了注意力而遗漏项目的主要环节。
子系统2——变化数据捕捉系统
由于大多数数据仓库的表都很大,不可能在每个ETL周期中都进行更新。
因此系统必须一定的功能,仅在当前源数据和上次更新后的数据相比发生改变时,才传递相关变化。
变化数据捕捉的思想是:仅提交那些和上一次装载相比变化了的数据,系统主要目标是:
可将变化的源数据分离出来进行有选择的处理,而不是进行完全更新。
捕捉对源数据的所有变化(删除、编辑和插入)。
使用原因代码来区别实际更新与错误的更正。
支持对其他的源数据的合规性跟踪。
尽可能早的实施变化数据捕捉,最好在大量数据传输到数据仓库之前就完成相关工作。
子系统3——抽取系统
更多的情况是每个源都可能是在不同的系统、环境或者DBMS中。
比如,关系DBMS、平面文件、XML源、Web日志或者复杂的ERP系统等形式存在。
从源系统中获取数据有两种方式,以文件形式或者以流的形式。
以流方式从源数据系统流出经过转换引擎到写入数据库将是一个完整的过程。
而以文件方式则包括三到四个离散步骤:将数据抽取到文件中、将文件移动到ETL服务器、转换文件内容和将转换数据写入到数据库中。
流式传输的有点很明显,但是文件传输方式也有其有点:
抽取的文件容易从不同的点重新开始,只要保存了文件就可以不影响源系统的前提下重新运行装载。
使用网络传输可以很轻松的对数据加密。
传输之前或者之后很容易比较文件,一次验证所有的数据是否都以正确传输。
相关文章推荐
- 在开发iOS程序时对日期处理的总结(转)
- zzulioj--1870--马拉松后记(暴力求解)
- PHP获取不重复的5个随机字符
- 理解RESTful
- android studio 修改包名
- php中json_encode中文编码问题
- Net分布式系统之一:系统整体框架介绍
- 把UIGestureRecognizer 中的点击事件变成Block
- java获取客户端访问ip
- SQL 类型和C#类型对照
- Whuoj 1608 状压DP
- Linux下配置nerdTree
- android开发 gridview的item与子控件焦点问题
- Android IOS WebRTC 音视频开发总结(六八)-- Google: What's next for WebRTC
- jenkins排错---Waiting for next available executor
- 给自己的一些话
- 针对php网站攻击的几种方法
- sqlserver批量新增数据
- HttpClient学习整理
- Python的递推式构造列表(List comprehension)