首页 > 其他分享 >《数据资产管理核心技术与应用》读书笔记-第四章:数据质量的技术实现(二)

《数据资产管理核心技术与应用》读书笔记-第四章:数据质量的技术实现(二)

时间:2024-08-27 14:49:34浏览次数:8  
标签:读书笔记 核心技术 质量 规则 Spark 数据 第四章 清华大学出版社

《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与告警、数据服务、数据权限与安全、数据资产管理架构等。第9~10章主要从实战的角度介绍数据资产管理技术的应用实践,包括如何对元数据进行管理以发挥出数据资产的更大潜力,以及如何对数据进行建模以挖掘出数据中更大的价值。

图书介绍:数据资产管理核心技术与应用

今天主要是给大家分享一下第四章的内容:

第四章的标题为数据质量的技术实现

内容思维导图如下:

本文是接着

《数据资产管理核心技术与应用》读书笔记-第四章:数据质量的技术实现(一)

继续往下介绍

1、质量数据采集的技术实现

当然除了借助Apache DolphinSchedur外,我们也可以自己实现定时任务运行,相关的技术架构图如下图所示。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

  • 由于不管是数据湖还是数据仓库,都支持Spark 对其做数据读取和数据处理,所以对数据湖或者数据仓库的质量数据采集都可以通过在Spark集群中执行Spark任务的方式去获取数据。Spark 集群的部署支持Standalone、Mesos、YARN、Kubernetes 四种方式,可以参考Spark官方网址:https://spark.apache.org/docs/latest/cluster-overview.html#cluster-manager-types,如下图所示,可以根据实际使用的数据湖或者数据仓库的部署模式,来选择相应的Spark 集群的部署模式,比如您的数据仓库Hive 是通过Hadoop的方式部署的,那么Spark集群的部署方式就应该选择Hadoop YARN的部署模式更加合适。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

  • 设计一个Spark集群上可以执行的jar包或者PySpark脚本,该Jar包或者PySpark脚本用于提交任务到Spark集群中进行运行 ,运行时,读取配置好的质量规则,任务执行完毕后,将采集到的质量结果数据入库,关于如何向Spark集群提交Jar包或者PySpark脚本任务,可以参考官网网址:https://spark.apache.org/docs/latest/submitting-applications.html,如下图所示。

  • Jar包或者PySpark脚本中可以执行Spark SQL语句,也可以执行Scala脚本或者Python脚本。
  • 如果Spark 集群是通过Kubernetes部署的,那么需要先将Jar包或者PySpark脚本 做成Docker 镜像,然后通过镜像的方式将Jar包或者PySpark脚本运行至Spark 集群中,如下图所示,关于Kubernetes相关的知识可以参考:https://kubernetes.io/zh-cn/docs/home/ 。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

  • Jar包或者Python 脚本,需要做成通用的,而不是执行每一个质量规则时都需要去创建一个jar包或者Python 脚本,当然也可以支持用户自定义Jar包或者Python 脚本进行扩展,但是一定要定义Jar包或者Python 脚本的抽象接口,如下图所示。

从图中可以看到,我们至少可以在抽象接口中先预定义好读取规则、解析规则以及执行规则等这几个方法,使用Java开发语言定义的抽象接口参考代码如下:《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

public interface Example {
 
    void readRule(String rule);
 
    void analysisRule(String rule);
 
    void execRule(String data);
}

根据上面描述的数据质量规则的配置到数据质量规则的定时采集执行,可以大致设计如下图的表结构模型供参考。

1)、t_quality_rule_template为数据质量规则模板表,可以将一些通用的规则做成模板,供规则的配置者直接使用或者基于选择的规则模板再做少量的二次修改。

2)、t_quality_rule为数据质量规则配置表,表中存储了实际的数据质量采集规则以及该规则对应的数据表id以及定时采集的cron表达式,比如类似0 */30 * * * ?,就是每隔30分钟执行一次。

cron 表达式是一个字符串,该字符串通常是由 7 个域组成,每个域之间以空格格式,每个域代表一个特定的时间含义,如下表所示。

取值范围

0-59

0-59

0-23

1-31

1-12 或 JAN-DEC

1-7 或 SUN-SAT

1970-2099

3)、t_quality_rule_exec为数据质量规则执行表,表中存储了每次定时采集任务的执行记录。定时采集任务执行时,其状态的变化过程大致如下图所示,为了方便问题的定位,任务执行过程中的状态变化都需要更新到表t_quality_rule_exec中。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

2、 如何处理采集到的质量数据

质量数据采集到的是原始的数据,由于数据质量规则众多,所以每一种规则采集到的原始数据可能都不一样,所以还需要对原始的数据做归一化处理,然后才能进行入库存储,如下图所示。

虽然每个质量规则采集到的原始数据可能都是不一样的,但是我们还是需要设计一个统一的原始数据消息格式以方便做数据的统一处理,参考如下:

[{
                   "execId": "",
                   "ruleId": "",
                   "returnType": "",
                   "returnData": [],
                   "startExecTime": "",
                   "endExecTime": ""
}]
3、质量数据的存储模型设计

从架构设计的角度来看,数据质量的存储需要注意如下几点:

  • 可扩展性: 支持对多种不同质量规则采集到的质量数据的存储,比如不能出现扩展了质量规则或者用户自定义的质量规则的结果数据无法存储,从而需要修改数据存储模型的情况。
  • 可跟踪性:需要记录质量数据的变更记录,方便将来做质量数据变化的跟踪和审查。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著
  • 可维护性:支持手工运维,比如出现脏数据或者需要人工干预的情况时,可以让系统管理员进行相关的历史数据或者脏数据的清理等常规运维操作。

如下图所示基于上述的设计原则,设计了如下的数据质量存储模型供参考,下中在每张表中列出了数据质量存储模型的核心字段。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

如果需要查询某张表的质量数据时,可以根据如下图所示的关联关系来获取数据。

质量数据其实和常用的监控数据很类似,也可以考虑用时序数据库来进行存储,因为质量数据都是按照时间来时序采集的,并且数据也是时序变化的,所以使用时序数据库来存储是非常适合的。常见的时序数据库对比介绍如下表所示,可以根据实际的场景来选择。《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

数据库类型

InfluxDB

Prometheus

OpenTSDB

描述

用于存储时间序列、事件和度量的开源时序数据库

开源时序数据库,一般多用于监控系统

基于HBase的可扩展的时间序列开源数据库

官方网址

https://www.influxdata.com/products/influxdb/

官方网址为https://prometheus.io/

官方网址为http://opentsdb.net/

 

文档介绍

https://docs.influxdata.com/influxdb

https://prometheus.io/docs/

http://opentsdb.net/docs/build/html/index.html

底层实现的开发语言

Go

Go

Java

支持的数据类型

数字和字符串

只支持数字

指标支持数字

,标签支持字符串

是否支持SQL语言

支持类SQL查询(和SQL语法类似)

不支持

不支持

API类型

Http API

RESTful Http/JSON API

Http API

未完待续......《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,作者为张永清等著

标签:读书笔记,核心技术,质量,规则,Spark,数据,第四章,清华大学出版社
From: https://www.cnblogs.com/laoqing/p/18382641

相关文章

  • 技术如何通过API接口获取自己想要同款商品的数据
    确定数据源:首先,你需要确定哪些平台或服务提供商提供了你感兴趣的商品数据。例如,电商平台、品牌商、市场调研公司等。了解API文档:访问提供商的开发者门户网站,阅读API文档。文档会详细介绍如何使用API,包括请求的URL、所需的参数、认证方式、请求限制等。注册和获取API密钥:通常,......
  • 26-数据增广
    随即水平翻转:torchvision.transforms.RandomHorizontalFlip()上下随机翻转:torchvision.transforms.RandomVerticalFlip())随机剪裁,剪裁后的大小为(200,200),(0.1,1)使得随即剪裁原始图片的10%到100%区域里的大小,ratio=(0.5,2)使得高宽比为2:1,torchvision.transforms.RandomResize......
  • C语言数据类型
    关键字的介绍数据类型关键字有12个:控制语句关键字有12个:存储类型关键字有4个:其他关键字有4个:字符和ASCII码的介绍数据介绍什么是数据类型?数据类型的具体组成字符:整形:浮点型布尔类型数据类型的取值范围关键字的介绍C语言的关键字有:1、数据类型关键字2、控制语......
  • 使用ChatGPT完成数据分析与可视化的全过程
    学境思源,一键生成论文初稿:AcademicIdeas-学境思源AI论文写作在数据驱动的时代,数据分析与可视化成为了洞察信息、支持决策的重要工具。ChatGPT可以显著提升这些任务的效率和准确性。本文将探讨如何运用ChatGPT来简化数据分析和可视化的过程,包括从数据清理、缺失值处理到生......
  • UDS 诊断 - WriteDataByIdentifier(按标识符写数据)(0x2E)服务
    UDS诊断服务系列文章目录诊断和通信管理功能单元UDS诊断-DiagnosticSessionControl(诊断会话控制)(0x10)服务UDS诊断-ECUReset(ECU重置)(0x11)服务UDS诊断-SecurityAccess(安全访问)(0x27)服务UDS诊断-CommunicationControl(通信控制)(0x28)服务UDS诊断-TesterPresent......
  • 数据库系统 第26节 数据库调优
    数据库调优是一个涉及多个方面的复杂过程,旨在提高数据库的性能和响应速度。以下是一些常见的数据库调优策略:索引调优:选择合适的索引类型:根据查询需求选择合适的索引类型,如B-tree、Hash、GiST等。确定索引列:分析查询语句,确定哪些列经常作为查询条件,这些列是索引的好候选。......
  • 数据库系统 第26节 数据库调优 案例分析
    数据库调优通常不需要修改源代码,因为它主要涉及数据库配置、查询优化和硬件调整等方面。然而,源代码中的某些实践可以显著影响数据库性能。以下是一些常见的源代码实践,这些实践可以与数据库调优相结合:参数化查询:避免SQL注入并提高查询效率,使用参数化查询代替字符串拼接查......
  • 四博智联 Esp-32CAM 图像识别接入燃气数据 本地识别及百度数字识别
    接到一个客户需求,利用ESP32+摄像头完成家庭燃气表数据的采集接入,大概流程:一、设备配网:  通过微信小程序BLE连接到ESP32配网,配网完成后,把设备id绑定到相应的账号下。让ChatGPT设计协议及代码如下:设计一个通过微信小程序和BLE(蓝牙低功耗)给ESP32设备配网的协议需要考虑数据......
  • C++与C语言中基础数据类型详解
    目录引言基础数据类型分类实际编程中的应用建议结论引言在C++与C语言的编程世界中,理解并正确使用基础数据类型是每个程序员的必备技能。不同的数据类型在内存中的占用和表示方式直接影响到程序的性能和行为。本文将详细介绍C++与C语言中常见的基础数据类型,探讨它们......
  • 软件设计师全套备考系列文章15 -- 数据库:规范化、控制功能、大数据
    软考--软件设计师(15)--数据库:规范化、控制功能、大数据文章目录软考--软件设计师(15)--数据库:规范化、控制功能、大数据前言一、章节考点二、规范化三、数据库的控制功能四、大数据、数据仓库前言考试时间:每年5月、11月,软件设计师每年都会开考。考试条件:三不限......