您的位置 首页 java

Hive数据类型和文件格式

Hive 支持 关系数据库 中的大多数基本的数据类型,同时也支持在关系数据库中很少出现的三种 **数据集合** 类型。

和大多数数据库相比,Hive具有一个独特的功能,就是对数据在文件中的编码方式具有相当大的灵活性,大多数据库对数据具有完全控制,也包括

对数据什么周期的控制,Hive将这些方面的控制权交给用户,以便更加容易的使用各种各样的工具来管理和处理数据。

基本数据类型

所有这些数据类型都是对Java中的接口实现,因此这些类型具体行为细节和Java中对应的类型完全一致.

HDFS 文本文件数据编码

综合示例

CREATE TABLE IF NOT EXISTS mydb.employees
(
 name STRING COMMENT 'Employee name',
 salary FLOAT COMMENT 'Employee salary',
 subordinates ARRAY<STRING> COMMENT ' Names of subordinates',
 deducations MAP<STRING,FLOAT> COMMENT ' Keys are deducations names , Values are percentags',
 address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT> COMMENT 'Home Address'
)
COMMENT 'the table of empoyee'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '01'
COLLECTION ITEMS TERMINATED BY '02'
MAP KEYS TERMINATED BY '03'
LINES TERMINATED BY 'n'
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/mydb.db/employees';
ROW FORMAT DELIMITED : 这组关键字必须些在其他子句之前(除STOREED AS .... 子句)
FIELDS TERMINATED BY : 指定 列 分隔符,使用默认分隔符 ^A
COLLECTION ITEMS TERMINATED BY : 指定 集合 元素间的分割符,使用默认分隔符 ^B
MAP KEYS TERMINATED BY : 指定MAP中 键和值之间的分离,使用默认分隔符 ^C
LINES TERMINATED BY : 指定 行 分隔符,使用默认的换行符 n
STORED AS TEXTFILE : 指定Hive表的存储格式
LOCATION : 指定数据文件位置
 

Hive表存储格式

有4种主要的存储格式,使用依据为数据类型和分析需要。但是在绝大数情况下,使用ORC或Parquet,它们为大多数数据类型提供了最佳的压缩和速度优势。

表类型

在Hive中包括2种类型的表,内部表和外部表。

内部表 创建方式,常规的 CREATE TABLE 语句。对于内部表,由Hive完全控制,如删除了内部表,在Hive的表定义和对应的表数据都会被删除。

外部表 创建方法, CREATE EXTERNAL TABLE IF NOT EXISTS Names_text ,关键字为 EXTRENAL 。对于外部表不由Hive控制,对于外部表只是使用表 元数据 信息而进入到原始文本数据中。 如果删除了外部表,只有表的元数据信息被删除,实际的数据还是会被保留。数据是驻留在Hive之外的,或者是需要保留原始数据的表。

文章来源:智云一二三科技

文章标题:Hive数据类型和文件格式

文章地址:https://www.zhihuclub.com/188257.shtml

关于作者: 智云科技

热门文章

网站地图