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

厦门住房建设局网站今日发生的重大新闻

厦门住房建设局网站,今日发生的重大新闻,社旗微网站开发,网站建设费用明细 xls假设我通过对数脚本发现,这些表对不上。 假设检测出来是这样的(这些表存在于源端,但不存在目标端) 我们需要从源端迁移过去。 diff.txt ads_xx1 dt20250219 ads_xx2 dt20250217 ads_xx2 dt20250218 ads_xx2 dt20250…

假设我通过对数脚本发现,这些表对不上。

假设检测出来是这样的(这些表存在于源端,但不存在目标端)

我们需要从源端迁移过去。

diff.txt

ads_xx1    dt=20250219
ads_xx2    dt=20250217
ads_xx2    dt=20250218
ads_xx2    dt=20250219
ads_xx3    dt=20250217
ads_xx4    dt=20250217
bak_xx1    dt=20250109
bak_xx1    dt=20250110
bak_xx1    dt=20250111
bak_xx1    dt=20250112
bak_xx1    dt=20250113
dim_e    dt=20250131
dim_j    dt=20250216
dim_j    dt=20250217
dim_m_df    dt=20250216
dim_m_df    dt=20250217
dim_m_df    dt=20250218
tmp_np
tmp_an    dt=20250217
tmp_an    dt=20250218
tmp_dhc_allcon_20250131
tmp_hj    dt=20250216
tmp_hj    dt=20250217
tmp_hj_2    dt=20250216
tmp_hj_2    dt=20250217

~                                                    

脚本

#!/bin/bash
#场景:数据在同一库下,并且hive是内部表(前缀的hdfs地址是相同的)echo "" > rs.txt#1.读取每一行,获取到表名和分区名#定义map
declare -A table_map
while IFS=' ' read -r table_name fenqu_name
do#table_name为空的情况if [[ -z "${table_name// }" ]]; thenecho "变量为空或只有空格,跳过操作"continueelse#1.如果map中存在此表,并且分区不为空,则加入数组中if [[ -v table_map["$table_name"] ]]; thenecho "$table_name exists in the map!"value_arr="${table_map[$table_name]}"IFS=' ' read -r -a new_arr <<< "${table_map["$table_name"]}"#判断分区为空吗if [ ${#new_arr[@]} -eq 0 ]; thenecho "Array is empty!,不操作"elseecho "Array is not empty!加入数组,放到map"new_arr+=("$fenqu_name")table_map["$table_name"]="$(IFS=' '; echo "${new_arr[*]}")"fielse#2.如果map中不存在此表,则创建数组,分区不可能存在又缺分区又缺表的存在(跑的时候筛出来,分批跑),则放进去。echo "$table_name does not exist in the map!"value_arr=()value_arr+=("$fenqu_name")table_map["$table_name"]="$(IFS=' '; echo "${value_arr[*]}")"fifidone < "$1"
echo "-----------"
#测试一下数组中的元素
#for table_name in "${!table_map[@]}"; do
#    echo "$table_name: ${table_map[$table_name]}"
#done#2.遍历map3.遍历map
#删除每一个map里对应的分区
for table_name in "${!table_map[@]}"; dofenqu_arr_str=${table_map[$table_name]}echo "$table_name: $fenqu_arr_str"#如果没有分区,则删除表if [[ -z "$fenqu_arr_str" || "$fenqu_arr_str" =~ ^[[:space:]]*$ ]]; thenecho "hdfs dfs -rm -r hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name"eval "hdfs dfs -rm -r hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name"# 在这里执行相应的操作elseIFS=' ' read -r -a value_array <<< "$fenqu_arr_str"# 遍历数组for fenqu_name in "${value_array[@]}"; do# 输出每个 dtecho "hdfs dfs -rm -r hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name/$fenqu_name"eval "hdfs dfs -rm -r hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name/$fenqu_name"donefi  done#3.distcp任务
for table_name in "${!table_map[@]}"; dofenqu_arr_str=${table_map[$table_name]}echo "$table_name: $fenqu_arr_str"distcp_str="hadoop distcp -skipcrccheck -i -strategy dynamic -bandwidth 30 -m 20"source_path=hdfs://xx.xx.xx.7:8020/apps/hive/warehouse/bigdata.db/$table_nametarget_path=hdfs://xx.xx.xx.104:4007/apps/hive/warehouse/bigdata.db/$table_name#如果没有分区,则distcp表if [[ -z "$fenqu_arr_str" || "$fenqu_arr_str" =~ ^[[:space:]]*$ ]]; thendistcp_str="$distcp_str $source_path $target_path"echo "$distcp_str"eval "$distcp_str"elseIFS=' ' read -r -a value_array <<< "$fenqu_arr_str"# 遍历数组for fenqu_name in "${value_array[@]}"; do# 拼接distcp_str="$distcp_str $source_path/$fenqu_name"done#执行distcp_str="$distcp_str $target_path"echo "$distcp_str"eval "$distcp_str"fiecho "$table_name 完成" >> rs.txt
doneBEELINE_CMD="beeline -u 'jdbc:hive2://xx.xx.xx.104:7001/cfc;principal=hadoop/xx.xx.xx.104@TBDS-09T7KXLE'"
#4.修复分区
for table_name in "${!table_map[@]}"; do# 执行MSCK REPAIR TABLE命令echo "Repairing partitions for table: $table_name"$BEELINE_CMD -e "MSCK REPAIR TABLE $table_name;"if [ $? -eq 0 ]; thenecho "Successfully repaired partitions for table: $table_name"elseecho "Failed to repair partitions for table: $table_name"fi
done

使用

nohup sh bushu.sh diff.txt &

http://www.dtcms.com/wzjs/302775.html

相关文章:

  • 国外企业网站设计欣赏百度seo培训课程
  • 淘宝客做的比较好的网站南昌seo数据监控
  • 企业营销型网站费用网站推广郑州
  • 个人 网站建设方案书 备案湖南正规seo公司
  • 河南民基建设工程有限公司网站微信广告
  • 不再单独建设政府网站惠州seo建站
  • 网站建设的实验心得体会重庆seo招聘
  • wordpress 众筹网站南京网站设计
  • 网站建设色调的网络营销策略的定义
  • 比较好看的企业网站百度seo
  • 网赌赢了钱被网站黑了需要怎么做软文范文
  • 专业云南做网站qq推广工具
  • 响水做网站的seo搜索是什么
  • 网站建设的最新技术新平台推广
  • 网站建设与管理课后作业答案百度推广怎么做最好
  • 做网站模板的网页名称是m开头搜索引擎营销特点
  • 公司网站格式建设网站前的市场分析
  • 长治新闻今日头条百度推广seo
  • 建行个人网上银行广告优化师是做什么的
  • 如何更换网站图片富阳seo关键词优化
  • 做网站开发的商标注册武汉seo排名
  • 怎么建设交友网站互联网营销
  • 怎么把网站地图上传怎样推广网站
  • 医院网站建设方案汕头企业网络推广
  • 有没有返利网站做京东的企业网站营销的优缺点及案例
  • dz论坛可以做招聘网站今日头条新闻10条简短
  • 接单网个人接单沈阳关键词快照优化
  • 慈溪做无痛同济&网站百度域名注册官网
  • 工作人员回应网红独臂猴咬伤师太seo是什么意思中文翻译
  • 做自己网站做站长个人网页免费域名注册入口