大数据项目之电商数仓(质量监控SH HQL)
VIP专享
—————————————————————————————
大数据技术之数据质量管理
版本:V1.0
第1章 数据质量
1.1 概述
数据质量的高低代表了该数据满足数据消费者期望的程度,这种程度基于
他们对数据的使用预期,只有达到数据的使用预期才能给予管理层正确的决策
参考。数据质量管理作为数据仓库的一个重要模块,主要可以分为数据的健康
标准量化、监控和保障。
1.2. 数据质量标准分类
① 数据完整性: 数据不存在大量的缺失值、不缺少某一日期/部门/地点等
部分维度的数据,同时在 ETL 过程当中应保证数据的完整不丢失。验证数据时
总数应符合正常规律时间推移,记录数总数的增长符合正常的趋势。
② 数据一致性: 数仓各层的数据,应与上一层保持数据一致,最终经过数
据清洗转化(ETL)的宽表/指标能和数据源保持一致。
③ 数据不重复性:一个数据集当中同一条数据记录不能出现多次,数据不
能大量重复冗余,保证数据的唯一性。
1.3 数据质量管理解决方案
本文通过 Shell 命令和 Hive 脚本的方式,通过验证增量数据的记录数、全
表空值记录数、全表记录数、全表重复值记录数是否在合理的范围之内,以及
验证数据来源表和目标表一致性,确定当日的数据是否符合健康标准,达到数
据质量的监控与管理。
第2章 ODS 层数据校验
2.1 数据校验通用脚本
通过 shell 脚本调用 hive,检验当日分区增加的记录数量和全表记录数量是否在合理的
范围之内,同时检验关键字段为空的记录的记录数量以及重复值的数量。
1)创建数据检查脚本文件夹,用于存放数据校验 shell 脚本
—————————————————————————————
[atguigu@hadoop102 module]$ mkdir -p data_check/sh
[atguigu@ hadoop102 sh]$ pwd
/opt/module/data_check/sh
)在 中创建表数据质量校验记录表,记录数据校验的各个指标:
[atguigu@atguigu data_check]$ hive
创建数据库,用于存放数据质量校验的结果数据:
hive (default)> create database datacheck;
创建数据表,用于存放 ods 层的数据检验结果:
hive (datacheck)> create table
datacheck.table_count_add_standard(
data_date string comment '数据时间分区 dt',
database_name string comment '库名',
table_name string comment '表名',
table_type string comment '表类型(全量/增量)',
add_count bigint comment '当日增量数据的记录数',
null_count bigint comment '表空值记录数',
duplicate_count bigint comment '表重复值记录数',
total_count bigint comment '全表记录数'
);
hive (datacheck)>quit;
)在路径 下创建数据检验增量表通用 脚本
[atguigu@hadoop102 sh]$ vim increment_data_check_public.sh
在脚本中编写如下内容:
#!/bin/bash
# 增量数据所在的日期分区
do_date=$1
# 校验数据的表名
table_name=$2
# 需要校验空值的列名,以逗号’,’隔开
null_column=$3
# 初始化 SQL 查询语句
null_where_sql_str=''
# 将空值检验字符串切成列名数组
array=(${null_column//,/ })
# 遍历数组,拼接空值查询条件
for(( i=0;i<${#array[@]};i++)) do
if [ $i -eq 0 ];then
null_where_sql_str=" where ${array[i]} is null "
else
null_where_sql_str="$null_where_sql_str or ${array[i]}
is null "
fi
done;
echo "------------------检验增量记录数--------------------"
# 执行当日增量数据记录数量 SQL 查询语句
add_count_query_result=`hive -e "select count(*) from gmall.
$table_name where dt='$do_date'"`
# 取出当日增量数据记录数量
add_count=${add_count_query_result:3}
echo "------------------检验全表记录数--------------------"
—————————————————————————————
# 执行当日全表数据记录数量 SQL 查询语句
total_count_query_result=`hive -e "select count(*) from gmall.
$table_name"`
# 取出当日全量数据记录数量
total_count=${total_count_query_result:3}
echo "------------------检验空值记录数--------------------"
# 执行全表空值数据记录数量 SQL 查询语句
table_null_query_result=`hive -e "select count(*) from gmall.
$table_name $null_where_sql_str"`
# 取出全表空值数据记录数量
null_count=${table_null_query_result:3}
echo "------------------检验重复值记录数--------------------"
# 执行全表重复值的记录数量 SQL 查询语句
table_duplicate_query_result=`hive -e "select
sum(tmp.duplicate_count) as duplicate_sum from (select
count(*) as duplicate_count from gmall.$table_name group by
$null_column having count(*)>1) as tmp"`
# 取出全表重复值数据记录数量
duplicate_count=${table_duplicate_query_result:3}
echo "------------------开始插入数据--------------------"
# 将所有数据检验结果插入到表中
hive -e "insert into datacheck.table_count_add_standard
values('$do_date','gmall','$table_name','increment_table',
'$add_count', '$null_count', '$duplicate_count',
'$total_count')"
脚本参数注释:
第一个参数:传入时间分区参数( dt )
第二个参数:需要进行数据校验的表名( table_name )
第三个参数:需要判断是否为空值或重复值的字段名称用逗号‘ ,’隔开,例如:
col1,col2,col3
给脚本 赋权限:
[atguigu@hadoop102 sh]$ chmod 777
increment_data_check_public.sh
脚本执行示例:
[atguigu@hadoop102 sh]$
./increment_data_check_public.sh 2020-06-14 ods_activity_rule
id,activity_id
)在路径 下创建数据检验全量表通用 脚本
[atguigu@hadoop102 sh]$ vim total_data_check_public.sh
在脚本中编写如下内容:
#!/bin/bash
# 增量数据所在的日期分区
do_date=$1
# 校验数据的表名
table_name=$2
# 需要校验空值的列名,以逗号’,’隔开
null_column=$3
摘要:
展开>>
收起<<
—————————————————————————————大数据技术之数据质量管理版本:V1.0第1章数据质量1.1概述数据质量的高低代表了该数据满足数据消费者期望的程度,这种程度基于他们对数据的使用预期,只有达到数据的使用预期才能给予管理层正确的决策参考。数据质量管理作为数据仓库的一个重要模块,主要可以分为数据的健康标准量化、监控和保障。1.2.数据质量标准分类①数据完整性:数据不存在大量的缺失值、不缺少某一日期/部门/地点等部分维度的数据,同时在ETL过程当中应保证数据的完整不丢失。验证数据时总数应符合正常规律时间推移,记录数总数的增长符合正常的趋势。②...
声明:菜根智库所有资料均为用户上传分享,仅供参考学习使用,版权归原作者所有。若侵犯到您的权益,请告知我们处理!任何个人或组织,在未征得本平台同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
相关推荐
-
腾讯研究院:工业大模型应用报告VIP专免
2025-04-04 159 -
阿里云:大模型典型示范应用案例集VIP专免
2025-04-04 150 -
AI+Agent创新10大前沿方向与落地实践-杨永强中盛VIP专免
2025-04-08 141 -
2025年智能分析Agent白皮书VIP专免
2025-05-24 159 -
2025年AI落地应用最新工具集
2025-07-12 139 -
智能体落地最佳实践白皮书 2025VIP专免
2025-07-28 134 -
华为重磅!智能世界2035-134页VIP专免
2025-09-19 988 -
腾讯云2025企业级智能体产业落地研究报告-从场景试点到规模化应用实践105页VIP专免
2025-09-23 139 -
DeepSeek给我们带来的创业机会VIP专免
2025-12-27 120 -
腾讯云中小企业AI实战指南
2026-01-23 133
作者:海阔天空
分类:数字化
价格:免费
属性:17 页
大小:2.53MB
格式:DOCX
时间:2024-02-27

