帮我写一个shell脚本 ,批量统计hive库名为fdp库下表名模糊匹配db_的表数据量,结果输出位csv文件
时间: 2024-03-12 20:45:46 浏览: 107
好的,以下是一个简单的shell脚本,可以批量统计hive库名为fdp库下表名模糊匹配db_的表数据量,并将结果输出为csv文件:
```shell
#!/bin/bash
# 设置hive库名和表名关键字
DATABASE=fdp
TABLE_PATTERN=db_
# 获取表名列表
TABLES=`hive -S -e "use $DATABASE; show tables like '$TABLE_PATTERN*';"`
# 输出表名和数据量到csv文件
echo "Table Name,Data Size" > table_sizes.csv
for TABLE in $TABLES
do
ROW_COUNT=`hive -S -e "use $DATABASE; select count(*) from $TABLE;"`
echo "$TABLE,$ROW_COUNT" >> table_sizes.csv
done
```
你可以将以上代码复制到一个名为`table_sizes.sh`的文件中,然后在终端运行`sh table_sizes.sh`即可执行。执行完成后,你将会在当前目录下找到一个名为`table_sizes.csv`的文件,其中包含了每个匹配到的表名和对应的数据量。
相关问题
帮我写一个shell脚本 ,批量统计hive库名为fdp库下表名模糊匹配db_的表数据量
好的,以下是一个简单的 Shell 脚本,可以实现批量统计 Hive 库名为 fdp 库下表名模糊匹配 db_ 的表数据量:
```bash
#!/bin/bash
# 连接 Hive 的参数
hive_host=<your_hive_host>
hive_port=<your_hive_port>
hive_user=<your_hive_user>
hive_password=<your_hive_password>
# 待统计的库名和表名
db_name=fdp
table_pattern="db_"
# 查询表名
query="use $db_name; show tables like '$table_pattern';"
tables=$(beeline -u "jdbc:hive2://$hive_host:$hive_port/" -n $hive_user -p $hive_password -e "$query" | tail -n +3)
# 统计每个表的数据量
for table in $tables; do
count_query="use $db_name; select count(*) from $table;"
count=$(beeline -u "jdbc:hive2://$hive_host:$hive_port/" -n $hive_user -p $hive_password -e "$count_query" | tail -n +3)
echo "表 $table 的数据量为: $count"
done
```
你可以根据自己的实际情况修改脚本中的参数,然后将其保存为一个 .sh 文件并执行即可。
帮我写一个shell脚本 ,beeline连接批量统计hive库名为fdp库下表名模糊匹配db_的表数据量,结果输出位csv文件
好的,以下是一个可以使用beeline连接批量统计hive库名为fdp库下表名模糊匹配db_的表数据量,并将结果输出为csv文件的shell脚本:
```shell
#!/bin/bash
# 设置beeline连接参数
HIVE_HOST=<hive_host>
HIVE_PORT=<hive_port>
HIVE_USER=<hive_user>
HIVE_PASSWORD=<hive_password>
# 设置hive库名和表名关键字
DATABASE=fdp
TABLE_PATTERN=db_
# 连接hive并获取表名列表
TABLES=`beeline -u "jdbc:hive2://$HIVE_HOST:$HIVE_PORT/default;auth=noSasl" -n $HIVE_USER -p $HIVE_PASSWORD -e "use $DATABASE; show tables like '$TABLE_PATTERN*';" | tail -n +4`
# 输出表名和数据量到csv文件
echo "Table Name,Data Size" > table_sizes.csv
for TABLE in $TABLES
do
ROW_COUNT=`beeline -u "jdbc:hive2://$HIVE_HOST:$HIVE_PORT/default;auth=noSasl" -n $HIVE_USER -p $HIVE_PASSWORD -e "use $DATABASE; select count(*) from $TABLE;" | tail -n +4`
echo "$TABLE,$ROW_COUNT" >> table_sizes.csv
done
```
你需要将`<hive_host>`、`<hive_port>`、`<hive_user>`和`<hive_password>`替换成你自己的hive连接参数。然后将以上代码保存到一个名为`table_sizes.sh`的文件中,然后在终端运行`sh table_sizes.sh`即可执行。执行完成后,你将会在当前目录下找到一个名为`table_sizes.csv`的文件,其中包含了每个匹配到的表名和对应的数据量。
阅读全文