数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis
开源数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis。
概述
数据质量监控(DQC)是最近很火的一个话题,也是数据治理中最重要的一环。有一句话说得好。数据质量未必是数据治理中最重要的一部分,但是数据质量可能是让数据治理工作全部崩盘的第一步。
所以做好数据质量监控非常重要,废话少说本文将从开源数据质量解决方案预研的角度,带大家了解目前四个比较成熟的数据质量管理工具,希望对大家做技术选型的时候有一些帮助。
对于开源框架的研究,对于我们自研数据质量的工具也有巨大的帮助。
1、Apache Griffin
在开源数据质量解决方案——Apache Griffin入门宝典一文中,对Griffin有过详细的介绍。
Griffin是一个开源的大数据数据质量解决方案,由eBay开源,它支持批处理和流模式两种数据质量检测方式,是一个基于Hadoop和Spark建立的数据质量服务平台 (DQSP)。它提供了一个全面的框架来处理不同的任务,例如定义数据质量模型、执行数据质量测量、自动化数据分析和验证,以及跨多个数据系统的统一数据质量可视化。
Griffin于2016年12月进入Apache孵化器,Apache软件基金会2018年12月12日正式宣布Apache Griffin毕业成为Apache顶级项目。
Griffin官网地址:https://griffin.apache.org/
Github地址:https://github.com/apache/griffin
Griffin的架构分为三个部分。
各部分的职责如下:
- Define:主要负责定义数据质量统计的维度,比如数据质量统计的时间跨度、统计的目标(源端和目标端的数据数量是否一致,数据源里某一字段的非空的数量、不重复值的数量、最大值、最小值、top5的值数量等)
- Measure:主要负责执行统计任务,生成统计结果
- Analyze:主要负责保存与展示统计结果
所以本身Griffin带了一个页面,可以通过页面设置进行一些监控结果展示。
Griffin对部分组件有依赖关系,这点要注意。
JDK (1.8 or later versions)
MySQL(version 5.6及以上)
Hadoop (2.6.0 or later)
Hive (version 2.x)
Spark (version 2.2.1)
Livy(livy-0.5.0-incubating)
ElasticSearch (5.0 or later versions)
当然Giffin也不是万能的,目前Griffin还是有很多的问题的,选择也要慎重:
Griffin的社区并不太活跃,可以共同讨论的人不多。
目前最新版本还是0.6,可能会有一些问题。
网上技术文档很少,当然这方面大数据流动也会不断的输出新的技术文档帮助大家。
2、Deequ
deequ是amazon开源的spark数据质量管理的工具。
其架构图如下所示:
亚马逊内部正在使用 Deequ 来验证许多大型生产数据集的质量。数据集生产者可以添加和编辑数据质量约束。系统定期计算数据质量指标(使用数据集的每个新版本),验证数据集生产者定义的约束,并在成功时将数据集发布给消费者。在错误情况下,可以停止数据集发布,并通知生产者采取行动。数据质量问题不会传播到消费者数据管道,从而减少它们的爆炸半径。
要使用 Deequ,让我们看一下它的主要组件。
指标计算——Deequ 计算数据质量指标,即完整性、最大值或相关性等统计数据。Deequ 使用 Spark 从 Amazon S3 等源中读取数据,并通过一组优化的聚合查询计算指标。您可以直接访问根据数据计算的原始指标。
约束验证——作为用户,您专注于定义一组要验证的数据质量约束。Deequ 负责导出要在数据上计算的所需指标集。Deequ 生成数据质量报告,其中包含约束验证的结果。
约束建议- 您可以选择定义自己的自定义数据质量约束,或使用自动约束建议方法来分析数据以推断有用的约束。
Deequ 和 Spaek关联密切,使用Spark技术框架的可以考虑,目前Deequ 已经更新到2.X版本,使用的也比较多,社区较为活跃。
Github地址:
https://github.com/awslabs/deequ
3、Great Expectations
可能很多同学对这个框架比较陌生,但是在数据科学领域great_expectations可是一个很火的框架。
github地址:https://github.com/great-expectations/great_expectations
目前标星已近7K。
Great expectations是一个python的工具包,Python近几年在数据分析领域大放异彩,而Python本身对于数据质量问题的解决一直是一个大问题。而Great expectations正好弥补了这方面的不足。
由于对Python支持良好,部分公司采用Airflow,Great expectations等Python技术栈来进行数据质量的解决方案建设。
Great expectations社区非常活跃,最新版本为0.15,但是版本更新非常快,bug修复也很快,值得长期关注。
4、Qualitis
对于微众那套大数据平台熟悉的同学,对于Qualitis不会陌生。
Qualitis是一个支持多种异构数据源的质量校验、通知、管理服务的数据质量管理平台,用于解决业务系统运行、数据中心建设及数据治理过程中的各种数据质量问题。
Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质量模型构建,数据质量模型执行,数据质量任务管理,异常数据发现保存以及数据质量报表生成等功能。并提供了金融级数据质量模型资源隔离,资源管控,权限隔离等企业特性,具备高并发,高性能,高可用的大数据质量管理能力。
Github地址为:
https://github.com/WeBankFinTech/Qualitis
官网给出了其余Griffen的对比,优势还是很多的。
目前Qualitis有社区支持,整体还是很活跃的。
但是由于Qualitis对Linkis的依赖,灵活性要差一些,要用就得用全套的。
总之,对于数据质量工具的探索还不能停止,也期待更多优质的项目和工具的出现,我们会保持持续的关注。
数据治理的理论体系比较健全,但是实践工具太少,可以参考的工具也太少。
为了更专注提高效率,目前数据治理相关学习交流群按不同方向做了区分,欢迎大家扫码入群:
另外 数据治理工具箱 知识星球也已成立,这是一个数据治理落地实践方向的知识星球。大数据流动发布的数据治理相关文章与资料(包括付费内容)都将在知识星球进行长期同步。星球的目标是收集数据治理实践工具的相关资料,并定期组织实战学习小组,让数据治理的相关资料可以长久的保存,同时也解决文章被频繁抄袭的问题,欢迎大家加入。
最后提醒,文档版权为公众号 大数据流动 所有,请勿商用。相关技术问题以及安装包可以联系笔者独孤风加入相关技术交流群讨论获取。