目录

0. 相关文章链接

1. 目的

2. 调度任务创建

2.1. 概述

2.2. ods_fmys_goods_ext_数据核对_CDM任务 节点说明

2.3. ods_fmys_goods_ext_数据核对_异常告警任务 节点说明


0. 相关文章链接

离线数仓文章汇总

1. 目的

在ODS层中,业务数据是通过将业务库的binlog数据写入到数仓中,然后对数据进行聚合去重等操作,得到最新的数据;这样的话可能存在网络抖动等情况,导致数据部分丢失(虽然在大数据环境中,都实现了高可用,基本不会存在这样的情况),这时候就需要一个数据核对的作业,定时(一个星期一次)通过CDM从业务库拉取全量数据过来,然后和数仓中的数据对比;当完全相同的条数小于一个比例时(数仓中使用分钟级更新的视图,一般完全相同的条数要大于百分之99.99)就发出告警,及时被开发人员感知。

2. 调度任务创建

2.1. 概述

架构图:

说明:

  • 该作业为周末空闲时间调度(每周一次,在集群资源空闲的时候即可);
  • 该作业的目的是,快速从业务库拉取表到数仓中的临时表,然后和ods层的视图进行数据比对,当完全相同的条数低于某个比例时,就进行告警,将告警消息发送到飞书、钉钉等通信软件上;
  • 因为ods层视图是分钟级更新,临时表也因为设置多并发故拉取数据较快,所以可以设置完全相同的数据条数要大于百分之99.99才算正常;
  • 除了条数外,还可以使用其他数据核对口径,比如某一天某个小时的GMV、上架商品数等具体业务口径;

2.2. ods_fmys_goods_ext_数据核对_CDM任务 节点说明

设置高并发从业务库中拉取数据到数仓的临时表中(注意:在华为云中,当数仓结果表不为分区表时才能用高并发,并且结果表还要是外部表),CDM配置如下所示:

2.3. ods_fmys_goods_ext_数据核对_异常告警任务 节点说明

对比ods层视图 和 前述节点从业务库中拉到数仓的临时表数据,当完全相同的数据条数小于百分之99.99时,就触发告警;博主这里是使用的python脚本,通过python调用华为云DLI接口跑SQL,当结果异常时python脚本就会将告警消息发送到飞书告警群中,具体查询脚本和告警配置如下所示:

  • 查询脚本:
select'ods_fmys_goods_ext_数据核对' as 作业名, '完全相同条数比例过低' as 统计口径, result as 完全相同条数比例值
from (selectsame_cnt / all_cnt as resultfrom(selectcount(*) as same_cntfrom(selectconcat(goods_id, limit_day, auto_time, is_new, grade, season, goods_type) as all_datafrom ${yishou_data_dbname}.ods_fmys_goods_ext) as viewinner join(selectconcat(goods_id, limit_day, auto_time, is_new, grade, season, goods_type) as all_datafrom ${yishou_data_dbname}.ods_fmys_goods_ext_temp) as temp_tableon view.all_data = temp_table.all_data) as same_tablefull join (select count(*) as all_cntfrom ${yishou_data_dbname}.ods_fmys_goods_ext) as all_tableon 1 = 1having result < 0.9999
)
  • 告警参数:
-q "select 'ods_fmys_goods_ext_数据核对' as 作业名 , '完全相同条数比例过低' as 统计口径 , result as 完全相同条数比例值 from( select same_cnt / all_cnt as result from( select count(*) as same_cnt from( select concat(goods_id, limit_day, auto_time, is_new, grade, season, goods_type) as all_data from ${yishou_data_dbname}.ods_fmys_goods_ext) as view inner join( select concat(goods_id, limit_day, auto_time, is_new, grade, season, goods_type) as all_data from ${yishou_data_dbname}.ods_fmys_goods_ext_temp ) as temp_table on view.all_data = temp_table.all_data ) as same_table full join ( select count(*) as all_cnt from ${yishou_data_dbname}.ods_fmys_goods_ext ) as all_table on 1 = 1 having result < 0.9999 )" -t dli -n ods_fmys_goods_ext_数据核对 -d 数据异常 -g dev -b N
  • 告警参数说明:
-q "执行的SQL"
-t dli
-n ods_fmys_goods_ext_数据核对
-d 数据异常
-g dev
-b N-q  :执行的SQL
-t  :环境(全部都是华为云的DLI)
-n  :告警的主题名
-d  :告警的口径
-g  :环境(开发、测试、生产)
-b  :是否阻断(即当告警时,后续依赖作业是否正常运行)
  • 配置界面图:

  • 告警展示(不是此个告警,但展示样子类似):

说明:上述只介绍了在调度任务中的告警,但使用的python脚本和对应的飞书机器人配置没有介绍,在具体使用时可以根据具体情况来实现(比如使用其他开源框架进行数据质量监控、钉钉机器人、电话告警等);如果要使用其他业务口径进行数据质量监控也可以同样配置。


注:其他 离线数仓 相关文章链接由此进 -> 离线数仓文章汇总


离线数仓(10):ODS层实现之业务数据核对相关推荐

  1. 离线数仓搭建_11_DWD层用户行为日志创建

    文章目录 13.0 数仓搭建-DWD层 13.1 DWD层(用户行为日志) 13.1.1 日志解析思路 13.1.2 get_json_object函数使用 13.1.3 启动日志表 13.1.4 页 ...

  2. 大数据-案例-离线数仓-在线教育:MySQL(业务数据)-ETL(Sqoop)->Hive数仓【ODS层-数据清洗->DW层(DWD-统计分析->DWS)】-导出(Sqoop)->MySQL->可视化

    一.商业BI系统概述 商业智能系统,通常简称为商业智能系统,是商业智能软件的简称,是为提高企业经营绩效而采用的一系列方法.技术和软件的总和.通常被理解为将企业中的现有数据转换为知识并帮助企业做出明智的 ...

  3. 数仓搭建 ODS 层

    文章目录 ODS层(用户行为数据) Shell中单引号和双引号区别 ODS层日志表加载数据脚本 ODS层(业务数据) 1,活动信息表 2, 活动规则表 3,一级品类表 4,二级品类表 5,三级品类表 ...

  4. 数仓搭建——ODS层

    1 ODS层(用户行为数据) 1.1 创建日志表ods_log 建表语句 hive (gmall)> drop table if exists ods_log; CREATE EXTERNAL ...

  5. 离线数仓 (十三) --------- DWD 层搭建

    目录 前言 一.DWD 层 (用户行为日志) 1. 日志解析思路 2. get_json_object 函数使用 3. 启动日志表 4. 页面日志表 5. 动作日志表 6. 曝光日志表 7. 错误日志 ...

  6. 大数据-案例-离线数仓-电商:【MySQL(业务)-ETL(Kettle)】+【前端JS埋点->日志->Flume->HDFS->ETL(SparkRDD)】->Hive数仓->MySQL->可视化

    一.电商行业简介 1.电商行业分析 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化.相关服务业蓬勃发展.支撑体系不断健全完善.创新的动力和能力 不断增强.电子商务 ...

  7. 大数据架构师——音乐数据中心平台离线数仓综合项目(四)

    文章目录 音乐数据中心平台离线数仓综合项目 第四个业务:商户营收统计 需求 模型设计 数据处理流程 1. 将数据导入MySQL业务库 2. 执行第二.三个业务 3. 使用Sqoop抽取mysql数据到 ...

  8. 实时数仓与离线数仓总结(一)

    精选30+云产品,助力企业轻松上云!>>> 今天主要聊聊数仓的基础知识,分为两篇文章介绍,这是第一篇. 主要内容: 数仓基本概念 数仓架构演变 实时数仓和离线数仓的区别 数仓基本概念 ...

  9. 大数据电商离线数仓项目-上篇

    下一篇:电商数仓项目-下篇 文章目录 第1章 数仓分层 1.1 为什么要分层 1.2 数据集市与数据仓库概念 1.3 数仓命名规范 1.3.1 表命名 1.3.2 脚本命名 1.3.3 表字段类型 第 ...

最新文章

  1. 企业管理做不好的根源!「管理智慧」
  2. 前端资源构建-Grunt环境搭建
  3. POJ1990:MooFest——题解
  4. 敲代码就是一把梭_2020必看!开发五年的大佬日常工作中所使用的java代码技巧...
  5. [XSY3112] 接水果(树上包含路径,整体二分,扫描线)
  6. Linux微信运行错误,Ubuntu 16.04 运行微信开发者工具编译出错的解决办法
  7. php5.4源码下载,WordPress v5.4.2官方正式版源码下载
  8. 第76节:Java中的基础知识
  9. java设计模式(四)--单例模式
  10. 在WPF控件上添加Windows窗口式调整大小行为
  11. Introduction to Computer Networking学习笔记(八):end-to-end principle端对端原则
  12. 上海计算机二级考c语言真题及答案,上海市二级考C语言真题.doc
  13. 怎样稳稳获得年化高收益
  14. 天猫精灵智能家居对接,及天猫iot官网配置图文讲解(一)
  15. 歌曲背後真實的故事 (看完这个故事我流泪了~~~)
  16. html中div标签圈套,HTML中div标签和span标签的应用
  17. 【深度学习】(ICCV-2021)PVT-金字塔 Vision Transformer及PVT_V2
  18. 30个物联网传感器小实验6:人体感应器
  19. Armadillo与matlab矩阵运算对照
  20. 了解CSS盒模型、页面布局在UI设计中的作用

热门文章

  1. 窗帘可以选择这6种效果不错的颜色 - 好佳居窗帘十大品牌
  2. 国外有哪些类似Wooyun(乌云)的网站平台?
  3. MATLAB从入门到精通-Matlab读取fnl.grib2文件
  4. ol3 结构图 仅限ol.source.Source
  5. git 拉取其他分支代码
  6. java推送叮叮消息,叮叮叮!请及时签收入门学习Java导航路线
  7. yarn : 无法加载文件 D:\Development\nvm\node_global\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
  8. 64位系统编译32位文件 -m32
  9. Linux(Centos 7)使用tcpdump抓取流量包
  10. 基于libyuv库的NV12格式图片的缩放