这些挑战可能包括:政治的、组织性的、功能性的或者技术性的。
方法论:敏捷BI
软件开发者们发现这些结构化的瀑布模型方法并不能适用于所有场景,尤其是在需求经常变化的情况下。为了解决这种需求经常变化的问题,出现了各种不同的“敏捷”开发方法。在这些方法中,也许Scrum方法是最著名的一个。
Pentaho 公司把开发Pentaho BI套件过程中使用的敏捷开发经验提升为敏捷BI方法。这样做不公可以给BI开发者提供一个有效的开发方法,而且可以改进Pentaho BI组件,使之可以用于或支持敏捷的工作方式。
敏捷方法的4条价值观
- 个体交互胜过过程和工具
- 可用的软件胜过完备的文档
- 客户协作胜过合同谈判
- 响应变化胜过遵循计划
敏捷宣言12条指导原则的主要含义
- 更早更快交付可用软件
- 欢迎需求的变更
- 业务人员和IT人员紧密地在一起工作
- 依赖于自驱动的开发者和自组织的团队
- 要经常面对面地讨论问题和过程
- 简捷,即尽最大可能减少不必要的工作
ETL设计
在开始构造ETL过程之前,应该在一个比较高的层次使用流程图工具来绘制一个流程图。在较细节的层次上,还要定义好转换的哪一部分可以重用。
例如,数据仓库的日期维度往往是一次性的工作,所以在一个单独的项目里设计一个可复用的日期维度转换。
所以,当开始构造数据转换时要考虑到转换是否要在其他方案里重用?如果重用,你就要花更多时间使转换更有通用性,例如在转换里增加额外的参数以设置不同的时间、数据库类型、连接参数等这些会发生变化的值。
获取数据
获取数据是ETL项目开始后面临的第一个问题。这里面包括:技术问题、企业内部的政策问题、制度问题等。
电子表格问题
在数据获取方面还有一个很大的问题就是数据的格式。在这个领域,最恶名昭著的恐怕就是Excel了。最好的建议就是不要接受以Excel格式提供的数据。除非你确认Excel文件是系统自动生成的而且生成Excel的机器和运行转换的机器属于同一个用户。
失败处理
一个基本的设计原则就是即使数据源没有成功连接,你的ETL作业也应该提示错误后退出,而不是异常退出。Kettle提供了很多功能:
- 测试资源库是否可连接
- Ping一台主机检查是否可连通
- 以返回的行数为条件判断 SQL 语句运行成功或失败
- 检查文件目录是否为空
- 检查文件、数据库表、表的列是否存在。
- 文件和目录的比较
- 设置FTP和SSH连接超时
- 每个作业项执行后,都有成功或失败的输出
增量数据捕获CDC
辨别出哪些数据发生变化,并抽取那些自上次抽取后发生变化的数据的过程被称为增量数据捕获,也叫CDC。
CDC两种分类
- 侵入式(intrusive)
- 非侵入式(non-intrusive)
数据质量
在设计数据转换流程时,要提前设想到你的数据会有质量问题,因此要考虑到如何处理这些问题。
数据分析
通过分析可以从技术上和统计上知道数据有多少、数据是什么样子。最常见的分析就是列分析,并获得下面一些分析结果:
- NULL或空值的个数
- 不同的值的个数
- 最小、最大、平均值(数值字段)
- 最小、最大、平均长度(字符串字段)
- 正则表达式(例如,电话号码字段)
- 数据的分布
数据检验
例如,NULL值检验
网友评论