168大数据

标题: 数据质量监控工具——Griffin [打印本页]

作者: 168主编    时间: 2020-11-30 15:31
标题: 数据质量监控工具——Griffin

文章内容输出来源:拉勾教育大数据高薪训练营

第1节 为什么要做数据质量监控

1、数据不一致

企业早期没有进行统一规划设计,大部分信息系统是逐步迭代建设的,系统建设时间长短各异,各系统数据标准也不同。企业业务系统更关注业务层面,各个业务系统均有不同的侧重点,各类数据的属性信息设置和要求不统一。另外,由于各系统的相互独立使用,无法及时同步更新相关信息等各种原因造成各系统间的数据不一致,严重影响了各系统间的数据交互和统一识别,基础数据难以共享利用,数据的深层价值也难以体现。

2、数据不完整

由于企业信息系统的孤立使用,各个业务系统或模块按照各自的需要录入数据,没有统一的录入工具和数据出口,业务系统不需要的信息就不录,造成同样的数据在不同的系统有不同的属性信息,数据完整性无法得到保障。

3、数据不合规

没有统一的数据管理平台和数据源头,数据全生命周期管理不完整,同时企业各信息系统的数据录入环节过于简单且手工参与较多,就数据本身而言,缺少是否重复、合法、对错等校验环节,导致各个信息系统的数据不够准确,格式混乱,各类数据难以集成和统一,没有质量控制导致海量数据因质量过低而难以被利用,且没有相应的数据管理流程。

4、数据不可控

海量数据多头管理,缺少专门对数据管理进行监督和控制的组织。企业各单位和部门关注数据的角度不一样,缺少一个组织从全局的视角对数据进行管理,导致无法建立统一的数据管理标准、流程等,相应的数据管理制度、办法等无法得到落实。同时,企业基础数据质量考核体系也尚未建立,无法保障一系列数据标准、规范、制度、流程得到长效执行。

5、数据冗余

各个信息系统针对数据的标准规范不一、编码规则不一、校验标准不一,且部分业务系统针对数据的验证标准严重缺失,造成了企业顶层视角的数据出现“一物多码”、“一码多物”等现象。

第2节 数据质量监控方法

1、设计思路

数据质量监控的设计要分为4个模块:数据,规则,告警和反馈

①数据:需要被监控的数据,可能存放在不同的存储引擎中

②规则:值如何设计发现异常的规则,一般而言主要是数值的异常和环比等异常监控方式。也会有一些通过算法来发掘异常数据的方法

③告警:告警是指发告警的动作,这里可以通过微信消息,电话或者短信,邮件

④反馈:反馈是指对告警内容的反馈,比如说收到的告警内容,要有人员回应该告警消息是否是真的异常,是否需要忽略该异常,是否已经处理了该异常。有了反馈机制,整个数据监控才能形成闭环

2、技术方案

第3节 Griffin架构

Apache Griffin是一个开源的大数据数据质量解决方案,它支持批处理和流模式两种数据质量检测方式,可以从不同维度(如离线任务执行完毕后检查源端和目标端的数据数量是否一致、源表 的数据空值数量等)度量数据资产,从而提升数据的准确度、可信度。

Griffin主要分为Define、Measure和Analyze三个部分,如下图所示:

各部分的职责如下:

第4节 编译安装4.1 相关依赖

重点讲解 Griffin,不对依赖组件做过多讲解,所有组件均采用单机模式安装。

备注:

4.2 Spark安装

1、解压缩,设置环境变量 $SPARK_HOME

2、 修改配置文件 $SPARK_HOME/conf/spark-defaults.conf

备注:上面的路径要创建

拷贝 MySQL 驱动

cp $HIVE_HOME/lib/mysql-connector-java-5.1.46.jar $SPARK_HOME/jars/

将 Spark 的 jar 包上传到 hdfs://hadoop1:9000/spark/spark_2.2.1_jars/

3 、 修改配置文件spark-env.sh

4、yarn-site.xml 添加配置

yarn.nodemanager.vmem-check-enabled:是否检查虚拟内存。

修改所有节点,并重启yarn服务。

不添加该配配置启动spark-shell,有如下错误:Yarn application has already ended! It might have been killed or unable to launch application master.

5、测试spark

spark-shell

4.3 Livy安装

1、解压缩,设置环境变量 $LIVY_HOME

2、修改配置文件 conf/livy.conf

3、修改配置文件 conf/livy-env.sh

4、启动服务

4.4 ES安装

1、解压缩

2、创建 elasticsearch用户组 及 elasticsearch 用户。不能使用root用户启动ES程序,需要创建 单独的用户去启动ES 服务;

3、修改linux系统文件 /etc/security/limits.conf

4、修改系统文件 /etc/sysctl.conf

5、修改es配置文件 /opt/lagou/servers/elasticsearch-5.6.0/config/elasticsearch.yml

network.host: 0.0.0.0

/opt/lagou/servers/elasticsearch-5.6.0/config/jvm.options

jvm内存的分配,原来都是2g,修改为1g

6、启动ES服务

在浏览器中检查:http://linux122:9200/

7、在ES里创建griffin索引

4.5 Griffin编译准备

1、软件解压缩

2、在MySQL中创建数据库quartz,并初始化

/opt/lagou/servers/griffin-0.5.0/service/src/main/resources/Init_quartz_mysql_innodb.sql

备注:要做简单的修改,主要是增加 use quartz;

3、Hadoop和Hive

在HDFS上创建/spark/spark_conf目录,并将Hive的配置文件hive-site.xml上传到该目录下

备注:将安装 griffin 所在节点上的 hive-site.xml 文件,上传到 HDFS 对应目录中;

4、确保设置以下环境变量(/etc/profile)

4.6 Griffin编译

1、service/pom.xml文件配置

编辑 service/pom.xml(约113-117行),增加MySQL JDBC 依赖(即删除注释):

2、修改配置文件 service/src/main/resources/application.Properties

备注:

3、修改配置文件 service/src/main/resources/quartz.Properties

4、修改配置文件 service/src/main/resources/sparkProperties.json

sparkProperties.json 在测试环境下使用:

备注:修改第11行:"spark.yarn.dist.files": "hdfs:///spark/spark_conf/hive-site.xml"

sparkProperties.json 在生产环境中根据实际资源配置进行修改【生产环境】

5、修改配置文件 service/src/main/resources/env/env_batch.json

备注:仅修改第24行

6、编译

备注:

7、修改文件

编译报错:

[ERROR] ERROR in /opt/lagou/servers/griffin- 0.5.0/ui/angular/node_modules/@types/jquery/JQuery.d.ts (4137,26): Cannot find name 'SVGElementTagNameMap'.

[ERROR] ERROR in /opt/lagou/servers/griffin- 0.5.0/ui/angular/node_modules/@types/jquery/JQuery.d.ts (4137,89): Cannot find name 'SVGElementTagNameMap'.

这个文件在编译之前是没有的

/opt/lagou/servers/griffin-0.5.0/ui/angular/node_modules/@types/jquery/JQuery.d.ts

删除 4137 行

find<K extends keyof SVGElementTagNameMap>(selector_element: K | JQuery<K>): JQuery<SVGElementTagNameMap[K]>;

8、再次编译

9、jar拷贝

编译完成后,会在service和measure模块的target目录下分别看到 service-0.5.0.jar 和measure-0.5.0.jar 两个jar,将这两个jar分别拷贝到服务器目录下。

备注:spark在yarn集群上执行任务时,需要到HDFS的/griffin目录下加载griffin-measure.jar,避免发生类org.apache.griffin.measure.Application找不到的错误。

4.7 启动Griffin服务

启动Griffin管理后台:

Apache Griffin的UI:http://linux122:9876 用户名口令:admin / admin

登录后的界面:

第6节 与电商业务集成6.1 数据资产

单击右上角的 DataAssets 来检查数据资产

备注:这里的数据数据资产主要是保存在Hive上的表,要求 Hive Metastore 服务正常

6.2 创建 measure

核心交易分析中有两张表:

这两张表的数据量应该是相等的(Accuracy)

计算ODS层

订单表的数据量(Data Profiling)







欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2