Hive中的数据类型和存储格式总结

1.数据类型

Hive 支持多种数据类型,分为原始数据类型和复杂数据类型两类。以下是 Hive 支持的数据类型:

原始数据类型:

1.整数类型:

tinyint: 1字节有符号整数

smallint: 2字节有符号整数

int: 4字节有符号整数

bigint: 8字节有符号整数

float: 4字节单精度浮点数

double: 8字节双精度浮点数

**decimal:**高精度数字类型,可以指定精度和标度,例如 decimal(10,2)

字节(Byte):计算机中最基本的存储单元之一,1字节占8位(bit) ,数据范围:负数范围: -128 到 -1,正数范围: 0 到 127

2.字符串类型:

string: 可变长度字符串

varchar: 具有最大长度限制的可变长度字符串,例如 varchar(255)

**char:**固定长度字符串,例如 char(10)

3.日期/时间类型:

timestamp: 包含日期和时间的时间戳,精确到纳秒

date: 仅包含日期部分,不包含时间部分

**interval:**时间间隔,用于表示两个日期或时间之间的差值

4.Boolean类型:

boolean: 布尔值,取值为 true 或 false

5.二进制类型:

binary: 任意长度的字节数组

复杂数据类型:
1.数组类型

array<T>: 包含多个相同类型元素的有序列表,例如 array<int>

2.映射类型

map<K, V>: 键值对的无序集合,其中键和值可以是任意数据类型,例如 map<string, int>

3.结构类型

struct<col1: type1, col2: type2, ...>: 包含多个字段的记录,每个字段可以是不同的数据类型,例如 struct<name: string, age: int>

sql 复制代码
CREATE TABLE example_table (
  tinyint_col tinyint,
  smallint_col smallint,
  int_col int,
  bigint_col bigint,
  float_col float,
  double_col double,
  decimal_col decimal(10, 2),
  string_col string,
  varchar_col varchar(255),
  char_col char(10),
  timestamp_col timestamp,
  date_col date,
  boolean_col boolean,
  binary_col binary,
  array_col array<int>,
  map_col map<string, int>,
  struct_col struct<name: string, age: int>,
  union_col uniontype<int, string>
);

2.Hive的文件存储格式

hive的存储格式分为两大类:

一类纯文本文件:textfile,不压缩,也是hive的默认存储格式

一类是二进制文件存储:

sequencefile:会压缩,不能使用load方式加载数据

orcfile:会压缩,不能使用load方式加载数据

parquet:会压缩,不能使用load方式加载数据

rcfile:会压缩,不能使用load方式加载数据,是orcfile的低配

textfile和sequencefile的存储格式都是基于行存储的;orc和parquet是基于列式存储的,rcfile是行列混合存储。

在创建表格的时候可以使用stored as parquet指定表格的存储格式,例:

sql 复制代码
create table if not exists stocks_parquet (
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
stored as parquet;

修改hive的默认存储格式:

sql 复制代码
<property>
    <name>hive.default.fileformat</name>
    <value>TextFile</value>
    <description>
    Expects one of [textfile, sequencefile, rcfile, orc].
    Default file format for CREATE TABLE statement. Users can explicitly override it by CREATE TABLE ... STORED AS [FORMAT]
    </description>
</property>
也可以使用set方式修改:
set hive.default.fileformat=TextFile
相关推荐
lzhlizihang43 分钟前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
Hsu_kk44 分钟前
Hive 查询各类型专利 Top 10 申请人及对应的专利申请数
数据仓库·hive·hadoop
静听山水1 小时前
Hive 的数据存储单元结构
hive
大数据编程之光1 小时前
Hive 查询各类型专利 top10 申请人及专利申请数
大数据·数据仓库·hive·hadoop
杰克逊的日记1 小时前
Hive详解
数据仓库·hive·hadoop
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
Acrelhuang2 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
消失在人海中3 小时前
数据仓库之 Atlas 血缘分析:揭示数据流奥秘
数据仓库
Hsu_kk3 小时前
Hive 查询用户连续三天登录的所有记录
数据仓库·hive·hadoop
kakwooi7 小时前
Hadoop---MapReduce(3)
大数据·hadoop·mapreduce