Qualitis是一个数据质量管理系统,通过提供质量规则定义,动态任务配置,数据质量结果可视化,校验状态可监控的功能,用于监控生产中重要数据的质量情况。提供多使用角度的一整套统一的流程来定义和检测数据的质量并及时报告问题。
完整版的Qualitis新版本使用说明,详见Github:
https://github.com/WeBankFinTech/Qualitis/blob/branch-1.0.0/docs/zh_CN/ch2/%E6%96%B0%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E.md
Qualitis的校验任务以spark sql的查询操作为主,不同的用户校验任务的数据量,占用资源不尽相同,所以我们提供给每个用户修改默认资源配置的接口,包括常用的队列选取,引擎的并发数,执行器实例数等等。
Qualitis各个服务之间是幂等的,可以通过同时起多个Qualitis服务,通过VIP对Qualitis服务进行负载均衡进行实现,通过Zookeeper保证多服务线程读写一致性。目前正式环境Qualitis部署有主备两个服务,来应对可能的服务不可用,性能响应问题。
在大数据存储下,仅仅对表的校验进而返回的一系列数据源英文信息,很难让业务定位具体的产品,子系统,业务环节中的质量问题,所以我们引入指标的处理,关联具体规则,赋予校验结果真实的业务含义,帮助用户了解生产活动中的数据质量状态。
多指标校验,是指我们在一个规则中,SELECT部分可以计算出多个值,并一一对应指标管理中已创建的指标,分别计算指标值,而且整个sql交给用户编辑,解除单指标规则编辑中的限制,多个指标值计算处置后,分别进行结果校验,最终以多维度都通过校验,才算整个规则校验是通过的。
Qualitis内置常用的单表规则模板,跨表规则模板。
Qualitis可查看每个规则校验情况(查看日志,查看状态),并整合成质量分析报告表格,包含:规则名称,数据源信息,校验状态,历史值,任务时间等。我们定时推送每日校验任务到不同部门用户的记录表中,请向管理员咨询表信息并提单申请访问。
输入账号密码登录,即可访问UI。首页展示了当天任务的概览和及近日趋势变化图表。
项目,即规则的集合,可批量执行规则,授权细粒度权限等,拥有对应项目权限的用户,即拥有查看对应规则信息,任务信息的权限。创建项目:“我的项目 --- 新建项目 --- 点击保存”:
-
-
项目中文名称:项目的中文名称,非必选可重复,中文名称存在时,替换英文名称在告警信息展示。
-
-
-
项目子系统:可以指定子系统信息,发送告警时默认采用该子系统,优先级弱于规则关联指标的子系统。
项目列表展示了项目的基础信息,在项目详情页,具备以下功能:
-
项目记录,可定位项目操作历史,包括项目修改,规则执行等。
点击“添加规则”,选择规则类型(参照第二章,5小节),跳转至规则添加界面。规则的配置分为四部分:
1、规则基础信息
技术规则的名称,同一项目中不可重复。
-
月波动:将任务的运行结果和本条技术规则本月的运行结果的平均值y进行比较,如果(1-x)*y<=r<=(1+x)*y,任务通过校验,否则任务不通过校验。
-
周波动:和月波动同理,计算的平均值是本周的平均值。
-
日波动:和月波动,周波动同理,计算的平均值是本日的平均值。
-
固定值:和一个固定值进行比较,比较的方式有等于,大于等等,如果比较选择比较方式是等于,那么如果r=x,那么任务通过校验。
-
年环比:按照环比的计算:(本年平均值 - 去年平均值) / 去年平均值 = w %,然后w会与输入的阈值做不等于,等于,大于,小于等比较。
-
-
-
-
-
-
在“项目详情”规则列表右侧,提供规则执行参数模板编辑的快捷入口:
规则数据源是用户关心的出发点,Qualitis支持从数据源定位所关联的规则,“选定数据源范围 --- 点击表名 --- 覆盖规则的字段”
为了更安全、更灵活地管理数据,权限被细分到了单个数据的级别,如上图红框中所示,每个数据的使用权限都与配置的开发科室、运维科室及可见范围紧密相关。
· 开发科室:非运维模式下,该科室下的所有用户具有对当前数据的编辑权限和可见权限
· 运维科室:非运维模式/运维模式下,该科室下的所有用户具有对当前数据的编辑权限和可见权限
· 可见范围:可以配置多个科室,科室下的所有用户具有对当前数据的可见权限
其中开发科室和运维科室会根据当前登录用户的角色类型不同,对科室的选择范围也有所不同(可见范围除外,可选择所有科室)。
· 可见权限是指,用户能否看到这条数据,直接影响首页的列表查询结果
· 系统管理员基本无视任何权限,能够看见和编辑所有数据
· 如果开发科室/运维科室下拉没有数据,应该联系具有超级管理员权限的用户配置帮忙科室及角色
· 仅超级管理员和部门管理员能够设置【全行】的可见范围
对模板列表数据细分化管理,分为:单表模板、表文件模板、跨表模板,方便用户根据自己选择获取匹配类型数据;
· 基础信息:命名方式(自定义命名、规范命名)、模板中文名、模板英文名、模板描述、开发科室、运维科室、可见范围;
· 模板配置:数据源类型、校验级别、校验类型、是否保存异常数据、是否需要过滤字段、校验值中文名、校验英文名、校验采样方式、统计函数、统计值、是否使用UDF、采样SQL、是否固化校验方式、校验方式;
· 占位符:
单表-->数据库、数据表、校验字段、基础过滤条件、枚举值、数值范围、表达式、标准值表达式;
表文件-->数据库、数据表、基础过滤条件;
跨表-->数据库、数据表、基础过滤条件、源数据库、源数据表、目标数据库、目标数据表、源基础过滤条件;
仅仅对表数据校验进而返回的一系列数据源英文信息,很难让业务定位具体的子系统,业务环节中的质量问题,所以我们引入指标的处理,上文已经出现我们所用的指标,关联具体规则,赋予校验结果真实的业务含义,帮助用户了解生产活动中的数据质量状态。在系统中的入口如下:
指标管理提供给用户维护指标的常用功能(创建,查询,导入,导出,关联规则,关联历史值,指标计算结果上传等),关联规则即可有指标查询使用该指标的规则,关联历史值即该指标关联的规则(包括已删除的规则)执行的历史结果记录;在知悉IMS系统监控指标的功能及应用前提下,Qualitis部署的规则关联指标的意义,主要是各部门在深度使用Qualitis之后,通过Qualitis反映的质量问题(Qualitis执行完成后向IMS进行上报的指标值)将关联各业务部门数据质量管控的KPI。
为了更安全、更灵活地管理数据,权限被细分到了单个数据的级别,如上图红框中所示,每个数据的使用权限都与配置的开发科室、运维科室及可见范围紧密相关。
· 开发科室:非运维模式下,该科室下的所有用户具有对当前数据的编辑权限和可见权限
· 运维科室:非运维模式/运维模式下,该科室下的所有用户具有对当前数据的编辑权限和可见权限
· 可见范围:可以配置多个科室,科室下的所有用户具有对当前数据的可见权限
其中开发科室和运维科室会根据当前登录用户的角色类型不同,对科室的选择范围也有所不同(可见范围除外,可选择所有科室)。
· 可见权限是指,用户能否看到这条数据,直接影响首页的列表查询结果
· 系统管理员基本无视任何权限,能够看见和编辑所有数据
· 如果开发科室/运维科室下拉没有数据,应该联系具有超级管理员权限的用户配置帮忙科室及角色
(1)子系统----->subSystemName----->cmdb子系统;
(2)产品----->productName----->cmdb产品信息;
(1)IT数据监控指标----->it-metrics
(2)业务数据监控指标----->product-metrics
(3)自定义监控指标----->custom-metrics
英文编码:校验是否存在相同英文编码指标,存在就编辑,不存在就新增;
规则创建完毕,接下来即可提交规则,规则提交可以从两个纬度执行,项目纬度和规则纬度。
(1)YARN 队列名 wds.linkis.rm.yarnqueue
(2)YARN 队列实例最大个数 wds.linkis.rm.yarnqueue.instance.max 30
(3)YARN 队列CPU使用上限 wds.linkis.rm.yarnqueue.cores.max 150
(4)YARN 队列内存使用上限 wds.linkis.rm.yarnqueue.memory.max 300G
(1)Spark Driver 内存使用上限 wds.linkis.rm.client.memory.max 20G
(2)Spark Driver CPU Cores 使用上限 wds.linkis.rm.client.core.max 10
(3)Spark Executor 并发数 spark.executor.instances 2
(4)Spark Executor 内存数 spark.executor.memory 3g
任务提交成功后,在“任务查询”可看到任务提交的状态,日志,校验详情等:
注意,任务状态和备注可以快速反映数据问题,是首要需要关注的信息:
完整版的Qualitis新版本使用说明,详见Github:
https://github.com/WeBankFinTech/Qualitis/blob/branch-1.0.0/docs/zh_CN/ch2/%E6%96%B0%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E.md
本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。