数据质量监控框架及解决方案总结

概述

随着业务发展和数据量的增加,大数据应用开发已成为部门应用开发常用的开发方式,由于部门业务特点的关系,spark和hive应用开发在部门内部较为常见。当处理的数据量达到一定量级和系统的复杂度上升时,数据的唯一性、完整性、一致性等等校验就开始受到关注,而通常做法是根据业务特点,额外开发job如报表或者检查任务,这样会比较费时费力。

目前遇到的表大部分在几亿到几十亿的数据量之间,并且报表数量在不断增加,在这种情况下,一个可配置、可视化、可监控的数据质量工具就显得尤为重要了。以下介绍几个国内外主流的技术解决方案及框架。

一.Apache Griffin(Ebay开源数据质量监控平台)

Griffin起源于eBay中国,并于2016年12月进入Apache孵化器,Apache软件基金会2018年12月12日正式宣布Apache Griffin毕业成为Apache顶级项目。

数据质量模块是大数据平台中必不可少的一个功能组件,Apache Griffin(以下简称Griffin)是一个开源的大数据数据质量解决方案,它支持批处理和流模式两种数据质量检测方式,可以从不同维度(比如离线任务执行完毕后检查源端和目标端的数据数量是否一致、源表的数据空值数量等)度量数据资产,从而提升数据的准确度、可信度。对于batch数据,我们可以通过数据连接器从Hadoop平台收集数据。对于streaming数据,我们可以连接到诸如Kafka之类的消息系统来做近似实时数据分析。在拿到数据之后,模型引擎将在spark集群中计算数据质量。

1.1 工作流程

在Griffin的架构中,主要分为Define、Measure和Analyze三个部分:

各部分的职责如下:

  • Define:主要负责定义数据质量统计的维度,比如数据质量统计的时间跨度、统计的目标(源端和目标端的数据数量是否一致,数据源里某一字段的非空的数量、不重复值的数量、最大值、最小值、top5的值数量等)

  • Measure:主要负责执行统计任务,生成统计结果

  • Analyze:主要负责保存与展示统计结果

基于以上功能,我们大数据平台计划引入Griffin作为数据质量解决方案,实现数据一致性检查、空值统计等功能。

1.2 特点

  • 度量:精确度、完整性、及时性、唯一性、有效性、一致性。

  • 异常监测:利用预先设定的规则,检测出不符合预期的数据,提供不符合规则数据的下载。

  • 异常告警:通过邮件或门户报告数据质量问题。

  • 可视化监测:利用控制面板来展现数据质量的状态。

  • 实时性:可以实时进行数据质量检测,能够及时发现问题。

  • 可扩展性:可用于多个数据系统仓库的数据校验。

  • 可伸缩性:工作在大数据量的环境中,目前运行的数据量约1.2PB(eBay环境)。

  • 自助服务:Griffin提供了一个简洁易用的用户界面,可以管理数据资产和数据质量规则;同时用户可以通过控制面板查看数据质量结果和自定义显示内容。

1.3 数据质量模型

Apache Griffin 是一个模型驱动的解决方案,用户可以根据选定的目标数据集或源数据集(作为黄金参考数据)选择各种数据质量维度来执行他们的数据质量验证。它在后端有相应的库支持,用于以下测量:

  • 精确度:度量数据是否与指定的目标值匹配,如金额的校验,校验成功的记录与总 记录数的比值。

  • 完整性:度量数据是否缺失,包括记录数缺失、字段缺失,属性缺失。

  • 及时性:度量数据达到指定目标的时效性。

  • 唯一性:度量数据记录是否重复,属性是否重复;常见度量为hive表主键值是否重复。

  • 有效性:度量数据是否符合约定的类型、格式和数据范围等规则。

  • 一致性:度量数据是否符合业务逻辑,针对记录间的逻辑的校验,如:pv一定是大于uv的,订单金额加上各种优惠之后的价格一定是大于等于0的。

1.4 官方及参考资料

二. Deequ(Amazon开源数据质量监控平台)

Deequ 是亚马逊开源的一个构建在 Apache Spark 之上的库,用于定义“数据单元测试”,用于测量大型数据集中的数据质量。同时它还提供了python接口PyDeequ, PyPi, Documents。PyDeequ,这是一个基于 Deequ(一种在亚马逊开发和使用的开源工具)之上的开源 Python 包装器。Deequ 是用 Scala 编写的,而 PyDeequ 可以使用 Python 和 PySpark(许多数据科学家选择的语言)的数据质量和测试功能。PyDeequ 能与许多数据科学库一起使用,使 Deequ 扩展其功能。此外,PyDeequ 可以与 Pandas DataFrames 进行流畅的接口,而不是在 Apache Spark DataFrames 内进行限制。

Deequ 可以计算数据质量指标,定义和验证数据质量约束,并了解数据分布的变化。使开发人员专注于描述数据的外观,而不是自己实施检查和验证算法。Deequ 通过checks提供支持。Deequ 基于 Apache Spark 之上实现,旨在扩展通常位于数据湖、分布式文件系统或数据仓库中的大型数据集(数十亿行)。PyDeequ 可以访问以上功能,也可在 Python Jupyte notebook环境中使用它。

2.1 特点

  • 指标计算——Deequ 计算数据质量指标,即完整性、最大值或相关性等统计数据。Deequ 使用 Spark 从 Amazon Simple Storage Service (Amazon S3) 等来源读取数据,并通过一组优化的聚合查询计算指标。可直接访问根据数据计算的原始指标。

  • 约束验证——用户可专注于定义一组要验证的数据质量约束。Deequ 负责导出要对数据进行计算的所需指标集。Deequ 生成数据质量报告,其中包含约束验证的结果。

  • 约束建议 - 用户可选择定义自己的自定义数据质量约束,或使用自动约束建议方法来分析数据以推断有用的约束。

  • Python 包装器——可使用 Python 语法调用每个 Deequ 函数。包装器将命令转换为底层 Deequ 调用并返回它们的响应。

2.2 架构

三. DataWorks(阿里巴巴数据质量监控平台)

DataWorks(数据工场,原大数据开发套件)是阿里云重要的PaaS(Platform-as-a-Service)平台产品,可提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。

DataWorks支持多种计算和存储引擎服务,包括离线计算MaxCompute、开源大数据引擎E-MapReduce、实时计算(基于Flink)、机器学习PAI、图计算服务Graph Compute和交互式分析服务等,并且支持用户自定义接入计算和存储服务。DataWorks可提供全链路智能大数据及AI开发和治理服务。

DataWorks,可对数据进行传输、转换和集成等操作,从不同的数据存储引入数据,并进行转化和开发,最后将处理好的数据同步至其它数据系统。

3.1 架构

3.2 数据质量

数据质量是支持多种异构数据源的质量校验、通知及管理服务的一站式平台。

数据质量依托DataWorks平台,提供全链路的数据质量方案,包括数据探查、对比、质量监控、SQL扫描和智能报警等功能。

数据质量监控可以全程监控数据加工流水线,根据质量规则及时发现问题,并通过报警通知负责人及时处理。

数据质量以数据集(DataSet)为监控对象。目前,数据质量支持EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute数据表和DataHub实时数据流的监控。当离线数据发生变化时,数据质量会对数据进行校验,并阻塞生产链路,以避免问题数据污染扩散。同时,数据质量支持管理历史校验结果,用户可对数据质量进行分析和定级。

在流式数据场景下,数据质量能够基于DataHub数据通道进行监控和断流,第一时间告警给订阅用户。数据质量支持设置橙色、红色告警等级和告警频次,最大限度地减少冗余报警。

四. DataMan(美团点评数据质量监控平台)

DataMan系统建设总体方案基于美团的大数据技术平台。自底向上包括:检测数据采集、质量集市处理层;质量规则引擎模型存储层;系统功能层及系统应用展示层等。整个数据质量检核点基于技术性、业务性检测,形成完整的数据质量报告与问题跟踪机制,创建质量知识库,确保数据质量的完整性(Completeness)、正确性(Correctness)、当前性(Currency)、一致性(Consistency)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容