hive入门,
=====hive入门=====
1. 概念
- Apache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。可以将结构投影到已存储的数据上。提供了一个命令行工具和JDBC驱动程序来将用户连接到Hive
- 主要面向查询操作,一般不进行删除和更新操作,因为hive处理的数据一般都是历史数据
- hive允许开发者自定义mapreduce处理复杂的分析工作
- hive是SQL解析引擎,它将SQL转换成M/R 程序,然后在hadoop执行
- hive的表和数据其实就是hdfs的目录和文件
- hdfs日志文件(数据源)-- mapreduce将结构投影到已存储数据上(解析引擎) -- 命令行工具和JDBC使用SQL(数据统计)
- 数据仓库:数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,它用于支持企业或者组织的决策分析处理
-
hive和hbase区别
- Hive适合用来对一段时间内的数据进行分析查询or统计查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果
- Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。HBase可以用来进行实时查询,
- 数据也可以从Hive写到Hbase,设置再从Hbase写回Hive。
2. hive的体系结构
3. hive的安装
4. hive之CLI命令行方式
5. hive数据类型
hive数据类型有一下5种
* 数字类型
* 时间类型
* 字符串类型
* 其他类型
* 复杂类型
创建一张表,包含基本数据类型
create table t_user
(u_id int,
u_name string,
married boolean,
salary double,
birthday date
); -- 这里不能创建user表,换个表名t_user
创建一张表,包含数组类型
create table student (sid int,sname string,project array<string>);
-- {1,"tom",["语文","数学","英语"]}
创建一张表,包含map数据类型
create table stu2(id int,name string,project map<string,float>);
-- {1,"tom",<'大学语文',65>}
创建一张表,用array<map<string,float>>
create table stu3(id int,name string,grades array<map<string,float>>);
-- {1,'tom',[<'语文',85>,<'数学',85>]
创建一张表,包含struct数据类型
create table stu4(id int,info struct <name:string,age:int,sec:string>);
--{1,{'tom',10,'男'}}
6. hive的数据存储
- 基于hdfs
- 没有专门的数据存储格式
- 存储结构主要包括:数据库,文件,表,视图
- 可以直接加载文本文件(.txt文件等)
- 创建表时,指定hive数据的列分隔符和行分隔符
- 表分类:内部表,分区表,外部表,桶表 + 视图
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。