亚马逊AWS官方博客

基于AWS云端数据质量治理解决方案

数据质量治理是数据治理中一个重要环节,对于一个面向数字化转型的企业来说,尤为重要,而目前市场上缺乏完全基于AWS服务,全面覆盖业务和技术需求的数据质量治理整体解决方案。

这篇博客里将介绍一种基于AWS云服务的数据质量治理解决方案 – DQ Key,该方案采用成熟的数据治理模型,覆盖完整数据质量治理流程,通过Data Profile 规则指标,Quality Control质量控制,Quality Evaluation质量评估等环节,将数据治理模块化、治理机制自动化,最终帮助客户建立持续数据质量提升体系,为其企业级数据分析持续赋能。

用户场景

针对各类企业数据质量问题,不同客户角色拥有不同的治理期望。企业内高级管理人员往往侧重于策略层面:通过梳理与建设一套自上而下的数据治理策略,实现数据质量治理的流程标准化;各级业务人员,更多侧重于规则和内容:需要一套数据治理策略帮助他们及时发现数据质量问题,根据实际情况配置常见质量指标,并灵活处理问题数据(自行处理、授权处理、自动处理);而IT侧更多需要考虑新建数据治理技术方案与现有的ETL/ELT流程的兼容性,以及展望新的流程在应对未来各种复杂场景下的数据质量问题时的可扩展性。

F1.客户数据质量治理期望组成

解决方案概述

数据质量治理方案会从业务和技术上应对不同角色用户的期望,DQ Key解决方案将从业务与技术两个角度赋能客户团队。

F2.数据质量赋能企业数字化转型模型

从上图我们可以看到,从业务赋能角度来看,1)我们通过制定数据质量策略、组织结构权责矩阵、roadmap路线规划来确定上层数据质量治理方向,建立数据质量管理流程、质量控制标准,通过根因分析、质量评分标准来推动整体数据质量的提升;2)形成问题通知机制,通过构建数据回传机制方便客户通知或授权数据属主更新问题数据,并为客户构建统一的质量指标体系。

在技术赋能方面:1)治理模型会为客户建立审批流程控制、质量评分;2)通过事件驱动实现实时发现数据质量问题,通过规则引擎可以灵活配置出相应的数据质量指标,并通过指标配置界面赋予业务自行配置常见的质量指标的灵活性;3)此解决方案采用松耦合设计,将能兼容任何基于Amazon S3的数据湖ETL/ELT处理流程。其底层支持多计算引擎,使其既可以通过Glue/EMR进行大数据处理,也能通过Lambda/Redshift支持少量数据快速处理。4)该方案支持使用python 脚本自定义指标及处理脚本,从而支持未来各种复杂场景下数据质量问题的发现及处理。

综上,DQ Key将会为您提供一套标准化的企业级数据质量管理解决方案的技术实现,并遵循以下七个维度实现一套可持续迭代的治理闭环。

  • 数据质量策略(Strategy:制定整体数据质量治理策略,如明确组织结构权责、制定规划路径、明确运作范围、建立质量管理流程等。
  • 问题识别(Diagnosis:调研企业的数据质量需求、识别重点需求、进行根因分析等。
  • 规则指标(Profile:制定数据质量指标标准,数据情况发现或统计,依据阀值对数据进行监控检测。
  • 质量控制(Control:对已发现的数据质量问题进行质量控制,如数据清洗、问题告警机制、数据流阻断机制等。
  • 质量评估(Evaluation:建立质量评分标准,对数据质量进行整体评估。
  • 质量洞察(Insight:对数据质量指标构建dashboard,对历史问题进行跟踪。
  • 运营反馈(Operation:建立数据回传机制、对数据质量事件进行生命周期内跟踪等。

F3.数据质量治理流程

功能概要

DQ Key 数据质量治理技术方案中的核心板块Data Profile、质量控制、质量评估、质量洞察、运营反馈的开发全部基于AWS原生计算引擎(如AWS Glue、AWS Lambda等),存储采用标准数据湖存储Amazon S3,消息事件管理基于Amazon SNS,在此基础上开发规则引擎用于生成质量指标库、问题处理库,并通过自定义标准函数模版支持复杂指标处理的扩展。在运行支持方面引入了审批流控制,数据安全、操作审计等接口的支持。采用AWS CDK(Cloud Development Kit)实现代码及架构模式(Infrastructure as Code),可在AWS账号中进行一键部署。

F4.DQ Key功能分布堆叠图

云端架构

下图(F5. 服务架构图)展示了DQ Key的架构设计。该图以使用serverless 数据湖架构的AWS Glue进行ETL处理的场景为例,展示了DQ Key如何与企业的ETL主处理流程进行交互工作。

每个ETL任务都会将结构数据分层存放到不同的Amazon S3桶,通过配置,DQ Key可以监听到桶内文件新增或变更,S3对象变更事件触发Amazon SNS,驱动DQ Handler(基于AWS Lambda),Handler触发对应的数据质量检查任务,DQ Key会依据配置好的规则进行Data Profile以及Quality Control的处理,涉及清洗的数据会返回ETL/ELT 流继续处理,最后问题会经Amazon SNS进行邮件或其它方式的通知。

DQ Key处理的结果会存入独立的S3桶,企业数据运营人员可通过Amazon Athena进行数据查看,也可以通过Dashboard将数据质量情况进行可视化分析和展示。DQ Key标准解决方案包含Amazon QuickSight开发的Dashboard实例,同时用户也可以灵活选择其他BI 工具进行分析。

F5.服务架构图

功能示例

以Data Profile为例,我们需要检测数据的波幅是否合理,一个简单的情况是合理波幅在参考值的0.5倍与1.5倍之间,为此,我们使用指标column_compare_with_value,该指标后台生成规则示例如下:

column_compare_with_value后台生成代码(python)

# check: column_compare_with_value
    whens = [
        {"id":1, "table":"dq_0", "col":"round({steer}, 1)", "op":"between", "val_1":"0.5 * {std_steer}", 
        "val_1_type":"expr", "val_2":"1.5 * {std_steer}", "val_2_type":"expr"}
        ]
    whens_priority =[1]
    metric.add_by_engine(func_name="column_compare_with_value", metric_type="check", 
        whens=whens, whens_priority=whens_priority, threshold_df=None, desc="compare column value with the given value")

客户可通过前端配置调整指标,示例如下:

指标配置后,通过事件触发,当源数据文件有所更新,触发DQ Handler,DQ Handler触发DQ Key运行该指标,任务运行成功后会把相应的监测结果置入指定的结果文件中,然后可通过BI 工具对结果进行可视化分析。

后台处理(以Glue为例)

指标Insight

其它方案

AWS云端还提供其他几种处理数据质量问题的工具,如:AWS Glue DataBrew、Amazon SageMaker Data Wrangler、Deequ等。用户可能会对如何选择不同的工具和解决方案产生疑问,我们会在后续的博客中,为大家详细比较不同的解决方案并分析它们的适用场景。

结论

在这篇博客文章中,您了解到基于AWS的全面数据质量解决方案DQ Key,此方案基于数据治理自上而下质量治理模型以及数据质量治理流程,从业务以及技术层面为客户提供数据质量从发现到治理的一整套完整解决方案,赋能企业数字化转型。

如你需要了解详细内容,欢迎联系我们。期待收到您的反馈意见和建议。

本篇作者

孔庆强

亚马逊云科技专业服务团队的大数据顾问,十多年从事数据湖仓及数据分析,为客户提供数据建模、数据治理及整体专业数据解决方案。在个人爱好方面,喜爱健身、音乐、旅行。

毛元祺

亚马逊云科技专业服务团队数据科学家。负责统计学习、机器学习、数据挖掘以及云上数据平台设计方面的相关咨询服务。服务行业囊括医疗,金融,无人驾驶等,积累了丰富的开发运维经验。

刘涓池

亚马逊云科技专业服务团队资深大数据顾问。负责Dataall项目从Global到中国区的落地实施。在基于亚马逊云科技的数据治理、数据分析、大数据应用等领域有多个项目咨询和成功交付经验。在进入亚马逊云科技之前服务过金融、地产、销售制造等企业级用户,在数据集成、分析应用方面有10+的工作经验。