ETL

ETL方法论:数据探查

1. 业务探查

1.1. 业务流程调研

  • 业务流程:
    • 明确具体的业务流程;
  • 业务数据:
    • 将数据与业务过程联系起来;
    • 明确每一步业务,会对那些数据、产生哪些影响;

1.2. 业务系统调研

业务系统探查,最重要的是明确业务提供方的信息。

  • 部门信息

  • 名称信息

  • 系统级别

  • 地域信息

  • 上线时间

  • 系统状态

    • 如当前处在试运行阶段,需要考虑系统后面会不会变动,数据结构和内容后面会不会变动。

    • 如系统已不再运行,则需要考虑系统有没有接入的价值。

  • 业务联系人

    • 需要有清晰的接口人,协助梳理业务规则。

2. 数据源探查

2.1. 存储介质探查

  • 数据库类型
    • 是关系型数据库、还是非关系型数据库, 是 MySQL、Oracle、还是 redis、HBASE
  • 文件服务器类型
    • 存在FTP服务器、还是 HDFS 文件系统。
  • 手工数据

2.2. 访问方式探查

  • IP、端口号、账号密码、用户名、查询用户、存储路径、字符集。

3. 数据集探查

3.1. 基础信息探查

  • 表标识
  • 表名称

3.2. 规模信息探查

  • 事实表
  • 维度表
  • 业务分类

3.3. 规模信息探查

  • 总量
  • 增量
  • 大小
  • 存储周期

3.4. 状态信息探查

  • 状态(启用 / 停用)
  • 更新频率
  • 更新方式

4. 数据项探查

4.1. 基础信息探查

  • 表示
  • 名称
  • 类型
  • 长度
  • 精度

4.2. 属性信息探查

  • 字典项
  • 标准数据元
  • 增量字段
  • 主键字段
  • 外键字段
  • 唯一主键
  • 关联信息
    • 比如,事实表的外键字段、关联哪个维度表的主键字段。

4.3. 问题信息探查

  • 有效性
  • 合规性
  • 空置率

5. 数据探查步骤

  • 简单看下表的元数据信息:
    • 重点关注命名、备注、字段类型、最后更新时间等;
    • 数据量级、数据增量;
  • 简单拿几条数据出来看看:
    • 需要用到的列是查看的重点;
    • 同时要确认真实数据跟元数据信息是否一致,
      • 不一致的要进一步求证,是自己理解错误?还是脏数据影响?还是元数据错了?
  • 对关键字段需要查询下分布情况:
    • 如果发现跟常识或者跟自己对业务的理解存在偏差,就需要进一步求证,看是数据问题?还是自己认知问题?还是单位或计算口径问题?
    • 空值率、异常数据等在这一步也需要被发现。
  • 着重看下数据的完整性:
    • 比如数据内容(或列)缺失、数据条数缺失等。
  • 看看有没有其它数据质量问题:
    • 比如重复数据、脏数据、编码映射问题等。
  • 确认好 join 字段:
    • 需要使用多张表的时候,要确认好 join 字段,并确保两表之间是 1:m 的关系;
    • m:n 的关系很少碰到,并且多数情况下是自己用错了。
  • 大致评估出实际的开发工时:
    • 需要参考的因素如下:
      • 需求的复杂度;
      • 数据源的理解探查难度;
      • 数据源的数据质量(是否需要特别的清洗、编码映射、缺失数据补全)
      • 数据存储结构转换成最终需求的复杂度(有的需要分多步落中间表完成,有的源表数据直接就是最终需要的数值)