You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Shell脚本自动查找符合命名规范的空Hive数据库

Hive空数据库自动识别Shell脚本实现方案

前置要求

  • 运行环境已配置可用Hive客户端,可正常执行hive -e命令
  • 脚本执行用户拥有所有目标Hive数据库的元数据查询权限

完整可运行脚本

#!/bin/bash

# -------------------------- 配置项 请按需修改 --------------------------
# 固定的environment字段值
ENVIRONMENT="your_env_value"
# 固定的area字段值
AREA="your_area_value"
# 输出结果文件路径,默认当前目录带日期后缀
OUTPUT_FILE="./empty_hive_dbs_$(date +%Y%m%d).txt"
# ----------------------------------------------------------------------

# 初始化输出文件
> ${OUTPUT_FILE}

echo ">>> 开始扫描符合 ${ENVIRONMENT}_${AREA}_* 命名规则的Hive数据库"
# 获取所有匹配命名规则的数据库,过滤Hive执行日志干扰
db_list=$(hive -e "show databases;" 2>/dev/null | grep -v -E "WARN|INFO|Logging initialized|Time taken|OK" | grep "^${ENVIRONMENT}_${AREA}_")

if [ -z "${db_list}" ]; then
    echo "未找到符合命名规则的数据库,脚本退出"
    exit 0
fi

total_db_num=$(echo "${db_list}" | wc -l)
echo "共匹配到 ${total_db_num} 个目标数据库,开始逐一校验..."

current_idx=0
empty_db_num=0
for db_name in ${db_list}
do
    current_idx=$((current_idx+1))
    echo "正在校验 ${current_idx}/${total_db_num}:${db_name}"
    # 统计数据库内表数量,过滤日志后计数
    table_num=$(hive -e "use ${db_name}; show tables;" 2>/dev/null | grep -v -E "WARN|INFO|Logging initialized|Time taken|OK" | wc -l)
    if [ ${table_num} -eq 0 ]; then
        echo "${db_name} 为空数据库,已记录"
        # 如需直接生成可执行的DROP语句,注释下行,打开下下行即可
        echo "${db_name}" >> ${OUTPUT_FILE}
        # echo "DROP DATABASE \`${db_name}\`;" >> ${OUTPUT_FILE}
        empty_db_num=$((empty_db_num+1))
    fi
done

echo ">>> 扫描完成,共找到 ${empty_db_num} 个空数据库,结果已保存至 ${OUTPUT_FILE}"

使用步骤

  1. 将上述脚本内容保存为find_empty_hive_dbs.sh
  2. 修改脚本开头ENVIRONMENT和AREA两个配置项为你实际的固定字段值
  3. 给脚本赋予执行权限:chmod +x find_empty_hive_dbs.sh
  4. 执行脚本:./find_empty_hive_dbs.sh
  5. 执行结束后,当前目录生成的txt文件即为空数据库列表

注意事项

  • 若Hive集群开启Kerberos认证,需在脚本开头配置段后添加kinit认证命令,示例:kinit -kt /path/to/your/user.keytab your_username@YOUR_REALM.COM
  • 若目标数据库数量较多,建议后台执行避免SSH断开:nohup ./find_empty_hive_dbs.sh &
  • 首次使用建议先修改配置项匹配1-2个已知空库、非空库测试校验逻辑准确性,再全量执行

内容的提问来源于stack exchange,提问作者Gdata0data0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:36:01