ETL最终需要保证整个处理过程的可靠性、可用性、可管理性。
可靠性:ETL的处理过程必须始终运行。他们必须运行以提供及时的数据,这些数据的的所有细节都是值得信任的。
可用性:数据仓库必须满足其承诺的服务级别
可管理型:成功的数据仓库是永远无法实现的。将随着业务的发展而不断发展变化。ETL过程需要不断改进。
子系统二十二:任务调度器
所有企业数据仓库应该具有一个健壮的调度器。整个ETL过程在可能范围内应该是可管理的。
调度器不仅仅需要按照计划分派任务。调度器还需要识别和控制ETL任务之间的关系和依赖。如果组织工作处理为事实处理,则需要调度器支持您所选择的实时结构。
我们的任务控制服务需要包含哪些东西:
任务定义:编写ETL过程的执行流程
任务调度:基于时间或者事件进行调度。如果是基于某些事件,则需要监视任务状态标识,现存文件,创建日期等
元数据获取:任务调度器需要获取有关加载步骤进展情况的信息
日志记录:日志记录意味着收集有关整个ETL过程的信息,不只包含某一个时刻发生了什么。最好能将日志记录到数据库中,方便我们建立图表,方便后续的分析。
通知:ETL过程开发并部署之后,就可以不需要人参与执行。其运行不需要人的干预也不会出现错误
子系统二十三:备份系统
除了磁盘驱动器错误,电源供应中断,仓库还需要存储比操作系统更多的长期数据。尽管通常不是由ETL小组来管理,单备份和恢复过程通常是ETL系统设计的一部分工作。其目标是允许数据仓库在发生错误的时候能够继续工作。这一个工作包括备份需要的中间数据以便能够重启发生错误的ETL任务。存档与检索处理被设计用来确保用户能够访问已经从数据仓库移出到开销较低的,性能较差的介质中的历史数据。
完整的备份系统应该提供如下能力:
高性能
可以进行简单的管理
自动化的,远程代理操作
数据仓库的备份通常是物理备份。这是数据库系统在某一时间点的完整印像,包括索引和物理规划信息。
归档与检索:
确定将什么信息移除数据仓库是一个涉及成本效益的问题。因为保存数据需要成本,它会占用磁盘空间并使加载和查询时间变慢。
数据需要保留多久与行业、业务以及考虑中的特定数据有关。某些情况下以往的数据显然几乎没有什么价值。
自动化的,远程代理操作
子系统二十四:恢复与重启系统
ETL处理发生错误的常见原因包括:
网络错误
数据库错误
磁盘错误
内存错误
数据质量错误
突然发生的系统升级
为了让整个ETL处理不受这些错误的影响,需要一个固定的备份系统以及与之相伴的恢复和重启系统。首先寻找合适的工具并涉及将灾难的影响最小化的处理方法。当然恢复和重启系统要么继续进行停止了的工作,要么回滚所有的工作并重新开始。在错误发生的时候,首先要考虑的是尝试保留已经处理过的任务,并且从错误点重新开始。我们还要仔细考虑何时物理的将数据写到磁盘上,仔细设计恢复和加载日期/时间戳,顺序化事实表代理键,从而确保定义合适的重启逻辑。
子系统二十五:版本控制系统
1,是一种针对ETL流水线中所有逻辑和元数据进行归档和恢复时候具有“快速拍照”能力的系统。
2,它控制所有ETL模块和任务的签出和签入
3,在某些高度一致的环境中,归档完整的ETL系统环境以及相关归档和备份数据是同样重要的。需要为整个ETL系统分配住版本号,就想软件发布版本号一样。
子系统二十六:版本迁移系统
场景:当完成ETL的设计和开发ETL的过程,并建立了加载数据到数据仓库的任务后,按照组织所采纳的生命周期,任务必须被绑定并迁移到下一个环境-----从开发到测试再到最终投入运营
细节:
所有的后端操作应该进行严格的测试并且脚本化,无论是部署新的模式,增加列,改变索引,改变聚集设计,修改数据库参数,备份还是恢复。
对前端的操作实行集中式管理,在BI工具许可的情况下,部署新的BI工具,部署新的公司报表,改变安全计划都应当执行严格的测试和脚本话。
子系统二十七:工作流监视器(监控系统)
成功的数据仓库具有一致性和可靠的应用性,并且得到商业团体的认可。为实现这一个目标,ETL系统必须持续监视,保证ETL过程操作的有效性,保证数据仓库能够连续及时的进行加载。
工作流监视器是整个ETL流水线性能问题的分析基础。
常见的性能瓶颈问题:
1,针对源系统或者中间表低效索引查询
2,SQL语法导致优化器作出错误选择
3,随机访问内存不足,导致的内存颠簸
4,在RDBMS中进行的排序操作
5,缓慢的转换步骤
6,过多的I/O操作
7,不必要的读写
8,重新开始删除并重建聚集而不是增量式的执行这一操作
9,在流水线中过滤(改变数据获取)操作应用太迟
10,未利用并行化和流水线方式
11,不必要的事务日志,特别是在更新时候存在的事务日志
12,网络通行以及文件传输的开销
子系统二十八:排序系统
由于排序是非常基础的ETL能力,所以单独拿出做为一个不同的子系统,以确保其作为一个ETL结构的组件而受到适当的关注
一些列的技术都可以提供排序能力,ETL工具能提供排序能力,DBMS通过SQL Sort 子句提供排序能力等等,我们也可以使用专用的排序软件包。关键是找到选择最有效的排序资源和工具支持实际的需求。
子系统二十九:世系以及依赖分析器(数据族谱管理器)
世系:以中间表或者BI报表特定的数据元素开始,识别数据元素的来源,包含该元素以及其来源的其他上游的中间表,以及该元素及其来源的所有转换。
依赖:从包含在源表或者中间表的特定数据元素开始,识别所有包含该元素或者根据其推导产生的下游中间表和最终的BI报表,还包含所有应用到该数据元素的转换和其派生元素
子系统三十:问题提升系统(反馈系统)
一般来说ETL系统的支持结构应该遵循一个标准的支持流程:
首先,帮助台。用户通知错误的第一个接触点。帮助台负责确定有用的解决方案
其次,通知。这个层次通常是在线系统控制技术人员中的系统管理员或者DBA,能够对一般的基础设施方面的错误提供支持。
最后,ETL的管理人员是第三层支持,可以对ETL生产过程中出现的大多数问题提供解决方案。
子系统三十一:并行/流水线系统(资源管理系统)
在大型组织中,包含大量的数据,大型的维度和大量的事实,在这些限制条件下加载数据是极富挑战性的工作,并行流水线系统提供了在面对这些限制时保证ETL系统得以发布的能力。
该系统的目标是利用多个处理或者可用的网络计算资源,并行化是一种ETL流水线的每个阶段都可以采用的强大的改善性能的技术。
子系统三十二:安全系统
严重违反安全的情况可能来自组织内部而不是来自黑客。建议对ETL系统中所有数据和元数据采取基于角色的安全管理。为了支持合规性的要求,需要证明ETL模块的版本未被改变或者展示谁对模块进行了修改。
另外一个需要考虑的安全问题是:管理员如何访问生产数据仓库服务器或者软件。大多数情况下是 小组中无人具有安全权限,某些情况下存在每个人都具有访问一切的权限。另一方面,如果出现严重错误,DW/BI小组的人员要能够重置数据仓库服务器。最后,备份介质应当受到保护,备份介质应当受到于在线系统一样的安全保护
子系统三十三:合规性管理系统
合规性需求意味着无论何种理由,都不能改变任何数据。数据仓库必须自己保护合规性铭感的数据从其到来后具有可信度。
合规性系统的基础是几个已经被描述过的采用一些关键技术和能力的子系统之间的交互:
1,世系分析。表示最终数据块的出处,证明原始源数据增加了包括存储过程和手动改变的转换。
2,依赖分析。展示原始数据源的数据在何处被使用过。
3,版本控制。通过当时有效的ETL系统重新运行源数据,需要任何给定的数据源的ETL系统的准确版本
4,备份于恢复
5,安全
6,审计维度。将运行时的元数据环境直接与加载时获取的质量事件的数据联系起来。
子系统三十四:元数据管理系统
ETL负责使用并建立DW/BI环境中的大多数元数据。整个元数据策略的部分工作涉及专门获取ETL元数据,包括元数据,技术元数据,和业务元数据。需要在什么都做和都不做之间设计出一种平衡策略。确保在ETL开发任务中有时间来获取和管理元数据。
数据僧 历史文章
数据仓库-概述-读书笔记一
数据仓库-DW/BI架构对比-读书笔记二
数据仓库-事实表/维度表技术-读书笔记三
维度处理-数据仓库-读书笔记(四)
数据仓库-高级事实表技术-读书笔记五
数据仓库-高级维度表技术-读书笔记六
数据仓库,零售业务举例,维度模型设计4步骤,读书笔记(七)
数据仓库-零售业务举例维度表设计细节-读书笔记(八)
数据仓库-零售业务举例如何提高仓库扩展能力-读书笔记(九)
数据仓库-零售业务中库存如何设计-读书笔记(十)
如何使用缓慢变化维技术
数据仓库-订单管理应该注意那些
ETL中前期数据分析、变化数据探测,数据获取 注意事项
数据仓库基础概念分享
ETL过程的数据清洗和整合
数据的准备展现过程中如何处理维度
数据仓库中数据如何准备,处理,发布,展现
数据僧 参考资料
数据仓库工具箱