Hive 检查蜂巢表是否存在的最佳方法是什么?
我心目中的选择:Hive 检查蜂巢表是否存在的最佳方法是什么?,hive,Hive,我心目中的选择: 火灾描述表 消防从表中选择1 如果表不存在,这些查询将失败 哪种方法更好?或者还有其他好方法吗?在许多情况下,我们可能不确定表存在于哪个数据库中,因此通常我们会在所有数据库中循环。为了节省时间,您可以使用下面的脚本。 用直线字符串替换$BEELINE_CONN_字符串,您可以将其保存为脚本并将表名称作为参数传递。要使搜索特定于某些数据库,您还可以在下面的代码中将show databases更改为show database like,或者将其作为参数传递给脚本 table_nam
描述表代码>
哪种方法更好?或者还有其他好方法吗?在许多情况下,我们可能不确定表存在于哪个数据库中,因此通常我们会在所有数据库中循环。为了节省时间,您可以使用下面的脚本。 用直线字符串替换$BEELINE_CONN_字符串,您可以将其保存为脚本并将表名称作为参数传递。要使搜索特定于某些数据库,您还可以在下面的代码中将
show databases
更改为show database like
,或者将其作为参数传递给脚本
table_name=${1}
for database in `$BEELINE_CONN_STRING --showHeader=false --outputformat=tsv2 --silent=true -e "show databases;" 2> /dev/null `
do
result=`$BEELINE_CONN_STRING --silent=true --showHeader=false --outputformat=tsv2 -e "use $database;show tables like '*$table_name*';" 2> /dev/null `
if [[ "test_append"$result"" != "test_append" ]];
then
echo "Table $result exists in $database"
else
echo "Table not found in $database"
fi
done
示例输出如下所示
Table not found in yourdb
Table www_table exists in mydb
在许多情况下,我们可能无法确定表存在于哪个数据库中,因此通常我们会在所有数据库中循环。为了节省时间,您可以使用下面的脚本。 用直线字符串替换$BEELINE_CONN_字符串,您可以将其保存为脚本并将表名称作为参数传递。要使搜索特定于某些数据库,您还可以在下面的代码中将
show databases
更改为show database like
,或者将其作为参数传递给脚本
table_name=${1}
for database in `$BEELINE_CONN_STRING --showHeader=false --outputformat=tsv2 --silent=true -e "show databases;" 2> /dev/null `
do
result=`$BEELINE_CONN_STRING --silent=true --showHeader=false --outputformat=tsv2 -e "use $database;show tables like '*$table_name*';" 2> /dev/null `
if [[ "test_append"$result"" != "test_append" ]];
then
echo "Table $result exists in $database"
else
echo "Table not found in $database"
fi
done
示例输出如下所示
Table not found in yourdb
Table www_table exists in mydb
显示“table\u name”之类的表
请参阅您可以始终检查配置单元元存储TBLS表是否存在表。显示“table\u name”之类的表
请参阅您可以始终检查配置单元元存储TBLS表是否存在表。