3. 表、元数据与存储

原始资料未提供第 7 题,以下保留原题号。

8. 下面关于 Hive 内部表和外部表描述正确的是( )。

  1. A. Hive 内部表的元数据和数据都由 Hive 自己管理。
  2. B. Hive 不会管理外部表的元数据。
  3. C. 当 Hive 内部表的元数据发生变化时,内部表的修改不会同步给元数据。
  4. D. 对外部表的表结构和分区进行修改,不需要修复。

答案:A. Hive 管理内部表的元数据与数据。Hive 同样管理外部表元数据,所以 B 错;修改表结构会同步更新元数据,所以 C 错;结构或分区发生改变仍须维护元数据,所以 D 错。

9. 以下关于 HiveSQL 基本操作描述正确的是( )。

  1. A. 创建外部表必须要指定 LOCATION 信息。
  2. B. 创建外部表使用 EXTERNAL 关键字,创建普通表需要指定 INTERNAL 关键字。
  3. C. 创建表时可以指定列分隔符。
  4. D. 加载数据到 Hive 时,源数据必须是 HDFS 的一个路径。

答案:C. 外部表不一定必须显式指定 LOCATION;普通表没有 INTERNAL 关键字;使用 LOCAL 可以从本地文件系统加载数据。

10. 关于 Hive 中的桶说法不正确的是( )。

  1. A. 每个桶是一个目录。
  2. B. 建表时指定桶个数,桶内可排序。
  3. C. 数据按照某个字段的值 Hash 后放入某个桶中。
  4. D. 对于数据抽样、特定 Join 的优化很有意义。

答案:A. 桶通常对应数据文件,而不是目录。指定桶数、按字段 Hash 分桶,以及用于抽样和特定 Join 优化的描述均成立。