Hive - 创建表

2025年3月17日 | 阅读 3 分钟

在 Hive 中,我们可以使用类似于 SQL 的约定来创建表。它支持广泛的灵活性,其中表的数据文件被存储。它提供了两种类型的表:-

  • 内部表
  • 外部表

内部表

内部表也称为托管表,因为它们的数据的生命周期由 Hive 控制。默认情况下,这些表存储在由 hive.metastore.warehouse.dir(即 /user/hive/warehouse)定义的目录下的子目录中。内部表不够灵活,无法与其他工具(如 Pig)共享。如果我们尝试删除内部表,Hive 会删除表模式和数据。

  • 让我们使用以下命令创建一个内部表:-

Hive Create Table

这里,该命令还包括数据由','分隔的信息。

  • 让我们使用以下命令查看已创建表的元数据:-

Hive Create Table
  • 让我们看看当我们尝试再次创建现有表时的结果。
Hive Create Table

在这种情况下,会发生异常。如果我们要忽略这种类型的异常,我们可以在创建表时使用 if not exists 命令。


Hive Create Table
  • 创建表时,我们可以向列中添加注释,也可以定义表属性。

Hive Create Table
  • 让我们使用以下命令查看已创建表的元数据:-

Hive Create Table
  • Hive 允许使用现有表的模式创建新表。

Hive Create Table
Hive Create Table

在这里,我们可以说新表是现有表的副本。

外部表

外部表允许我们创建和访问表以及外部数据。external 关键字用于指定外部表,而 location 关键字用于确定加载数据的位置。

由于表是外部的,因此数据不存在于 Hive 目录中。因此,如果我们尝试删除表,将删除表的元数据,但数据仍然存在。

要创建外部表,请按照以下步骤操作:-

  • 让我们使用以下命令在 HDFS 上创建一个目录:-
  • 现在,将文件存储在已创建的目录中。
  • 让我们使用以下命令创建一个外部表:-

Hive Create Table
  • 现在,我们可以使用以下命令检索数据:-

Hive Create Table
下一主题Hive 加载数据