作者:Lv, Alex
1概述
在eBay,当人们在处理大数据(Hadoop或者其它streaming系统)的时候,数据质量的检测是一个挑战。不同的团队开发了他们自己的工具在其专业领域检测和分析数据质量问题。于是我们希望能建立一个普遍适用的平台,提供共享基础设施和通用的特性来解决常见的数据质量问题,以此得到可信度高的数据。
目前来说,当数据量达到一定程度并且有跨越多个平台时(streaming数据和batch数据),数据数量验证将是十分费时费力的。拿eBay的实时个性化平台举个例子,每天我们都要处理大约600M的数据,而在如此复杂的环境和庞大的规模中,数据质量问题则成了一个很大的挑战。
在eBay的数据处理中,发现存在着如下问题:
1. 当数据从不同的数据源流向不同的应用系统的时候,缺少端到端的统一视图来追踪数据沿袭(Data Lineage)。这也就导致了在识别和解决数据质量问题上要花费许多不必要的时间。
2. 缺少一个实时的数据质量检测系统。我们需要这样一个系统:数据资产(Data Asset)注册,数据质量模型定义,数据质量结果可视化、可监控,当检测到问题时,可以及时发出警报。
3. 缺乏一个共享平台和API服务,让每个项目组无需维护自己的软硬件环境就能解决常见的数据质量问题。
为了解决以上种种问题,我们决定开发Griffin这个平台。Griffin是一个应用于分布式数据系统中的开源数据质量解决方案,例如在Hadoop, Spark, Storm等分布式系统中,Griffin提供了一整套统一的流程来定义和检测数据集的质量并及时报告问题。此项目已经发布到github上,并且也在持续改进中,欢迎fork并参与进来:https://github.com/eBay/DQSolution
主要特性:
l 精确度检测:验证结果集数据是否与源数据是一致的
l 数据剖析:利用数据集的一致性、独特性和逻辑性,来进行统计分析和数值评估。
l 异常监测:利用预先设定的算法,检测出不符合预期的数据
l 可视化监测:利用控制面板来展现数据质量的状态。
核心优势:
l 实时性:可以实时进行数据质量检测,能够及时发现问题。
l 可扩展性:可以用于多个数据系统。
l 可伸缩性:工作在大数据量的环境中,目前运行的数据量约1.2PB(eBay环境)。
l 自助服务:Griffin提供了一个简洁易用的用户界面,可以管理数据资产和数据质量规则;同时用户可以通过控制面板查看数据质量结果和自定义显示内容。
2工作流程
Griffin已经部署在eBay为核心数据系统提供服务。这个解决方案系统性地提供一组通用的功能来解决数据质量验证方面的痛点。要检测数据质量问题,主要分为以下几步:
1. 用户注册数据资产
2. 为数据资产建立一个数据质量模型
3. 模型引擎自动计算指标
4. 通过邮件或是门户网站报告数据质量问题
这里是针对以上步骤的BPMN(业务流程建模