数据仓库-数据治理小厂实践

一、简介

        数据治理贯穿数仓中数据的整个生命周期,从数据的产生、加载、清洗、计算,再到数据展示、应用,每个阶段都需要对数据进行治理,像有些比较大的企业都是有自己的数据治理平台或者会开发一些便捷的平台,对于没有平台的公司,这里根据自己的亲身实践简单整理一下。

二、治理方向

1、数据的存储

1.1 数据保留周期

        由于数仓的前中期没有对数据的存储进行合理规范的治理,导致大量的历史数据积累,占用一定的磁盘存储开销,造成服务器成本的上升,团队决定对数仓数据的存储进行一定的治理。首先对各个层数据的保留周期进行治理。

        ODS层:原始数据层,存放的数据分为两类:业务数据和埋点日志。对于业务数据不做处理,日志数据又分为未解析的落盘日志和按上报类型解析好的ORC日志,对于未解析直接落盘的原始数据保留三天,按上报类型解析的日志保留7天。

        DWD层:数据明细层,数据分为业务数据和上报日志数据,业务数据不做处理,上报日志数据按需保留7天、30天、45天、90天,例如30日留的计算,需要保留日活主题的数据30天。

        DIM层:量小,不做处理

        DWS层:轻度聚合汇总不做处理

        ADS层:应用层占用较小,不做处理

        方法:通过shell脚本每天定时删除HDFS数据,后期由于删除数据量较大,一次删除会造成集群IO打满,造成集群卡顿,后期优化将不同数据分布在不同的时间段进行清理

1.2 集群小文件治理

        数仓前期没有对文件落盘进行控制,造成集群每天会产生大量的小文件,对集群的存储性能、计算都造成了一定的影响(小文件的危害)。

        方法:已存在的小文件通过shell脚本循环合并,对于无用的小文件可进行删除

                   后续的sql脚本通过 distribute by 来控制文件的落盘数量

1.3 数据量预警

        a. 对于小时任务,监控每小时的数据量,与昨天相比,超过一定规则的进行邮件预警(发送大数据所有人),避免业务数据量暴增,业务通知不及时,造成集群崩溃

        b.对于离线任务,每天定时对各个业务板块的数据进行监控,计算每个项目的总数据量、总设备数、总用户数、人均数以及同比、环比并通知给各个相关人员,以便他们及时了解业务的情况。

2、任务调度

2.1 任务基线预警

        基于不同的任务流程设置不同的任务基线预警,主要分为离线流程基线、小时任务流程基线、收入成本相关基线等

        离线任务流程:由于PC相关报表数据的缓存是在早晨六点开始,APP相关的在早晨七点开始,所以离线流程应该在基线之前执行完成,避免造成数据错误。

        小时任务流程:小时任务流程比较重要,每个小时都要流程执行,并且都有报表更新,以供业务方进行运营,所以流程必须在指定的基线时间完成,并且在缓存基线之前完成报表的缓存更新,以便不影响下个周期流程的执行以及业务可以及时的看到数据的更新。

        营收相关流程:营收基线内完成相关流程

        方法:1. 每次流程执行完成,发送相关邮件进行通知(当没收到邮件时,进行问题的排查),离线可使用,小时流程频繁发的话会造成一定的误导。

                   2. 当集群卡主时,流程end邮件task不会触发,通过调度的元数据执行记录进行监控,在基线时间没有执行记录,触发预警邮件

2.2 DQC预警

        1. 凌晨监控某些核心表的数据是否为空、数据量的波动,提现金额大小、收入入库比例波动等设置相应的DQC规则,进行邮件预警

        2. 及时清理已经下线的DQC以及长期无预警的规则

        3. 长期对规则进行优化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/222767.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用OpenCV DNN模块进行人脸检测

内容的一部分来源于贾志刚的《opencv4应用开发、入门、进阶与工程化实践》。这本书我大概看了一下,也就后面几章比较感兴趣,但是内容很少,并没有想像的那种充实。不过学习还是要学习的。 在实际工程项目中,并不是说我们将神经网络…

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

【背景】 之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。 看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。(同专栏下查看&#xff09…

el-select如何去掉placeholder属性

功能要求是&#xff1a;当el-select的disabled属性为true的时候不展示“请选择”字样 1、要去掉 el-select 元素的 placeholder 属性&#xff0c;可以在代码中将其设置为空字符串。 <el-select placeholder"" ...></el-select> 注意&#xff1a;这种方…

Linux目录切换相关命令@cd/pwd

目录 基础指令 cd命令原型命令的搭配以及效果命令本身cd cd 指定目录 基础指令 pwd命令原型pwd 总结&#xff1a; 基础指令 cd cd 取自英文 Change Directory 的首字母组成。 英文的中文翻译为&#xff1a;更改目录。 很明显该指令是用来更改目录的。 命令原型 cd [Linux路径…

Java设计模式之单例模式以及如何防止通过反射破坏单例模式

单例模式 单例模式使用场景 ​ 什么是单例模式&#xff1f;保障一个类只能有一个对象&#xff08;实例&#xff09;的代码开发模式就叫单例模式 ​ 什么时候使用&#xff1f; 工具类&#xff01;&#xff08;一种做法&#xff0c;所有的方法都是static&#xff0c;还有一种单…

27. 过滤器

Filter(过滤器)简介 Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截&#xff0c;从而在 Servlet 进行响应处理的前后实现一些特殊的功能。在 Servlet API 中定义了三个接口类来开供开发人员编写 Filter 程序&#xff1a;Filter, FilterChain, FilterConfigFi…

【数据结构】队列的使用|模拟实现|循环队列|双端队列|面试题

一、 队列(Queue) 1.1 概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾&#xff08;Tail/Rear&#xff09; 出队列…

TSINGSEE青犀可视化视频云平台JT/T1078接入能力在智慧物流中的应用

一、引言 随着科技的快速发展和全球贸易的蓬勃发展&#xff0c;智慧物流成为了现代物流业的重要发展方向。智慧物流通过引入先进的信息技术&#xff0c;实现了物流过程的自动化、智能化和信息化&#xff0c;从而提高了物流效率和准确性。在这个过程中&#xff0c;JT/T1078接入…

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式&#xff0c;但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件&#xff0c;今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器&#xff0c;其实浏览器也可以用来打开PDF文件。 只需…

在x64上构建智能家居(home assistant)(二)(新版Debain12)连接Postgresql数据库

新版数据库安装基本和旧版相同,大部分可以参考旧版本在x64上构建智能家居(home assistant)&#xff08;二&#xff09;连接Postgresql数据库_homeassist 数据库-CSDN博客 新版本的home assistant系统安装,我在原来写的手顺上直接修改了,需要的可以查看在x64上构建智能家居(home…

探索未来交通!空客、宝马开启新一轮“量子计算挑战赛”

12月6日&#xff0c;空中客车公司和宝马集团共同发起了一项名为 “量子交通探索”的全球量子计算挑战赛&#xff0c;以应对航空和汽车领域最紧迫的挑战——这些挑战对于传统计算机而言仍然是难以克服的。 这项挑战是首创性的&#xff0c;它将两个全球行业领导者聚集在一起&…

Wavesurfer.js绘制波形图

HTML使用Wavesurfer.js 要使用wavesurfer.js&#xff0c;首先需要在HTML文件中引入Wavesurfer.js库&#xff0c;然后创建一个音频元素并将其添加到页面中。接下来&#xff0c;初始化Wavesurfer实例并配置相关选项。以下是一个简单的示例&#xff1a; 在HTML文件中引入Wavesurf…

jvm内存模型

1、简介 JVM在执行Java程序时&#xff0c;会把它管理的内存划分为若干个的区域&#xff0c;每个区域都有自己的用途和创建销毁时间。如下图所示&#xff0c;可以分为两大部分&#xff0c;线程私有区和共享区。下图是根据自己理解画的一个JVM内存模型架构图&#xff1a; 2、线程…

LeetCode刷题--- 电话号码的字母组合

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递归递归、搜…

机器学习算法(12) — 集成技术(Boosting — Xgboost 分类)

一、说明 时间这是集成技术下的第 4 篇文章&#xff0c;如果您想了解有关集成技术的更多信息&#xff0c;您可以参考我的第 1 篇集成技术文章。 机器学习算法&#xff08;9&#xff09; - 集成技术&#xff08;装袋 - 随机森林分类器和...... 在这篇文章中&#xff0c;我将解释…

LangChain入门指南:定义、功能和工作原理

LangChain入门指南&#xff1a;定义、功能和工作原理 引言LangChain是什么&#xff1f;LangChain的核心功能LangChain的工作原理LangChain实际应用案例如何开始使用LangChain 引言 在人工智能的浪潮中&#xff0c;语言模型已成为推动技术革新的重要力量。从简单的文本生成到复…

ChatGPT一周年:开源语言大模型的冲击

自2022年末发布后&#xff0c;ChatGPT给人工智能的研究和商业领域带来了巨大变革。通过有监督微调和人类反馈的强化学习&#xff0c;模型可以回答人类问题&#xff0c;并在广泛的任务范围内遵循指令。在获得这一成功之后&#xff0c;人们对LLM的兴趣不断增加&#xff0c;新的LL…

《每天一分钟学习C语言·七》指针、字节对齐等

1、 对于二维数组如a[3][4]可以当做有三个元素的一维数组&#xff0c;每个元素包含四个小元素。 2、 printf(“%-5d”, i); //负号表示左对齐&#xff0c;5d表示空五个光标的位置 3、 栈&#xff1a;先进后出&#xff0c;堆&#xff1a;先进先出 4、 &#xff08;1&#xff…

yolo-nas无人机高空红外热数据小目标检测(教程+代码)

前言 YOLO-NAS是目前最新的YOLO目标检测模型。从一开始&#xff0c;它就在准确性方面击败了所有其他 YOLO 模型。与之前的 YOLO 模型相比&#xff0c;预训练的 YOLO-NAS 模型能够以更高的准确度检测更多目标。但是我们如何在自定义数据集上训练 YOLO NAS&#xff1f; 这将是我…

基于ERC20代币协议实现的去中心化应用平台

文章目录 内容简介设计逻辑ERC20TokenLoanPlatform 合约事件结构体状态变量函数 Remix 运行实现部署相关智能合约存款和取款贷款和还款 源码地址 内容简介 使用 solidity 实现的基于 ERC20 代币协议的借贷款去中心化应用平台(极简版)。实现存款、取款、贷款、还款以及利息计算的…