Hive基础

Hive的基本概念

hive是基于hadoop的数据仓库解决方案,是为了推广hadoop而产生,它可以将结构化的数据映射为数据表。
Hive的优势与特点

Hive客户端操作

有两种客户端工具:Beeline和Hive命令行(CLI)
有两种模式:

  • 命令行模式
    在这里插入图片描述
  • 交互模式
    在这里插入图片描述

Hive数据类型

#数据类型
	#数据类型	java					mysql							hive
	#字符串		String					char(n)/varchar(n)/text/...		string/varchar(65536)/char(255)
	#字符		char				
	#整数		byte/short/int/long		smallint/int(n)/bigint(n)		smallint/int/bigint
	#小数		float/double/BigDecial	float/double/money/real			float/double
										numeric(m,n)/decimal(m,n)		decimal(38,18)
	#布尔		boolean					bit								boolean
	#日期		java.util.Date			date/datetime/timestamp			date/timestamp
	#列表		HashSet					set('V1','V2','V3',...)			array<data_type>
	#结构体																struct<col_name:data_type,...>
	#键值																map<key_type,value_type>
	#符合类型															uniontype<data_type,...>

Hive数据库和表操作

  • Hive数据结构
数据结构	描述	逻辑关系				物理存储(HDFS)
Database	数据库	表的集合				文件夹
Table		表		行数据的集合			文件夹
Partition	分区	用于分割数据			文件夹
Buckets		分桶	用于分布数据			文件
Row			行		行记录					文件中的行
columns		列		列记录					每行中指定的位置
Views		视图	逻辑概念,可跨越多张表	不存储数据
lndex		索引	记录统计数据信息		文件夹
  • 数据库
create database if not exists myhivebook; --创建数据库myhivebook
use myhivebook;	--进入数据库myhivebook
show databases;	--查看数据库
describe database default;  -- 可以查看数据库更多的描述信息
alter database myhivebook set owner user dayongd;	--修改数据库的使用者
drop database if exists myhivebook cascade;	--删除数据库myhivebook;
  • 建表语言解析
create external table if not exists employee_external (	--if not exists可选,如果表存在,则忽略
name string,
work_place array<string>,
sex_age struct<sex:string,age:int>,						--列出所有列和数据类型
skills_score map<string,int>,
depart_title map<string,array<string>>
)
comment 'This is an external table'						--comment可选
row format delimited
fields terminated by '|'								--如何分隔列(字段)
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n'
stored as textfile										--文件存储格式
location '/kb10/employee'; 								--指定数据存储路径(HDFS)

hdfs dfs -put xxxxxx.log /kb10/employee					--上传数据

  • 分隔符

       在使用hive的时候,分隔符是必不可少的,当学习的时候使用的都是常规分隔符,比如:逗号“,”、竖线“|”等,这些
       键盘上都可以直接输入的字符,但是这些字符只要是键盘上的,在针对复杂的业务逻辑的时候,都会失效。比如你
       有一个备注字段,这个字段允许用户输入输入键盘上的任何
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值