DataOps数据安全稳定生产实践

概述

DataOps,通过结合敏捷开发、数据管理和数据科学的最佳实践,能够显著提高数据管道的效率和质量。在DataOps整个数据研发运营流水线上,数据开发管理和数据运维是两个极为关键的环节。

本实践围绕这两个环节展开介绍,基于NYC TLC Trip Record Data,构建pipeline进行数据清洗和指标统计分析,产出数据供BI查询使用。通过本实践,可了解到如下内容:

  • 如何便捷地构建定时调度运行的数据处理pipeline,对数据同步、SQL任务等进行统一的调度编排。
  • 如何利用监控告警规则,及时监控任务运行的稳定性。
  • 如何利用数据质量监控规则,监控数据产出的正确性、及时告警,防止问题数据扩散。
  • 如何利用完善的运维措施,来快速定位问题原因。
  • 如何提高监控告警的处置效率。

Pipeline

整个Pipline包含如下五个任务节点:

  • 1_同步_OSS:从OSS端,批量同步数据,写入到Lakehouse
  • 1_同步_Kafka:从Kafka端批量同步数据,写入到Lakehouse
  • 2_数据清洗:对于源端同步进来的数据进行简单清洗加工、关联维度表进行拓宽
  • 3_指标计算_daily汇总:计算关键的业务指标
  • 6_BI_简单查询:使用SQL模拟BI查询的简单示意

主要步骤

任务开发调度和提交发布运行

使用 任务开发 模块的功能,来编排整个pipline:首先进行数据同步导入,然后编写SQL代码进行数据清洗,按天维度统计出行数据、计算平均每单金额、平均乘客数等指标,最后供BI报表查询。

任务开发

在任务开发界面,通过下图的新建按钮,可以按需创建出同步任务、SQL任务等任务类型:

任务调试运行

任务创建后,可进行任务的编码和配置,完成这些操作后,可使用“运行”功能来测试代码逻辑是否正常。

任务调度配置和提交发布

完成测试后,在“配置”选项中,可以设定任务的调度属性,包含设定定时调度的时间、调度的上游依赖等属性。配置完成后,通过点击“提交”按钮,将任务发布到生产环境进行定期调度运行。

配置监控告警监控任务运行情况

任务上线发布后,使用 监控告警 模块,可配置监控规则,来及时监测任务运行失败等需要观测的状态或者指标,并通过告警中配置的通知渠道,通知给负责人来处理。

监控规则配置

以本次示例为例,配置监控任务实例的运行失败状态、并给定具体的任务名称,并配置好通知渠道(基于通知策略)和通知人员等,如下图所示:

在通知策略中,可配置推送的间隔和次数,比如配置每10分钟发送一次、最多发送6次,来避免告警接收遗漏。

使用数据质量监控数据产出的正确性

除监控任务调度运行状态外,为了避免因为上游源头数据变更或者后续代码自身的变更引入逻辑问题,也需要监控数据的正确性、合理性等,以确保业务方对数据的安心使用。这里会使用到 数据质量 模块的功能:

质量规则配置

数据质量 模块,可以配置数据质量的监控规则,来监控任务产出的表中的数据。

以 dws_tripdata_summary 表中的 avg_passenger_count(平均乘客数) 字段为例,监控其最大值要大于1(即平均至少有1个乘客),可以按照如下方式配置。

质量规则运行

质量规则支持多种触发方式,比如手动触发、定时触发和周期任务触发。手动触发可用于测试规则配置的正确性。在本实例中,把质量规则配置为“周期任务触发”,即通过表的产出任务来触发,以达到在任务运行完成后即刻触发质量校验的目的。并配置为使用“强阻塞调度”模式,此方式意味着如果质量规则校验失败,则会将关联的调度任务的实例状态也置为失败,从而阻塞下游任务实例的调度运行,防止数据问题扩散。

生产问题的运维处置

  1. 在任务调度运行之后,通过监控,检测到任务实例运行失败,收到IM告警
  2. 基于监控告警的内容,可以直达告警对象
  3. 排查任务实例失败的原因,从任务的变更记录查找发现存在代码变动
  4. 在运维中,点击“编辑”按钮,前往查看任务详情。在任务的版本中,可以查看到任务的提交历史记录。
  5. 通过版本的对比功能查看具体的变动。定位到是代码逻辑改动引入问题,进行代码回滚操作来修复,重新提交。
  6. 任务重新提交后,在实例的详情页,进行实例的运维处置、重跑任务实例,注意选择使用最新的代码和配置
  7. 实例重跑成功后,系统会自动触发数据质量规则的重跑,校验成功。
  8. 查看任务状态的监控,实例状态通过重跑恢复成功后,告警会自动关闭、不再推送,完全不需人工操作处置

小结

通过Lakehouse Studio产品内置的数据开发、任务调度、任务运维、数据质量和监控告警的功能的配合使用,在任务运行失败时,能第一时间告警通知到责任人进行处置;通过操作审计定位变动、利用版本管理进行变更回滚、基于回滚后的代码重跑任务实例等,可进行快速处置;同时监控告警事件和任务实例状态联动,重跑任务实例成功,会自动关闭告警,不需手动操作,减少告警处置环节。可大幅节约问题排查处置和数据生产恢复时间。

这些功能,完整覆盖Dataops种数据开发管理和数据运维两个关键环节的使用所需,能为“可测试、可监控、可回滚”的数据安全稳定生产,提供坚实的落地保障。

联系我们
预约咨询
微信咨询
电话咨询