八、数据仓库详细介绍(监控告警)

这篇具有很好参考价值的文章主要介绍了八、数据仓库详细介绍(监控告警)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言

在前边的章节,我们设计完存储模型,开发了 ETL 任务,并且配置好流程依赖,然后上调度系统,至此我们的数据仓库基本搭建完成,而且所有流程任务都可以自动化运转了。

随着公司上线的数据处理任务越来越多,我们可以安排专门的运维人员定时监控任务执行情况,定时去检查终端应用,尽最大可能的发现问题(比如源数据迟到、数据量突增、异常数据或者开发考虑不周、有人修改代码且测试不充分、服务器异常、调度宕机等等),并且赶在业务使用前解决掉。

不过技术人嘛,这种全靠人肉去监控的方法总感觉太低端,而且心里很不踏实。所以,就需要上一套工具,来监控 ETL 运行情况、稽核数据质量,并根据监控稽核结果及时的发出告警或者通知。

涉及到技术层面,我们必须做一下几点工作:

  1. ETL 计算逻辑、流程控制准确合理。(这个有 ETL 开发人员保证,测试人员把关。当然了很多时候开发测试都是同一个人,责任重大但谁让你是高级开发呢?)。

  2. ETL 任务流程在规定的时间点能够被调起来。(这个有调度系统保证,另外再配上监控告警系统,超时未启动触发告警)。

  1. 对于时效性 SLA 有要求的任务,需要添加超时告警。(这个调度系统可能会有,没有的话监控告警系统有也行,超时未完成触发告警)。

  2. 稽核校验系统,根据检查点规则配置的校验时间启动校验,发现问题触发报警。(当然,有时候会在任务执行完成后,直接启动关联的数据质量稽核校验)。

综上所属,除了正常的 ETL 任务流程和调度系统外,我还需要再有三大模块:ETL运行情况监控、数据质量稽核、告警通知系统。

另外,我最近在规划一套数据质量监控+告警通知系统,现在只是设计了表结构,其它的代码+页面都还没有,有兴趣的可以一起参与进来。

https://code.aliyun.com/lipengbo123/dqc

2. ETL 运行情况监控

首先,整个 ETL 流程任务是经过充分测试后才会上线的,所以理论上讲,只要整体流程能在规定的时间内跑完且不报错,一切就 OK。

因此我们首先要做的就是 ETL 运行情况的监控。每一步关键节点都记录日志并且标明所属层级。

2.1 大致流程介绍

大致分为三部分:

  1. ETL 任务执行过程中,记录详细的 ETL 运行日志

  2. 分析  ETL 运行日志,汇总关键信息到监控结果日志表。

  1. 发现异常直接调用告警通知模块触达告警,或者将告警通知信息写入告警记录表。

八、数据仓库详细介绍(监控告警)

下图中的流程源自于多年前的项目交付文档,我们除了监控 ETL 执行情况外,还做了 ODS 层数据抽取完整性校验和数据库存储空间使用情况检查。

八、数据仓库详细介绍(监控告警)

2.2 记录运行日志的方法介绍

我们当时使用 Kettle 做为 ETL 工具,但使用其它工具、 Shell 脚本又或者调度工具其方法都是类似的。

第一层 ETL,每一步节点都会判断成功还是失败,失败则直接记录失败日志然后结束任务。

八、数据仓库详细介绍(监控告警)

第二层 ETL。第一层里的 JOB_DW 任务节点下钻后的第二层任务。当第二层里的任意一个节点失败都会记录失败日志同时终止任务,同时该错误会向上层传递直至最外层任务。

八、数据仓库详细介绍(监控告警)

再往下层,方法类似,我们就不做多余介绍了。

2.3 表结构设计

2.3.1 流水线运行日志 T_BAS_ETL_LOG

八、数据仓库详细介绍(监控告警)

2.3.2 ETL监控结果汇总信息T_ETL_RST_COLLECTINFO

八、数据仓库详细介绍(监控告警)

2.3.2 通知告警记录表

这个参考第四部分:告警通知系统设计

2.4 报表展示设计

除了告警通知,我们还需要有系统页面,方便运维做事后的分析和查看。

2.4.1 ETL运行情况日志

报表01:最外层 ETL 任务

如果有错误,需要标成红色,并且显示错误信息,报表 02 同理

八、数据仓库详细介绍(监控告警)

报表02:报表下钻后的明细 ETL 任务。

八、数据仓库详细介绍(监控告警)

2.4.2 数据抽取完整性日志

这个其实也可以通过数据质量稽核,配置检查点实现

八、数据仓库详细介绍(监控告警)

2.4.3 数据库空间存储日志

这个是当时 Oracle 数据库的统计,当空间占用达到 80% 时候需要告警

八、数据仓库详细介绍(监控告警)

3. 数据质量稽核

在某些情况下,就算 ETL 运行正常也不能保证整体数据就正常,比如源端数据迟到或缺失、ETL 代码被人错误的修改、调度未执行等等。

所以,我们需要对重要或者关键节点上的数据,做好稽核校验。

之前项目上通过 Oracle 存储过程 + Oracle job 实现过一版,大致思路就是通过比对两条 SQL 的查询结果来校验,但缺陷是只能检验数据库里的数据。

我刚毕业时候公司有一个网页版的工具(CData),现在想想拿来做数据质量稽核会更合适一些。

3.1 大致流程如下

  1. 配置数据源,可以是各种数据库。

  2. 配置比对规则。

    1. 指定数据源。

    2. 指定表,或者自己写查询 SQL。

    3. 字段映射,映射的时候可以配置简单的转换,需要区分维度和指标。

    4. 设定阈值,比如指标差异多少算作异常。

  1. 根据配置的调度时机执行校验。

  2. 执行日志实时展示,事实上是一张报表,可以下钻,报错的会重点标红,正常的标绿。

3.2 表结构设计

3.2.1 检查点配置表 dqc_check_config

八、数据仓库详细介绍(监控告警)

3.2.2 数据源配置表 dqc_check_config_datasource

八、数据仓库详细介绍(监控告警)

3.2.3 校验结果数据 dqc_check_result

八、数据仓库详细介绍(监控告警)

3.2.4 规则执行日志 dqc_check_log

八、数据仓库详细介绍(监控告警)

4. 告警通知系统

ETL 运行情况监控或者数据质量稽核发现问题后,需要触发告警通知。

4.1 实现方法

  1. 封装成一个服务对外开放 API 接口,ETL 运行情况监控或者数据质量稽核发现问题后实时调用该 API 触发告警/通知。传入参数如下:触达方式(邮件/短信/电话/微信/钉钉)、通知组、消息内容。

  2. 写入告警信息表,告警通知系统另起一个调度任务对该表定时轮询。

4.2 三种用途

  1. 确保监控和稽核任务发现问题后能够自动触发告警,以便运维人员能够及时处理。

  2. 没有收到告警并不能代表无错误,可能是监控或者稽核任务没有执行,最稳妥的办法就是一切 OK 的时候也发一条完成通知消息。

  1. 每日的分析简报也可以通过该系统推送消息。比如运营日报、监控日报。

4.3 表结构设计

4.3.1 数据质量-告警通知组 dqc_notify_group

八、数据仓库详细介绍(监控告警)

4.3.2 数据质量-告警通知触达对象 dqc_notify_object

八、数据仓库详细介绍(监控告警)

4.3.3 数据质量-告警通知日志 dqc_notify_log

八、数据仓库详细介绍(监控告警)文章来源地址https://www.toymoban.com/news/detail-467640.html

到了这里,关于八、数据仓库详细介绍(监控告警)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 六、数据仓库详细介绍(ETL)方法篇

    上文我们把数据仓库类比我们人类自身,数据仓库“吃”进去的是原材料(原始数据),经过 ETL 集成进入数据仓库,然后从 ODS 开始逐层流转最终供给到数据应用,整个数据流动过程中,在一些关键节点数据会被存储存储下来落入数仓模型。在数仓这个自运转的大生态系统中

    2024年02月16日
    浏览(43)
  • 【Linux】部署Prometheus + Grafana简介、监控及设置告警详细操作(多种方式安装,亲测无问题)

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 服务器类型 IP地址 组件 Prometheus 服务器、agent 服务器、grafana 服务器 172.16.11.209 Prometheus、node_exporter、Grafana

    2024年02月13日
    浏览(46)
  • 使用开源实时监控系统 HertzBeat 5分钟搞定 Mysql 数据库监控告警

    Mysql 数据库介绍 MySQL是一个开源关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的开源关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 HertzBeat 介绍 H

    2024年02月10日
    浏览(40)
  • Springboot 集成Prometheus 数据采集 使用grafana 监控报告告警 邮件配置

    目录 Springboot 相关 Pom 重点包 如果有需要可以增加安全包-一般内部机房没啥事-(非必选) Application.yml配置文件-(非必选) Application.properties management.endpoints.web.exposure.include介绍 启动类 查看监控信息 Prometheus Prometheus.yml 配置 如果使用类安全包-(非必选) 启动就可以看到了

    2024年02月11日
    浏览(50)
  • 直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路

    当企业的业务发展到一定的阶段时,在系统中引入监控告警系统来对系统/业务进行监控是必备的流程。没有监控或者没有一个好的监控,会导致开发人员无法快速判断系统是否健康;告警的实质则是“把人当服务用”,用告警通知人的方式去干预系统达到修正的目的。 监控

    2024年02月14日
    浏览(39)
  • TiDB 多集群告警监控-初章-监控融合、自动告警处理

    author:longzhuquan 随着公司XC改造步伐的前进,越来越多的业务选择 TiDB,由于各个业务之间需要物理隔离,避免不了的 TiDB 集群数量越来越多。虽然每套 TiDB 集群均有两个详细的监控 Dashboard、Grafana,但对于运维来说几十套集群的监控、告警、巡检均需消耗巨大的精力。 虽然

    2024年01月17日
    浏览(40)
  • 云监控告警2.0:革新传统告警机制,引领智能化监控新时代

    本文分享自天翼云开发者社区《云监控告警2.0:革新传统告警机制,引领智能化监控新时代》,作者:每日知识小分享 随着云计算技术的飞速发展,云服务已成为企业IT架构的重要组成部分。为了确保云服务的稳定、高效运行,云监控告警机制扮演着至关重要的角色。传统的

    2024年03月14日
    浏览(39)
  • 容器云平台监控告警体系(五)—— Prometheus发送告警机制

    在Prometheus的架构中告警被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。本文主要讲解Prometheus发送告警机制也就是在Prometheus Server中定义告警规则和产生告警部分,不过多介绍Alertmanager组件。 在Prometheus中

    2023年04月23日
    浏览(46)
  • ElasticSearch监控与告警:实时监控集群健康状态

    ElasticSearch是一个开源的搜索和分析引擎,它可以为应用程序提供实时的、可扩展的搜索功能。ElasticSearch是一个分布式系统,它可以在多个节点上运行,以实现高可用性和高性能。在生产环境中,监控和告警是关键的,以确保集群的健康状态和性能。 在本文中,我们将讨论

    2024年02月20日
    浏览(37)
  • Git学习与gitlab中央仓库搭建(详细介绍)

    环境:centos7.3 git:分布式版本控制系统,是当前最流行的版本控制软件 创始人:林纳斯.拖瓦兹 1.安装git服务 2.配置git环境 不一定是data目录,但是尽量设为data命名的目录,可视度比较高 自动生成的git文件,是隐藏的文件,需要ls -a才可以列出 git目录的组成 branches 分支目录

    2024年02月02日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包