如何确定Hive表是外部表还是内部表?

25

我这里有多个问题。 我正在寻找任何hive shell命令或查询来查找以下详情。

  1. 给定一个hive数据库名称,如何获取该数据库中外部表的列表?

  2. 给定一个hive表名,如何确定表是外部表还是内部表?

提前感谢。

1个回答

34

1)如何获取一个hive数据库中所有外部表的列表?

您可以尝试以下命令:

SHOW TABLES [IN database_name] [identifier_with_wildcards];

它将提供给你所有的表。据我所知,没有直接的命令可以知道所有类型为external/internal的表。因此,您需要使用JDBC连接来连接到HiveMetastore并获取所需信息。

2) 给定一个Hive表名,如何确定该表是外部表还是内部表?

您可以尝试任何以下命令:

describe formatted table_name

describe extended table_name

它显示表的所有详细信息。包括:

Table Type:             EXTERNAL_TABLE           
Table Parameters:       EXTERNAL=TRUE

希望这能帮到你...!!!


6
此外,如果它是一个内部表,在执行“describe formatted table_name”命令时,它会显示“Table Type: MANAGED_TABLE”。 - Pratik Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接