Hive基础应用

本文介绍了Hive的基础概念,包括数据类型、日期类型、字符串、布尔类型和字节数组。深入探讨了复杂数据类型如STRUCT、MAP和ARRAY。接着讲解了Hive的数据文件格式和压缩格式,如文本文件、SequenceFile、RCFile和ORCFile,以及LZO、BZIP2、GZIP和SNAPPY等压缩格式。文章还涵盖了Hive的DDL操作,如建表、删除表、修改表结构,以及DML操作,如数据加载和数据查询。最后,通过实例展示了如何使用HiveSQL进行数据操作,包括创建表、加载数据、插入数据、查询数据和使用视图。
摘要由CSDN通过智能技术生成

一. Hive基础概念

  1. hive数据模型
    在这里插入图片描述
  2. 数据类型
    2.1 数值型
    类型 说明
    TINYINT 1-byte signed integer
    from -128 to 127
    SMALLINT 2-byte signed integer
    from -32,768 to 32,767
    INT
    INTEGER 4-byte signed integer
    from -2,147,483,648 to 2,147,483,647
    BIGINT 8-byte signed integer
    from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
    FLOAT 4-byte single precision floating point number
    DOUBLE 8-byte double precision floating point number
    PRECISION
    DECIMAL Decimal datatype was introduced in Hive0.11.0
    (HIVE-2693) and revised in Hive 0.13.0 (HIVE-3976)

2.2 日期类型
类型 说明
TIMESTAMP UNIX时间戳和可选的纳秒精度
DATE 描述特定的年/月/日,格式为YYYY-MM-DD
2.3 字符串
类型 说明
string 最常用的字符串格式,等同于java String
varchar 变长字符串,hive用的较多,最长为65535
char 定长字符串,比varchar更多一些,一般不要超过255个字符
2.4 布尔类型
类型 说明
boolean 等同于java的boolean用的很少
2.5 字节数组
类型 说明
binary 字节数组类型,可以存储任意类型的数据用的很少
2.6 复杂(集合)数据类型
数据类型 描述 字面语法示例
STRUCT 和C语言中的struct或者”对象”类似,都可以通过”点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, ladt STRING},那么第1个元素可以通过字段名.first来引用 struct(
‘John’,
‘Doe’)
MAP MAP是一组键-值对元组集合,使用数组表示法(例如[‘key’])可以访问元素。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取值’Doe’ map(‘first’, ‘John’,
‘last’,
‘Doe’)
ARRAY 数组是一组具有相同类型的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用 ARRAY(
‘John’,
‘Doe’)

  1. hive数据文件格式和压缩格式
    文件格式
    文件格式按面向的存储形式不同,分为面向行和面向列两大类文件格式。
    面向行/列类型 类型名称 是否可切割计算 优点 缺点 适用场景
    面向行 文本文件格式(.txt) 可以 查看、编辑简单 无压缩占空间大、传输压力大、数据解析开销大 学习练习使用
    面向行 SequenceFile序列文件格式(.seq) 可以 自支持、二进制kv存储、支持行和块压缩 本地查看不方便:小文件合并成kv结构后不易查看内部数据 生产环境使用、map输出的默认文件格式
    面向列 rcfile文件格式(.rc) 可以 数据加载快、查询快、空间利用率高、高负载能力 每一项都不是最高 学习、生产均可
    面向列 orcfile文件格式(.orc) 可以 兼具rcfile优点、进一步提高了读取、存储效率、新数据类型的支持 每一项都不是最高 学习、生产均可
    压缩格式
    压缩格式按其可切分独立性,分成可切分和不可切分两种。
    可切分性 类型名称 是否原生支持 优点 缺点 适用场景
    可切分 lzo(.lzo) 否 压缩/解压速度快
    合理的压缩率 压缩率比gzip低
    不原生、需要native安装 单个文件越大,lzo优点越越明显。压缩完成后>=200M为宜
    可切分 bzip2(.bz2) 是 高压缩率超过gzip
    原生支持、不需要native安装、用linux bzip可解压操作 压缩/解压速率慢 处理速度要求不高、要求高压缩率(冷数据处理经常使用)
    不可切分 gzip(.gz) 是 压缩/解压速度快
    原生/native都支持使用方便 不可切分、对CPU要求较高 压缩完成后<=130M的文件适宜
    不可切分 snappy(.snappy) 否 高速压缩/解压速度
    合理的压缩率 压缩率比gzip低
    不原生、需要native安装 适合作为map->reduce或是job数据流的中间数据传输格式
  2. 数据操作分类
    操作分类 具体操作 sql备注
    DDL •建表
    •删除表
    •修改表结构
    •创建/删除视图
    •创建数据库
    •显示命令 Create/Drop/Alter Database
    Create/Drop/Truncate Table
    Alter Table/Partition/Column
    Create/Drop/Alter View
    Create/Drop Index
    Create/Drop Function
    Show Describe
    DML •数据插入(insert,load) load data…into
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值