您的位置:  首页 > 技术杂谈 > 正文

Meetup 02期回顾:Qualitis 数据质量 0.9.0版本介绍

2022-04-18 17:00 https://my.oschina.net/webank/blog/5515488 微众开源 次阅读 条评论
主题:《Qualitis 数据质量 0.9.0版本介绍》 讲师:周玉壮  微众银行大数据平台工程师 GitHub:https://github.com/WeBankFinTech/Qualitis 以下内容为分享文字版本,点击阅读原文可查看完整视频
Qualitis介绍
Qualitis是一个支持多种异构数据源的质量校验、通知、管理服务的数据质量管理平台,用于解决业务系统运行、数据中心建设及数据治理过程中的各种数据质量问题。 Qualitis基于Spring Boot,依赖于Linkis进行数据计算,提供数据质量模型构建,数据质量模型执行,数据质量任务管理,异常数据发现保存以及数据质量报表生成等功能。并提供了金融级数据质量模型资源隔离,资源管控,权限隔离等企业特性,具备高并发,高性能,高可用的大数据质量管理能力。
批量计算场景数据校验 在进行检验规则的定义跟配置。我们接入数据源,根据规则模板去生成真实的好批的 SQL 去查询这些数据,看是否存在上述的这些问题。我们的批量的这个数据质量的校验是接入了 Linkis 主要使用的是 Spark 阶段引擎,由 Linux 帮我们执行,拿到质量检验结果。 我们在进行质量检验过的质量检验结果,后续的一些校验成功或者检验失败的,处理失败的话,我们有失败任务的熔断或者失败任务的告警。在最后的分析阶段,我们会导出数据质量报告以及可订阅质量报告,自动地推送用户以及数据质量问题的跟踪,跟异常数据的一些统计。
质量管理流程制度落地
同时我们在数据参与人员中也要建立更切实的流程制度。这里第一步,以及后续的分析报告,还有后续的落实出以及生成我们数据检验知识库、知识积累、知识应用、体系标准、专家经验等。我们的技术架构是既提供独立的界面,也可配合工作流 DataSphere Studio 使用。 首先是有我们一个前端入口,有一个我们独立的 UI 还有一个就是内嵌于 DSS 及 Appconn 开发的一个内嵌界面。我们的系统的功能是分模块开发管理,主要有就是规则管理、模板管理、指标管理以及后台的一些人员管理,还有以及项目管理、任务管理以及元数据管理。
功能技术架构 我们后台还应用的技术主要采用的是一些是 Jetty 容器,应用的是 jersey restful 接口管理,刚刚用到了 Zookeeper 来保证高可用多实例的主备服务一致性,还有 Druid 的语法解析,直接去执行解析自定义的 SQL 以及应用到 Easy Excel 帮助我们规则间的一些导入导出多环境复制。 我们底层的依赖主要是 Linkis ,这个必要的是分不开的。使用 Qualitis 这之前必须部署 Linkis 然后就是 DataShapis 我们有数据标准的接入,会拉取 DataShapis 的接口。不过这块不是必要的,以及我们后台的数据库是MySQL。
系统访问权限
我们的数据质量是存在大量的查询操作的,所以我们必须严格管控使用用户的权限。我们接下来介绍一下我们的权限体系。首先就是我们在系统访问控制是基于 URL filter 的后台管理员,普通用户做动态访问权限的控制。 我们的 Url 以 Quality 的前缀,以 GET PUT POST DELETE 这些方法都是对管理员开放的。所以在所有的接口包括集群配置、人员管理、部门管理、增加后回收代理用户等,只有后台管理员才可以访问。对于普通用户,我们把 URL 收缩到 qualitis/api/v1/projector 这一层,给用户开放一些其他的操作,这是我们的系统访问控制。
分级权限控制 然后我们设计了一个分级的权限的控制。我们是将登录用登录系统的用户分为超级、部门管理员、部门人员三个权限等级。我们的权限范围就是依次递减,主要是对于规则模板跟规则的指标这些很敏感型的物料进行权限控制的实现。我们的超级管理员可触达所有的操作。这个比较常规。 我们的部门管理员是具备上层内容查看权限,它的上层也就是超级管理员管理的内容,然后它可触达内部部门内部所有操作。然后部门之间是隔离的,比如多个不同的部门,它是有多个不同的部门角色部门管理员角色。然后我们的部门人员是具备上层他的上层包括超级管理员跟部门管理员管理的内容,他是仅具备查看权限,然后他个人所管理的一些规则模板跟指标是可以触达所有操作的。这个也是主要为了保证我们部门体现的一个敏感数据的保密性以及校验逻辑的协作性,还有业务校验的差异性。
项目授权机制和代理用户机制
接下来的一个权限就是项目授权机制,我们的项目创建者可以通过系路的授权对该项目的下面的批量规则进行协作处理。在我们的界面上项目详情界面项我们权限这样的一个按钮,点击之后会有项目权限管理的界面,这里会帮我们show出来当前拥有项目权限的一些用户,他们是有哪些权限的 接下来就是我们的代理用户机制,我们的登录用户往往是不具备所有要校验的数据权限,此时就需要我们通过代理到更高数据权限的用户进行数据质量校验。代理用户机制就等同于数据访问权限的升高,所以该操作需要系统管理员等合并实施。 左侧这张图就是在没有配置代理用户的时候,当前的登录用户查到了表只有一张表,如果是配置了代理用户,则会访问代理用户下的数据,作为检验数据。配置下代理用户,这里就会看到更多的一些库表。
工作流接入插件升级
接下来来给大家介绍的是我们本次版本更新带来的一些新的功能特性。 首先是工作流,我们的技术插件是由原来的 Appjoint 升级为 Appconn 我们在升级的过程当中是完善了免密规范、项目规范跟节点规范。然后我们是打通工作流项目跟系统的项目授权体系,这也跟我们项目的授权,还有工作流的一些编辑查看发布权限是打通的。然后我们是支持节点版本管理,我们的接口是 OK 的。在工作流我们可以把 query 的节点放在任何一个阶段,进行前置或者后置的一些数据校验。
Linkis任务资源提交配置
然后我们是 Linkis 任务资源提交配置的一些完善。 我们的引擎启动配置参数除了在规则内置可以编辑进去,也就是随着规则而保存,还可以在提交的时候动态修改。 我们看图片就是动态引擎配置这边有一个执行参数,它是可以实时地去替换你要跑任务的一个Yarn的队列名,还有Yarn的一些参数上线以及 Spark 的一些引擎跟 Driver 内存的一些设置。 我们同时支持在这个图片上也可以看到上面有一个切换集群,这个主要是应对集群变更迁移对一些常规的比较重量的自然的影响,我们可以随时地切到可用的集群上去。 还有一个就是任务错误码的解析,追加备注记录快速定位失败,运营任务在跑未通过校验或者跑失败的时候,我们能根据这样异常备注去确定我们任务出问题的原因,然后在系统做一些修改。

指标管理的引入
接下来是指标管理功能的引入,我们的规则需要关联指标。这个指标就是为了帮助我们的校验结果,明确校验业务 it 含义和影响。从这个图片上可以看出来,我们的指标是关联了一些子系统产品或者自定义的一些维度的信息,然后有一些指标的分类跟指标的频率以及开发部门、运维部门及相应的责任人。 这个我会帮助我们一个检验结果来分析它的影响的范围,以及需要跟进的开发或者运维。我们的指标同时是也支持历史值的波动统计,可以实时地查看检验结果。在我们指标末端有一个操作按钮,可以查看历史值这样的一个历史值,就是指它关联的这个规则在历史跑的记录产生的一个检验结果,可以在这里实时查看。通过这样的一个历史值,我们就可以分析校验结构的一个波动。 我们还支持多指标校验,提高校验统计的效率。这个说我们在一个自定义的 SQL 上,可以在一条 SQL select 这样的一个聚合去分别 as 不同的指标。这样一条 SQL 执行下来之后,我们得到的是多个指标的一个结果。
任务生命周期管理 接下来是我们的任务生命周期管理。我们首先是修复了单线程更新任务状态的滞后性,采用动态拆分任务,然后并发更新。接着是完善我们任务批量停止重拉以及对特定日期校验结果的覆盖更新。我们在执行变量配置,这里可以指定一个参数,系统参数叫 run_date 参数值可以指定一个日期。然后我们的任务不管跑了多次,始终更新的都是这一个日期的结果。
质量分析报告导出
最后是我们一个质量分析报告的导出,我们的执行记录是导出到 HDFS 由我们的运维去进行查看,去跟进。然后我们在他的入口在任务查询数据质量分析,点击一个弹窗。这上面有一些你要建面的数据源库表的一些选择以及起止时间,还有它的一个状态以及文件生成路径。这里的文件生成路径就是一个 HDFS 路径,导出的文件的格式是如图所示,它有基本的规则的名称,集群名称、库表名称以及我们校验的一些模板。你是用了什么样的校验?它的结构值是多少,它的状态是多少以及我们的结果。
Roadmap
未来我们的一个 roadmap 以后会继续往完善跟开源的一些功能,比如说像前端交互的升级,我们的看板的现在的信息是过于简单,所以我们的看板分析信息功能会进一步增强。然后我们的指标历史值容易涉及敏感信息,我们对于指标的一个权限机制将进一步优化收缩。 我们的数据库要实现读写分离,方便检验数据采集的同时不影响系统 IO 的效率。我们的任务会增加自动失败重试配置当前是一个手动的失败重拉。然后我们要接入轻量上的调度框架,实现一键调度。我们当前在开源的版本是必须发布到  schedulis 来完成调度。然后我们的多实例实现动态的横向扩容,加入服务治理,保证高可用,以及我们之前已经也提到过的正在做的实时流式校验的一些接入。
在未来社区会继续优化 Qualitis 在业务系统中的应用,也期待和大家交流经验。 
备注说明: 1、 参与社区提问的开发者 ,请扫码添加小助手,可以获得社区定制的开源精美礼品一份; 2、公众号后台回复四大组件获取讲师分享材料
3、点击“阅读原文可查看完整视频 扫码添加WeDataSphere小助手

参与社区贡献的方式

(1)新手任务:认领入门任务,详见https://github.com/apache/incubator-Linkis/issues/1161

(2)作品沉淀:发布WeDataSphere开源组建相关内容,包括但不限于安装部署教程、使用经验、案例实践等,形式不限,请投稿给小助手。如:

(3)贡献代码:PR和Issue;

(4)答疑:热心为开发者答疑,如社区群回答开发者问题、issue答疑等;

(5)其他:沙箱体验、参与活动、成为社区志愿者等;





本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接