大数据基本操作锦集之Hive的基本操作

大数据基本操作锦集之Hive的基本操作

 

目录

  • 简介
  • hive的数据类型
  • hive的数据存储
  • hive的数据模型
  • hive的DDL(数据库定义语言)
  • hive的DML操作
  • hive加载数据
  • hive导出数据
  • hive udf使用介绍

 

正文

 

简介

hive在hadoop生态圈属于数据仓库角色,他能够管理hadoop中的数据,同时可以查询hadoop中的数据。本质上来讲,hive就是sql解释器,可以将sql转换为mapreduce的job来运行。可以将sql中的表,字段转化为hdfs中的文件,以及文件中的列。hive在hdfs中的默认位置是/user/hive/warehouse。

 

hive的数据类型:

  1. 整型:TINYINT,SMALLINT,INT,BIGINT。
  2. 文本类型:VARCHAR:1 to 65355,CHAR:255,STRING
  3. 时间类型:timestamp:时间戳, date:日期
  4. 布尔及二进制:BOOLEAN表示二元的true或false,BINARY用于存储变长的二进制数据
  5. 浮点类型:float,double
  6. 复杂数据类型:Array/Map/Struct/UNION

hive的数据存储

  1. Hive的数据存储基于Hadoop HDFS
  2. Hive没有专门的数据存储格式,存储结构主要包括:数据库、文件、表、视图
  3. Hive默认可以直接加载文本文件(TextFile),还支持sequence file 创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据

 

hive的数据模型

  1. 内部表:与数据库中的 Table 在概念上是类似每一个Table在Hive中都有一个相应的目录存储数据。例如,一个表test,它在HDFS中的路径为:/user/hive/warehouse,删除表时,元数据与数据都会被删除.
  2. 分区表:在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition的数据都存储在对应的目录中。test表中包含 date 和 city 两个 Partition,则对应于date=20130201, city = bj 的HDFS子目录为:/user/hive/warehouse/test/date=20130201/city=bj
  3. 外部表:指向已经在 HDFS 中存在的数据,可以创建 Partition 它和 内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异 内部表 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中。外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个外部表时,仅删除链接。想系统学习大数据的话,可以加入大数据技术学习扣扣君羊:522189307

 

hive的DDL(数据库定义语言)

  • 创建数据库
hive> show databases;
OK
default
Time taken: 0.049 seconds, Fetched: 1 row(s)

hive> create database test;
OK
Time taken: 0.201 seconds

hive> show databases;
OK
default
test
Time taken: 0.021 seconds, Fetched: 2 row(s)

hive> use test;
OK
Time taken: 0.02 seconds

hive> show tables;
OK
Time taken: 0.014 seconds

或者:
hive> create database hive_test location '/hive/hive_test';
OK
Time taken: 0.017 seconds
  • 创建表
hive> CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
> salary String, destination String)
> COMMENT 'Employee details'
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY '\t'
> LINES TERMINATED BY '\n'
> STORED AS TEXTFILE;
OK
Time taken: 0.052 seconds
  • 修改表:alter语句
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

1.更改表名rename to,把 employee 修改为 emp。

hive> ALTER TABLE employee RENAME TO emp;
OK
Time taken: 0.107 seconds

hive> show tables;
OK
emp
Time taken: 0.012 seconds, Fetched: 1 row(s)

2.更改列名和列数据类型

		- 先查看一下这表数据结构:
		  hive> desc emp;
		  OK
		  eid int
		  name string
		  salary string
		  destination string
		  Time taken: 0.07 seconds, Fetched: 4 row(s)

		- 把name变成ename,把salary数据类型变为double。
		  h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值