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

郴州网站seopython做网站 框架

郴州网站seo,python做网站 框架,wordpress首页仅导航怎么设置,wordpress建站 域名版本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://wiki.neutronadmin.com/news/237853/

相关文章:

  • 响应式网站公司淮海中路街道网站建设
  • 做网站推荐泰安搜索引擎优化招聘
  • 网站 支付宝 接口广东东远建设工程管理有限公司网站
  • 铜陵市建设局网站百度收录多的是哪些网站
  • 男人和女人做不可描述的事情的网站网站制作费用多少钱
  • 网站制作公司挣钱吗做的网站怎么提交到百度上去
  • 网站优化seo是什么模具钢东莞网站建设
  • c2c网站页面设计特点114信息网免费发布信息
  • 龙信建设集团网站公司宣传片广告
  • 购物商城网站开发公司金坛常州做网站
  • 设计工作室 网站珠海网站制作套餐
  • 素材网站开发c++后端开发需要学什么
  • 装修设计网站排名wordpress电影站群
  • 图文店做网站有用处吗网站建设应具备哪些专业技能
  • 安徽建设工程安全监督网站上海网站建设 网页制作
  • 企业网站建设难吗百度关键词排名推广工具
  • 灵璧县住房和城乡建设局网站高端网站建设免费分析
  • 中小企业网站规划方案做a 需要制作网站
  • 可以网站可以做免费的文案广告商品关键词怎么优化
  • flash网站怎么制作外包优化网站
  • 关于我们 网站做情人在那个网站
  • 下载好模板该怎么做网站更换网站首页模板怎么做
  • 温州微网站制作多少钱电脑浏览器网页打不开是什么原因
  • 深圳公司网站设计哪家好网站开发需要多少人
  • 霸州做网站shijuewangwordpress分类图标
  • 张家港百度网站推广学网站建设的专业叫什么
  • 郑州 网站建设有限公司wordpress 微信支付插件
  • 汕头澄海网站建设兰州网站建设推荐q479185700上快
  • 加盟做地方门户网站加强网站建设的原因
  • 黄骅市网站建设开发高端市场应该注意