Hive基本介绍2
数据格式:
Hive中没有定义专门的数据格式
数据格式部分自定义:
- 列分隔符(通常为空格、”\t”、”\x001″)
- 行分隔符(”\n”)
- 读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)。
- Hive在加载数据的过程就是拷贝数据的过程,不需要特定的转化。不会对数据本身进行任何修改,甚至不会对数据进行扫描。
- Hive 中不支持对数据的改写和添加(对文本内数据的添加)
- Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。所以Hive不适合在线数据查询(要求相应速度快)
总结:hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。
hive支持的数据格式
- 可支持Text,
- SequenceFile,
- ParquetFile,
- ORC格式
- RCFILE等
Hive元数据
- DB、数据库
- Table,内部表
- External Table,外部表
- Partition,分区
- Bucket,分桶
Hive的访问方式
- 启动hiveserver2 服务 hive --service hiveserver2 进行连接
- 进入beelin的shell窗口 连接hiveserver2服务
- !connect jdbc:hive2://node01:10000 输入root 和密码
Hive传选项
- hive -e ‘操作命令’
- hive -e ‘show databases;’
- hive -f 文件名(文件内是操作命令)
- hive -f test.sql
数据库的基本操作
1、数据库的增删改查
- 增 : create database [ if not exists ] myhive ;
- 删 : drop database myhive ; (数据库内没有表可以删除,有表不能删除) 改 :数据库不允许修改
- 查 :show databases;
- 查看详细信息:
desc database myhive2;
desc database extended myhive2; - 数据库的切换:
use myhive(数据库名)
hive的数据库、表、分区在HDFS的表现形式是文件夹
数据库的默认路径:/user/hive/warehouse
自定义hive数据库的路径:create database myhive2 location '/myhive2
数据表的基本操作(增删改查)
创建基本数据表(内部表):
create table tableName(字段名称 字段类型,字段名称 字段类型)
ROW FORMAT DELIMITED IELDS TERMINATED BY char (char分隔符)
指定数据中字段与字段的分隔符 ‘\t’ 或 ‘,’ 或 ‘|’ 或其他
创建外部数据表:
create EXTERNAL table tableName(字段名称 字段类型,字段名称 字段类型)
建外部表需要指定数据的存储路径。通过LOCATION进行指定。
内部表与外部表的区别:
- 在删除内部表时:内部表删除将表的元数据和数据同时删除。
- 在删除外部表时:外部表的元数据被删除,数据本身不删除
删除表
drop table tablename;
修改表
alter tablename ***
查询表
show tables;
desc tablename;