Hive

  1. hive 内部表和外部表的区别
  2. hive 有索引吗
  3. 运维如何对hive进行调度
  4. ORC、Parquet等列式存储的优点
  5. 数据建模用的哪些模型?
  6. 为什么要对数据仓库分层?
  7. 使用过Hive解析JSON串吗
  8. sort by 和 order by 的区别
  9. 怎么排查是哪里出现了数据倾斜
  10. 数据倾斜怎么解决
  11. hive 小文件过多怎么解决
  12. hive优化有哪些?

1. hive 内部表和外部表的区别

未被external修饰的是内部表(managed table),被external修饰的为外部表(external table)

区别

  • 内部表数据由Hive自身管理,外部表数据由HDFS管理;
  • 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里);
  • 删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除;

2. hive 有索引吗

Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同&