帮我写一个shell脚本 ,beeline连接进入hive时屏蔽表名四周的竖线和加号,批量统计hive库名为yinzhou库下表名模糊匹配db_的表数据量,输出表名,数量,保存为txt文件
时间: 2024-03-12 15:42:56 浏览: 78
批量导出hive表结构
5星 · 资源好评率100%
好的,以下是一个修改后的 shell 脚本,可以满足你的需求。需要注意的是,该脚本需要在安装有 Hive 和 Beeline 的环境中运行。
```shell
#!/bin/bash
# 设置连接参数,屏蔽表名四周的竖线和加号
CONN_URL="jdbc:hive2://<hostname>:<port>/<database>?hive.resultset.use.unique.column.names=false&hive.cli.print.header=false"
# 连接 Hive
beeline -u $CONN_URL -n <username> -p <password> -e "use yinzhou;"
# 查询符合条件的表数据量
QUERY="show tables like 'db_*';"
RESULT=$(beeline -u $CONN_URL -n <username> -p <password> -e "$QUERY")
# 输出结果到文件
echo "表名,数量" > result.txt
echo "$RESULT" | while read -r TABLENAME; do
COUNT=$(beeline -u $CONN_URL -n <username> -p <password> -e "select count(*) from $TABLENAME;")
echo "$TABLENAME,$COUNT" >> result.txt
done
```
在运行脚本前,需要将 `<hostname>`、`<port>`、`<database>`、`<username>`、`<password>` 替换为实际的连接信息。该脚本会查询 yinzhou 库下表名以 `db_` 开头的表,并统计这些表的数据量,最终将结果输出到 result.txt 文件中。与上一个脚本不同,该脚本还屏蔽了表名四周的加号。
阅读全文