上一篇简单介绍了一下阿里大神团队研发的数据抽取的工具——DataX,还是那句话,DataX的强大远远比介绍的多得多,有时间大家自己搭建一下、使用一下就了解了。本篇我们来介绍ETL的另一条主线,规划与设计主线。
规划与设计主线
规划与设计主线的第一步是描述所有需求和现状,需要强调的是所有!应为需求不细致、现状不明确、不贴合业务的数仓搭建的失败案例比比皆是,历来需求分析都是项目中最耗时也是最重要的一步。需求包括如下几方面:
- 业务需求
- 数据评估和数据源现状
- 监察需求
- 安全需求
- 数据集成
- 数据延迟
- 归档和沿袭
- 最终用户提交界面
- 可用的开发技能
- 可用的管理技能
- 已有的许可证
挑几点详细说明一下。所谓监察需求是指数据规范,也可以理解为数据质量的标准。什么样的数据是可用的、合法的,什么样的数据是需要处理后重新获取的,这部分需求要明确成文档;归档和沿袭顾名思义,归档就是指数据都需要在哪些节点进行数据集结来保证下游处理数据失败后不至于从源头重新获取,而是从集结(归档)区获取,至于沿袭就是指数据的血缘关系。被归档的数据表示数据的生命周期结束,而生命周期未结束的数据将会和其它数据结合产生新的数据或者直接提供给下游处理,这种数据的传承就是沿袭;最终用户的提交界面并不是指用户操作的系统界面,而更形象的描述应该是给最终用户的形式。比如以表的形式导入最终用户的关系型数据库或是以接口文件的形式亦或是平面文件等;已有的许可证指的是商业工具的许可,一般企业如果买了Oracle的许可则会利用Oracle来做数据仓库中的关系型数据库以此类推。
规划与设计主线的第二步是架构,架构的选型首先需要ETL创建方法的决定,这些决定包括:
- 手工编码还是使用ETL工具
- 选择批处理方式还是流式处理数据
- 使用水平任务依赖还是垂直任务依赖
- 自动调度
- 异常处理
- 质量控制
- 恢复与重启
- 元数据
- 安全
这些问题在之前数据流主线中都有提到,因此就不过多的解释了。 规划与设计主线的第三步是系统实施,这一部分包括:
- 硬件配置
- 系统及软件兼容性考虑
- 编写代码
- 确定相关实施文档
- 在实施节点的特定质量检查
在 ETL架构设计好后就应该确定实施部署了,首先要准备好实施文档,确定每个细节。选型好硬件和软件工具,尤其要注重兼容性,不要给自己挖坑,应对相应硬件及软件进行压测,根据压测数据分配资源。在实施过程中应在特殊的节点给予质量检查,确保项目的实施进度和产品的质量。
最后一步就是测试/发布了,这部分同样非常重要,其中的内容包括:
- 开发环境
- 测试环境
- 生产环境
- 版本发布流程
- 测试指标(书中未写到,个人觉得应该加上)
- 系统升级方案
- 系统快照和回滚过程
- 性能调优
测试/发布是一个循环的过程,要在测试和发布的版本中不断的迭代来完善ETL工具。以上就是规划与设计主线的内容,下一篇我们将介绍数据仓库的详细需求内容。