五一的三天假期期间,ETL逻辑上出现了一些问题,导致每天需要装入DW的增量数据没有按设计装入。所以需要在ETL后对产生的增量数据进行检查,避免出现某天的增量数据出现丢失后自己被动的处理问题。

需求:如当天ETL的增量数据出现问题,需要让两方面的人或程序(DBA与BI)知晓并及时处理。

1. 在ODS服务器上建立如下库、表:

CREATE DATABASE `imm` /*!40100 DEFAULT CHARACTER SET utf8 */;

-- item_info记录不同项目名称与项目内的抽查表(前提:此表每天均有数据产生),以后如有新项目,只需在此表中添加记录
CREATE TABLE `item_info` (
  `id` int(11) DEFAULT NULL,
  `itemname` varchar(64) DEFAULT NULL,
  `tabNameChk` char(32) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- icc表记录每个项目的检查时间与是否成功ETL的状态标志
CREATE TABLE `icc` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `entertime` datetime DEFAULT NULL,
  `itemname` varchar(64) DEFAULT NULL,
  `flag` smallint(6) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

2.建立定时检查的procedure与event:

CREATE PROCEDURE cc_pro()
BEGIN
DECLARE v_max smallint;
DECLARE v_title bigint;
DECLARE v_itemN char(32);
DECLARE v_tab char(64);
DECLARE i smallint;
SET i=1;
SELECT max(id) INTO v_max FROM imm.item_info;
WHILE i <= v_max DO
SELECT itemname,tabNameChk INTO v_itemN,v_tab FROM imm.item_info WHERE id=i;
SET @dbname=v_itemN;
SET @tabname=v_tab;
SET @s_name = CONCAT(@dbname,'.',@tabname);
SET @tempsql = concat('SELECT count(db_id) INTO @v_title FROM ',@s_name,';');
PREPARE _stmt FROM @tempsql;
EXECUTE _stmt;
DEALLOCATE PREPARE _stmt;
IF(@v_title > 0) THEN
INSERT INTO imm.icc(entertime,itemname,flag) VALUES(now(),v_itemN,1);
ELSE
INSERT INTO imm.icc(entertime,itemname,flag) VALUES(now(),v_itemN,0);
END IF;
SET i=i+1;
END WHILE;
END

定时调用procedure,在此之前检查事件调度器是否开启:

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
CREATE EVENT `ccpro_exec` ON SCHEDULE
        EVERY 1 DAY STARTS '2011-05-05 07:00:00'
    ON COMPLETION NOT PRESERVE
    ENABLE
    COMMENT '在ETL执行完成后进行增量数据质量检查'
    DO BEGIN
call imm.cc_pro2;
END

以上事件的作用是每天7点钟检视一次各项目的增量情况

3.接下来可以随便写个shell脚本,作用是对当天的检查结果进行邮件发送(以前我喜欢发送到移动139邮箱,不过时下有太多的邮箱提供手机绑定功能。所以象我这样偷懒的可以只发封邮件。)

#!/bin/bash
#scriptname:icc_result.sh
#author:liuming
#datetime:2011-05-05

function send_message(){
mysql -u$dbuser -p$passwd -D$dbname -e'select * from icc where date(entertime)=date(now());' > $r_txt
mail -s "`date +%Y-%m-%d_%H:%M` ETL(increment data) status " $to_email <$r_txt
}

function main(){
r_txt="`pwd`/icc_result.txt"
dbuser='xxxx'
passwd='xxxx'
dbname='imm'
tabname='icc'
to_email='xxxx@xxx.com'

send_message
}

main

4.对于app方面,可提供相关表名,让其在计算之前进行判断。此处省去N个字...

转载于:https://www.cnblogs.com/minglog/archive/2011/05/05/2037566.html

对增量数据是否如期ETL的监控相关推荐

  1. 使用RestCloud ETL实现增量数据实时同步

    用ETL工具做数据库增量同步方式总共有如下几种: 通过时间戳实时增量同步,每次读取数据时用上一次读的时间戳进行最新数据的查询,有缺点也有优点,这种方式增量我们后面再介绍用ETL怎么做 使用触发器实现增 ...

  2. 数仓第5篇:『数据魔法』ETL

    目录 导读: 一.数据同步之道 01. sqoop 02. DataX 03. kettle 04. canal 05. StreamSets 二.ETL之技术栈 2.1 工具 2.2 语言 三.ET ...

  3. 谈谈对 Canal( 增量数据订阅与消费 )的理解--大数据平台技术栈系列(3)

    之前说了,大数据平台技术栈 (可点击查看),今天就来说说其中的Cannal 来源:朱小厮, blog.csdn.net/u013256816/article/details/52475190 概述 c ...

  4. 谈谈对Canal( 增量数据订阅与消费 )的理解

    原文出处: 朱小厮 概述 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 起源:早期 ...

  5. 谈谈对Canal(增量数据订阅与消费)的理解

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. etl数据抽取工具_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别

    什么是数据同步工具(ETL.ELT) 数据同步工具ETL或者ELT的作用是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决 ...

  7. hbase集群 数据写入_Hbase实用技巧:全量+增量数据的迁移方法

    摘要:本文介绍了一种Hbase迁移的方法,可以在一些特定场景下运用. 背景 在Hbase使用过程中,使用的Hbase集群经常会因为某些原因需要数据迁移.大多数情况下,可以跟用户协商用离线的方式进行迁移 ...

  8. Hbase实用技巧:全量+增量数据的迁移方法

    摘要:本文介绍了一种Hbase迁移的方法,可以在一些特定场景下运用. 背景 在Hbase使用过程中,使用的Hbase集群经常会因为某些原因需要数据迁移.大多数情况下,可以跟用户协商用离线的方式进行迁移 ...

  9. java从hbase增量导出到,Hbase实用技巧:全量+增量数据的迁移方法

    摘要:本文介绍了一种Hbase迁移的方法,可以在一些特定场景下运用. 背景 在Hbase使用过程中,使用的Hbase集群经常会因为某些原因需要数据迁移.大多数情况下,可以跟用户协商用离线的方式进行迁移 ...

最新文章

  1. android ValueAnimator学习
  2. 深入理解CSS变形transform(3d)
  3. Spring配置多数据源错误总结
  4. 【杂谈】有三AI知识星球最近都GAN了哪些内容?
  5. XML解析:PULL解析
  6. 完美收官!java程序内存溢出找原因
  7. 微软在 Linux 虚拟机偷偷安装Azure App,后修复严重漏洞但Linux虚拟机难以修复
  8. IE浏览器下常见的CSS兼容问题
  9. 软件工程毕业设计选题c语言,经典软件工程专业论文选题 软件工程专业论文题目选什么比较好...
  10. Excel怎么实现表格数据行间随机打乱排序
  11. 深度学习在搜索业务中的探索与实践(美团)
  12. SNF快速开发平台--规则引擎在程序当中如何调用
  13. stm32定时器的ETR、CH1N、CH2N、CH3N
  14. 计算机丢失opencv_world300.dll文件
  15. C#设计模式之四建造者模式(Builder Pattern)【创建型】
  16. 数据工具sqoop用法之mysql与hive数据导入导出
  17. iPhone7可以共享热点给多少设备使用呢?
  18. S3C2440下clock的源码分析
  19. PX4:【sensor_combined】
  20. access h3c交换机光口_h3c光纤交换机_H3C交换机光口设置

热门文章

  1. 学习笔记(6):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-实战:电影评论分类模型
  2. 行业解密:为什么跨境电商行业都在做社交媒体营销?
  3. 转贴一篇经典文章--条件判定覆盖和修正条件判定覆盖的差异
  4. 疫情过后,旅游行业采用什么方式获客引流?
  5. 牛客网SQL大厂真题—SQL158:每类视频近一个月的转发量/率
  6. 云客Drupal源码分析之网站维护模式
  7. 4070ti显卡和3080ti显卡哪个好 rtx4070ti和rtx3080ti性能差距
  8. matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...
  9. 数据库笔记2(转载动力节点老杜)
  10. 孙鑫老师最新讲座下载