【发布时间】:2025-12-14 18:15:01
【问题描述】:
我正在尝试创建一个 shell 脚本,该脚本将从多个数据库中提取所有表中的行数。所有数据库都遵循相同的命名约定“the_same_databasename_”,但名称中的最后一层不同。我正在尝试运行以下命令:
use <database_name>;
show tables;
select count(*) from <table_name>;
由于我有 40 个不同的数据库,我需要为每个数据库运行前两个查询 40 次不同的时间,加上选择计数查询甚至更多,具体取决于数据库中有多少表(非常耗时)。我将我的 PuTTy 配置设置设置为将我的 PuTTy 会话保存到本地目录上的 .txt 中,这样我就可以在我的命令行界面中直接显示行计数结果。到目前为止,这就是我所拥有的,但不确定如何包含最终命令以从每个数据库中的表中获取实际行数。
#!/bin/bash
for db in $(hive -e "show databases like 'the_same_databasename_*;")
do
tbl_count=$(hive -S -e "use $db; show tables;" | wc -l)
echo "Database $db contains $tbl_count tables."
done
我在 shell 脚本方面不是很有经验,因此非常感谢任何指导/帮助。提前致谢。
【问题讨论】: