当前位置: 首页 > news >正文

哪里建设网站不会被封商丘网站公司

哪里建设网站不会被封,商丘网站公司,python网站搭建,ajax 效果网站版本20231116 要理解数据的质量管理#xff0c;应具备hive数据仓库的相关知识 文章目录 1.理解什么是数据的质量管理#xff1a;2.数据质量管理的规划数据质量标准的分类 3.数据质量管理解决方案1.ods层的数据质量校验1#xff09;首先在hive上建立一个仓库#xff0c;添加…版本20231116 要理解数据的质量管理应具备hive数据仓库的相关知识 文章目录 1.理解什么是数据的质量管理2.数据质量管理的规划数据质量标准的分类 3.数据质量管理解决方案1.ods层的数据质量校验1首先在hive上建立一个仓库添加数据质量监控表2然后建立检查检查表3创建数据检验曾量表通用的脚本4创建数据检测全量表的脚本5脚本的运行 2.dwd层的数据质量校验1建立dwd层校验表2编写数据检测脚本 3.dws-dwt层数据校验4.ads层数据校验1建立ads校验表2编写数据检测脚本 1.理解什么是数据的质量管理 数据的质量管理表现保障在数据的健康性即满足消费者期望程度体现在他们对数据的使用预期只有达到预期才能满足决策层的参考。 大数据大而价值密度低在有效信息数据挖掘上可能会出现错误在这个基础上分析师会对数据有一个预期分数如果他觉得数据的准确率在百分之八十以上就算是满足需求。 我们对数据的质量控制达到了这个标准就算达到了数据的质量要求。 2.数据质量管理的规划 数据的质量管理作为数据仓库的一个重要模快主要可以分为数据的健康标准量化监控和保障。 数据质量标准的分类 1数据的完整性 数据不存在大量的缺失值不缺少某一日期的/部门、地点等部分维度的数据。随时间的推移数据量符合正常的趋势 2数据的一致性 数据各层的数据应与上层保持一致经过elt处理后的宽表和指标能与数据源保持一致 3数据的不重复性 同一个数据集当中统一个数据不能出现多次不能出现数据的大量冗余保证数据的唯一性 3.数据质量管理解决方案 使用shell命令和hive脚本的方式通过验证增量数据的记录数全表空值记录数全表空值记录数全表记录数是否在合理的范围之内以及验证数据来源表和目标表的一致性确定当日的数据是否符合健康标准达到数据质量的检测和管理。 1.ods层的数据质量校验 1首先在hive上建立一个仓库添加数据质量监控表 create database datacheck;2然后建立检查检查表 create table datacheck.table_count_add_standard( data_date string comment 数据时间分区, 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 全表记录数 )3创建数据检验曾量表通用的脚本 [lychadoop102 check]$ vim increment_data_check_public.sh#!/bin/bash #增量数据所在的日期分区 check_date$1 #校验数据的表名 table_name$2 #需要校验控制的列名以‘’号隔开 null_column$3 #初始化sql查询语句 null_where_sql_str #将控制检验字符切割成列名数组 array({null_column//,/}) #遍历数组拼接空值查询条件 for(( i0;i${#array[]};i)) doif [ $i -eq 0 ];thennull_where_sql_str where ${array[i]} is null elsenull_where_sql_str$null_where_sql_str or ${array[i]} is nullfi done #执行当日增量数据记录数量sql查询语句; gmall 为数据仓库所在的库名 add_count_quary_resulthive -e select count(*) from gmall.$table_name where dt$check_date #取出当日增量数据记录数量 add_count${add_count_quary_result:3} #执行当日全表数据记录数量的查询sql查询语句 total_count_quaryhive -e select count(*) from gmall.$table_name #取出当日全量数据的记录数量 total_count${total_count_quary:3} #执行全表空值数据记录数sql查询语句 table_null_quary_resulthive -e select count(*) from gmail.$table_name$null_where_sql_str #取出全表空值数据记录数量 null_count${table_null_quary_result:3} #执行全表重复值的记录数量sql查询语句 table_duplicate_quary_resulthive -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_quary_result:3}#将所有的数据检验结果插入表中 hive -e insert into datacheck.table_count_add_standard values ($check_date,gmall,$table_name,increment_table,$add_count,$null_count,duplicate_count,total_count)脚本参数注释 第一个参数传入时间分区参数(dt) 第二个参数需要进行数据校验的表名(table_name) 第三个参数为查询的字段名,用“,”号隔开。如 cl1,cl2,cl3 4创建数据检测全量表的脚本 全量表的脚本相比于增量表的区别在于不需要计算增量表的结果 [lychadoop102 check]$ vim increment_data_check_public.sh#!/bin/bash #全量数据所在的日期 check_date$1 #校验数据的表名 table_name$2 #需要校验控制的列名以‘’号隔开 null_column$3 #初始化sql查询语句 null_where_sql_str #将控制检验字符切割成列名数组 array({null_column//,/}) #遍历数组拼接空值查询条件 for(( i0;i${#array[]};i)) doif [ $i -eq 0 ];thennull_where_sql_str where ${array[i]} is null elsenull_where_sql_str$null_where_sql_str or ${array[i]} is nullfi done #执行当日增量数据记录数量sql查询语句; gmall 为数据仓库所在的库名 #add_count_quary_resulthive -e select count(*) from gmall.$table_name where dt$check_date #取出当日增量数据记录数量 #add_count${add_count_quary_result:3} #执行当日全表数据记录数量的查询sql查询语句 total_count_quaryhive -e select count(*) from gmall.$table_name #取出当日全量数据的记录数量 total_count${total_count_quary:3} #执行全表空值数据记录数sql查询语句 table_null_quary_resulthive -e select count(*) from gmail.$table_name$null_where_sql_str #取出全表空值数据记录数量 null_count${table_null_quary_result:3} #执行全表重复值的记录数量sql查询语句 table_duplicate_quary_resulthive -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_quary_result:3}#将所有的数据检验结果插入表中 hive -e insert into datacheck.table_count_add_standard values ($check_date,gmall,$table_name,total_table,null,$null_count,duplicate_count,total_count)5脚本的运行 单独一张表的脚本运行 [lychadoop102 check]$ total_data_check_public.sh 2023-06-14 activity_rule id,activity_id如果表多可以使用以下脚本 vim ods_data_check.sh#!/bin/bash check_date$1/opt/module/check/total_data_check_public.sh $check_date ods_user_info id,name,birthday,email/opt/module/check/total_data_check_public.sh $check_date ods_order_status_log id,order_id,order_status,operater_time2.dwd层的数据质量校验 dwd校验数据于ods需要考虑的差不多主要增加了相较于ods数据的一致性同时因为我们在ods层已经校验了数据的空值所以只要保持数据的一致性就可以从而验证控制值率 1建立dwd层校验表 create table datacheck.dwd_table_data_check( data_date string comment 数据时间分区, database_name string comment 库名, source_table_name string comment 数据源表表名, source_column string comment 数据源字段名, target_table_name string comment 数据目标表表名, target__column string comment 数据目标表字段名, consistent_data_count bigint comment 全表数据一致记录数, source_table_count bigint comment 数据源表全表记录数, target_table_count bigint comment 数据目标表全表记录数, target_duplicate_count bigint comment 数据目标表重复记录数 );2编写数据检测脚本 vim table_consistent_check_public.sh#!/bin/bash #全量数据所在的日期 check_date$1 #校验数据源表的表名 source_table_name$2 #需要校验控制的列名(与目标表顺序一致才能对比两个字段) source_column$3 #检查数据目标表的表名 target_table_name$4 #检查数据目标表的字段 target_column$5#初始化sql查询语句 join_on_sql_str #将检验数据源表的字符切割成列名数组 source_column_array({null_column//,/}) target_column_array({null_column//,/}) #遍历数组拼接关联条件输入字段全部关联 for(( i0;i${#source_column_array[]};i)) doif [ $i -eq 0 ];thenjoin_on_sql_str on $source_table_name.${source_column_array[i]}$target_table_name.${target_column_array[i]}elsejoin_on_sql_str$join_on_sql_str and $source_table_name.${source_column_array[i]}$target_table_name.${target_column_array[i]}fi done echo ----------ods-dwd 一致性检查-------------- #执行数据源目标表和目标表关联的查询sql语句产线数据一致的条数。 consistent_data_quary_resulthive -e select count(*) from gmall.$source_table_name join gmall.$target_table_name$join_on_sql_str #取出全表一致查询的条数 consistent_data_count${consistent_data_quary_result:3} echo ----------ods层记录条数-------------- #执行查询源表的记录条数 source_table_quary_resulthive -e select count(*) from gmall.$source_table_name #取出全表数据源表的记录条数 source_table_count${source_table_quary_result:3}echo ----------dwd层记录条数-------------- #执行查询目标表记录条数sql查语句; gmall 为数据仓库所在的库名 target_table_quary_resulthive -e select count(*) from gmall.S$target_table_name #取出全表数据目标表的记录条数 target_table_count${target_table_quary_result:3} #执行全表重复值的记录数量sql查询语句 table_duplicate_quary_resulthive -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_quary_result:3}#将所有数据检验结果插入到表中 hive -e insert into datacheck.dwd_table_data_check values($check_date,gmall,$source_table_name,$source_column,$target_table_name,target_column,$consistent_data_count,$source_table_count,$target_table_count,$duplicate_count)3.dws-dwt层数据校验 dws层和dwt层已经进行了轻度聚合不需要计算数据量前后的一致依旧保持和ods相同的计算脚本就可以了 vim dws_data_check.sh#!/bin/bash check_date$1/opt/module/check/total_data_check_public.sh $check_date dws_user_info id,name,birthday,email/opt/module/check/total_data_check_public.sh $check_date dws_order_status_log id,order_id,order_status,operater_time4.ads层数据校验 因为ads层已经进行的高度的聚合这一层的数据校验采用订制的方法来解决来对每一个指标进行单独的测评 1建立ads校验表 create table datacheck.ads_table_data_check( data_date string comment 数据时间分区, database_name string comment 库名, table_name string comment 表名, column_name string comment 指标名, healthy_value string comment 该指标合理值, now_value bigint comment 该指标当前值, is_healthy bigint comment 该指标是否合理 1合理/0不合理 );2编写数据检测脚本 [lychadoop102 check]$ vim ads_data_check_public.sh#!/bin/bash #增量数据所在的日期分区 check_date$1 hive -e insert into datacheck.ads_table_data_check selecttemp.data_date,temp.database_name,temp.table_name,temp.column_name,temp.healthy_value,temp.new_mid_count,temp.is_healthyfrom(select\$do_date\ as data_date,\gmall\) as database_name,\ads_new_mid_count\ as table_name\bigger then 300\ as healthy_value,new_mid_count,if(new_mid_count300,1,0) as is_healthy --校验数大约等于300为正确否则错误from gmall.ads_new_mid_count)as temp
http://www.huolong8.cn/news/464470/

相关文章:

  • 网站换域名图片这么设置北京房山网站建设产品更新培训
  • 温州市网站建设公司展示型网站多少钱
  • 做网站需要编程?wordpress侧栏文本
  • 新氧整形网站开发模版还有哪些网站可以做淘宝活动吗
  • 建设银行社保卡网站在哪wordpress建站数据库
  • 建设银行手机网站首页下载类网站 前置备案
  • 聊城集团网站建设流程网站在线开发
  • 农产品网站建设案例网站排名提升软件
  • node.js做企业网站网站建设的实施方案
  • 接单做网页的网站地方美食网站开发意义
  • 商标查询免费seo在线教程
  • 济南网站建设公司排名金华高端网站设计
  • 企业网站手机端模板下载大连零基础网站建设教学服务
  • 网站footer怎么做试述网站建设的步骤过程
  • wordpress企业网站 教程wordpress 照片展示
  • 设计师专用网站如何营销
  • 管理系统网站开发报价移动商城信息费
  • 网站建设建设如何给自己的网站做外链
  • 国外优秀的html5网站简述网站内容如何优化
  • 黑龙江专业网站建设餐饮设计装饰公司
  • 做海报设计的图片网站有哪些网站推广到海外怎么做
  • 网站建设费可以进广告宣传费吗百度网盘登陆入口
  • 成都水高新区建设局官方网站济南自助建站系统
  • php网站后台程序如何发布网站教程
  • 山东省建设注册执业中心网站直播互动
  • 做国内网站阿里云怎么样seo引流软件
  • 龙岩网站建设推广wordpress添加自定义链接
  • 郑州网站推广价格网站开发软件设计文档模板
  • 企业网站建设对企业客户的意义知乎 拒绝 朋友 做网站
  • 网站内图片变换怎么做凡科可以做视频网站吗