Hive的数据组织

1、Hive的数据组织包括数据库、表、视图、分区、分桶和表数据等。数据库,表,分区等等都对应 HDFS上的一个目录。分桶和表数据对应 HDFS 对应目录下的文件。

2、Hive 中所有的数据都存储在 HDFS 中,没有专门的数据存储格式,因为 Hive 是读模式 (Schema On Read),可支持 TextFile,SequenceFile,RCFile 或者自定义格式等

3、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据

  • 分隔符 描述
    \n 对于文本文件来说,每行是一条记录,所以\n 来分割记录
    ^A (Ctrl+A) 分割字段,也可以用\001 来表示
    ^B (Ctrl+B) 用于分割 Arrary 或者 Struct 中的元素,或者用于 map 中键值之间的分割,也可以用\002 分割。
    ^C 用于 map 中键和值自己分割,也可以用\003 表示。

4、Hive 中包含以下数据模型:

  database:在 HDFS 中表现为${hive.metastore.warehouse.dir}目录下一个文件夹

  table:在 HDFS 中表现所属 database 目录下一个文件夹

  external table:与 table 类似,不过其数据存放位置可以指定任意 HDFS 目录路径

  partition:在 HDFS 中表现为 table 目录下的子目录

  bucket:在 HDFS 中表现为同一个表目录或者分区目录下根据某个字段的值进行 hash 散列之后的多个文件

  view:与传统数据库类似,只读,基于基本表创建

5、Hive 的元数据存储在 RDBMS中,除元数据外的其它所有数据都基于 HDFS 存储。

6、Hive 中的表分为内部表、外部表、分区表和 分桶表

扫描二维码关注公众号,回复: 6652069 查看本文章

猜你喜欢

转载自www.cnblogs.com/xiangyuguan/p/11099557.html
今日推荐