Hive基础(数据类型,数据结构,数据库操作,数据表操作,内部表,外部表,临时表,装载数据,分区表,分桶表,视图,侧视图)(二)

Hive基础(数据类型,数据结构,数据库操作,数据表操作,内部表,外部表,临时表,装载数据,分区表,分桶表,视图,侧视图)

八.hive数据类型

1.基本数据类型(类似于SQL数据类型)

类型 描述 示例
boolean true/false TRUE
tinyint 1字节的有符号整数 -128~127 1Y
smallint 2个字节的有符号整数,-32768~32767 1S
int 4个字节的带符号整数 1
bigint 8字节带符号整数 1L
float 4字节单精度浮点数 1.0
double 8字节双精度浮点数 1.0
deicimal 任意精度的带符号小数 1.0
String 字符串,变长 “a”,’b’
varchar 变长字符串 “a”,’b’
char 固定长度字符串 “a”,’b’
binary 字节数组 无法表示
timestamp 时间戳,纳秒精度 122327493795
date 日期 ‘2018-04-07’

2.集合数据类型

类型 描述 示例
array 有序的的同类型的集合 array(1,2)
map key-value,key必须为原始类型,value可以任意类型 map(‘a’,1,’b’,2)
struct 字段集合,类型可以不同 struct(‘1’,1,1.0), named_stract(‘col1’,’1’,’col2’,1,’clo3’,1.0)

九.hive数据结构

数据结构 描述 逻辑关系 **物理存储(**HDFS)
Database 数据库 表的集合 文件夹
Table 行数据的集合 文件夹
Partition 分区 用于分割数据 文件夹
Buckets 分桶 用于分布数据 文件
Row 行记录 文件中的行
Columns 列记录 每行中指定的位置
Views 视图 逻辑概念,可跨越多张表 不存储数据
Index 索引 记录统计数据信息 文件夹
hdfs dfs -chmod -R 777 /opt/install

十.数据库增删改查

默认在hive.metastore.warehouse.dir属性目录下
默认default库

1.创建数据库

- beeline -u jdbc:hive2://localhost:10000
create database if not exists myhivebook;

2.使用数据库

use myhivebook;

3. 查看数据库信息

desc database myhivebook;

4.修改数据库信息

-- 修改一下用户,anonymous改成root
alter database myhivebook set owner user root;

5.查看当前数据库

select current_database();

6. 删除数据库

drop database if exists myhivebook;

7.删除带表的数据库(强制删除)

drop database if exists myhivebook cascade;

8.过滤显示查询的数据库

show databases like 'test*';

9.显示当前数据库

hive> set hive.cli.print.current.db=true; 
hive (test)>

十一.数据表(table)

1.建表语法

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 
       [(col_name data_type [COMMENT col_comment], ...)] 
       [COMMENT table_comment] 
       [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 
       [CLUSTERED BY (col_name, col_name, ...) 
       [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] 
       [ROW FORMAT row_format] 
       [STORED AS file_format] 
       [LOCATION hdfs_path]

(1)字段解释说明

1).CREATE TABLE:创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXISTS 选项来忽略这个异常。
2).EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。
3).COMMENT:为表和列添加注释。
4).PARTITIONED BY:创建分区表
5).CLUSTERED BY:创建分桶表
6).SORTED BY:不常用
7).ROW FORMAT :分割方式

ROW FORMAT DELIMITED 
[FIELDS TERMINATED BY char] --如何分隔列(字段)
[COLLECTION ITEMS TERMINATED BY char] --如何分隔集合和映射
[MAP KEYS TERMINATED BY char] --map分割
[LINES TERMINATED BY char] -- 行分割
 | SERDE serde_name 
 [WITH SERDEPROPERTIES 
(property_name=property_value, property_name=property_value, ...)]--序列化类型

用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。在建表的时候,用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的SerDe,Hive 通过 SerDe 确定表的具体的列的数据。
8).STORED AS: 指定存储文件类型
常用的存储文件类型:SEQUENCEFILE(二进制序列文件)、TEXTFILE(文本)、RCFILE(列式存储格式文件)
如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,可以使用 STORED AS SEQUENCEFILE。
9).LOCATION :指定表在 HDFS 上的存储位置。
10).LIKE: 允许用户复制现有的表结构,但是不复制数据。

(2)Storage SerDe

SerDe:Serializer and Deserializer
Hive支持不同类型的Storage SerDe

  • LazySimpleSerDe: TEXTFILE
  • BinarySerializerDeserializer: SEQUENCEFILE
  • ColumnarSerDe: ORC, RCFILE
  • ParquetHiveSerDe: PARQUET
  • AvroSerDe: AVRO
  • OpenCSVSerDe: for CST/TSV -------CST:逗号分隔;TSV:tab分隔
  • JSONSerDe
  • RegExSerDe
  • HBaseSerDe

(3)Hive建表 分隔符

Hive中默认分隔符:
字段:Ctrl+A或^A(\001)
集合:Ctrl+B或^B(\002)
映射:Ctrl+C或^C(\003)
注意:
建表时指定分隔符只能用于非嵌套类型
嵌套类型由嵌套级别决定
数组中嵌套数组-外部数组是^B,内部数组是^C
映射中嵌套数组-外部映射是^C,内部数组是^D

CREATE TABLE
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值