帮我写一个shell脚本,要求如下:1、通过beeline连接到hive,beeline输出格式含竖线和加号等分隔符。2、批量统计yinzhou库下表名开头为db_的表的数据量。3、输出一个仅包含表名和数据量的cvs文件
时间: 2024-03-12 10:44:23 浏览: 192
好的,根据您的要求,以下是一个Bash脚本的示例:
```bash
#!/bin/bash
# 连接hive
beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; set hive.cli.print.current.db=true;"
# 统计表数据量
tables=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "show tables in yinzhou like 'db_*';" | grep -v "INFO" | grep -v "WARN")
# 输出cvs文件
echo "Table Name,Data Size" > db_tables.csv
while read -r table; do
data_size=$(beeline -u jdbc:hive2://localhost:10000 -n username -p password -e "select count(*) from yinzhou.$table;")
echo "$table,$data_size" >> db_tables.csv
done <<< "$tables"
```
这个脚本会首先使用beeline连接到hive,并设置输出格式。然后,它会统计yinzhou库下表名开头为db_的表的数据量,并输出到一个cvs文件中。注意要替换其中的username和password为您的用户名和密码。
阅读全文