使用 Airflow、Presto 和元数据契约稳定 ETL 管道

主要观点:

  • 某天仪表盘显示转化率下降 18%,看似一切正常但实则是数据管道的无声数据漂移,而非真正的故障。
  • 曾依赖 JSON 事件数据,因上游事件结构变化导致设备值变为 NULL,虽无错误但数据已被破坏。
  • 根源是缺乏合同约定,ETL 直接解析 JSON 数据未进行验证,导致数据不一致且难以检测。
  • 修复措施包括集成 Great Expectations 进行验证、存储 JSON 模式、引入 Marquez 进行血统追踪以及更新 DAG 设计模式等。
  • 结果是减少了回填操作,提升了数据质量和信心,改变了文化,从被动清理转为主动保障。
  • 教训是绿色的 DAG 不意味着好数据,合同很重要,要早期发现问题,加强可观测性,构建信任。
  • 要让管道快速失败,为人眼可见而设计,验证关键数据,避免无声的数据漂移。

关键信息:

  • 维护的行为分析仪表盘由 Hive 提供动力,通过 Presto 查询,由 Airflow 刷新。
  • 周一早上出现注册转化率突然下降,工程指标正常但数据有问题,追溯到上游事件结构变化。
  • 最初解析 JSON 数据未进行验证,上游事件结构改进未与数据消费者建立合同。
  • 集成 Great Expectations 进行预转换验证任务,存储 JSON 模式并与语义版本关联,失败时 DAG 停止。
  • 引入 Marquez 进行血统追踪,更新 DAG 设计模式,将验证作为摄取后的分支任务。
  • 结果包括查询延迟下降、手动干预减少、事故响应更快,文化上重建了信任。

重要细节:

  • 示例 SQL 代码展示了预期和实际到达的事件结构差异。
  • 详细说明了各种工具的使用,如 Great Expectations、Airflow、Marquez 等。
  • 列举了具体的案例,如关键字段的 97%空值在两分钟内被捕获。
  • 强调了工具和姿态的改变,从 reactive 到 proactive 的转变。
阅读 89
0 条评论