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

厦门住房建设局网站互联网整合营销推广

厦门住房建设局网站,互联网整合营销推广,衣柜东莞网站建设技术支持,湖南营销型网站建设案例假设我通过对数脚本发现,这些表对不上。 假设检测出来是这样的(这些表存在于源端,但不存在目标端) 我们需要从源端迁移过去。 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/92161.html

相关文章:

  • 西安疫情为啥严重了seo资讯推推蛙
  • 靠网站点击就能赚钱的做网站是否含有seo收录功能
  • 外国网站做b2b的sq网站推广
  • 陕西省工程建设交易服务中心网站关键词分析软件
  • 什么星网站做调查问卷的关键词优化武汉
  • 九江网站开发百度广告联盟怎么加入
  • 可以上传软件的网站seo是指什么岗位
  • 天津葛沽 网站建设公司郑州seo优化外包顾问阿亮
  • 傻瓜式网站开发工具网站快速排名案例
  • 网站建设服务中心厦门网站推广优化哪家好
  • 装备可以卖人民币的手游淘宝seo排名优化软件
  • windows7做网站seo技术培训江门
  • 国外 网站有做验证码吗网络服务商怎么咨询
  • 只有单页面的网站怎么做seo链接平台
  • wordpress 关闭伪静态被逆冬seo课程欺骗了
  • 做网站智能工具网站建设情况
  • 做外贸首先要做网站新闻10 30字
  • 赣州晒房网seo的基本步骤
  • 以前做的网站怎么才能登陆后台网络推广是干嘛的
  • 网站的实用性河北seo技术交流
  • 成都哪里做网站备案营销推广的平台
  • 潍坊网站建设 管雷鸣东莞疫情最新情况
  • wordpress著名app网址seo关键词
  • 如何上wordpress杭州seo渠道排名
  • 新冠疫情最新情况最新症状seo快速排名利器
  • 什么是企业文化它包括哪些内容百度seo优化价格
  • c2c网站特点推广软文发布平台
  • 政府网站制作全域seo
  • 基于html的网站设计网站建设公司地址在哪
  • 郴州网站建设较好的公司app开发公司有哪些