Hive基础
创始人
2024-05-30 20:09:24
0

hive基本语法:

查看数据库:hive (default)> show databases; -----查看所有数据库

hive (default)> desc database test; ----查看数据库结构

hive (default)> select current_database(); ---查看当前数据库

创建数据库:hive (default)> create database test;

删除数据库:hive (default)> drop database if exists test;

强制删除数据库:hive (default)> drop database if exists test cascade;

创建表:hive (default)> create table student (id int,name string);

删除表:hive (default)> drop table if exists student;

添加数据:hive (default)> insert into student values(1,'zs'),(2,'ls');

查看表结构信息:hive (default)> desc student;

查看表数据:hive (default)> select * from student;

hive数据类型----集合数据类型

ARRAY:存储的数据为相同类型

MAP:具有相同类型的键值对

STRUCT:封装了一组字段

hive数据结构

数据结构

描述

逻辑关系

物理存储(HFDS)

Database

数据库

表的集合

文件夹

Table

行数据的集合

文件夹

Partition

分区

用于分割数据

文件夹

Buckets

分桶

用于分布数据

文件

Row

行记录

文件中的行

Columns

列记录

每行中指定的位置

Views

视图

逻辑概念,可跨越多张表

不存储数据

Index

索引

记录统计数据信息

文件夹


案例

在opt目录下创建一个employee.txt文件,把下面数据加到文件中

数据:

Michael|Montreal,Toronto|Male,30|DB:80|Product:Developer Lead
Will|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Shelley|New York|Female,27|Python:80|Test:Lead,COE:Architect
Lucy|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead

建库:

create table if not exists employee(name string,work_place array,gender_age struct,skills_score map,depart_title map
)
row format delimited fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n';
注:
row format delimited 表示分隔符设置开始语句
fields terminated by '|' 表示字段与字段之间按照“|”分隔
collection items terminated by ',' 表示一个复杂类型(array,struct)字段的各个item之间按照 “,”分隔
map keys terminated by ':' 表示复杂类型(Map)字段的key value之间按照 “:”分隔
lines terminated by '\n'; 表示行与行之间按照 “\n”分隔

加载文件:

方法一本地文件(本质是hadoop dfs -put上传操作,复制):

在hive中输入 load data local inpath '/opt/employee.txt' into table employee;

方法二hdfs文件(本质是hadoop fs -mv 操作,移动):

在hive中输入load data inpath '/employee.txt' into table employee;

查询数据:select * from employee;

创建分区表

按照age分区

create table employee2(name string,work_place array,gender_age struct,skills_score map,depart_title map
)
partitioned by (age int)
row format delimited 
fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n';

插入数据,按照age=20/age=30分区

 load data local inpath '/opt/employee.txt' into table employee2 partition(age=20);load data local inpath '/opt/employee.txt' into table employee2 partition(age=30);

查看分区表信息:show partitions employee2;

内部表和外部表

内部表(管理表):

  • HDFS中为所属数据库目录下的子文件夹

  • 数据完全由Hive管理,删除表(元数据)会删除数据

外部表(External Tables):

  • 数据保存在指定位置的HDFS路径中

  • Hive不完全管理数据,删除表(元数据)不会删除数据

上传数据内容:

hdfs dfs -put ./employee.txt /tmp/hivedata/employee/

创建外部表

create external table if not exists employee(name string,work_place array,gender_age struct,skills_score map,depart_title map
)
row format delimited 
fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n
location '/tmp/hivedata/employee';

注:

创建外部表要在create后面加上一个 external

location '/tmp/hivedata/employee'; 含义是:指定数据存储路径(HDFS)

相关内容

热门资讯

福建省药监局发布2025年服务... 转自:海峡消费报6月30日上午,福建省药监局召开新闻发布会,向社会各界通报近年省药监局服务医药产业发...
关于“支持创新药高质量发展的若... 转自:氨基观察2025年7月1日上午,为进一步完善全链条支持创新药发展举措,推动创新药高质量发展,更...
北京住房公积金管理中心:公积金... 人民财讯7月1日电,北京住房公积金管理中心公众号消息,2024—2025年度(2024年7月1日—2...
燃擎岚岛 2025平潭国际赛车... 来源:中国网6月27日-29日,2025平潭国际赛车嘉年华将在平潭如意湖国际城市赛道正式启幕,作为平...
七旬老人花175万投资“洛阳古... 来源:案件聚焦 中央领导都关心的“洛阳隋唐城遗址”开发项目,有投资保障的政府债券,年化收益10.5%...
众生药业:获得环孢素滴眼液(I... 转自:财联社【众生药业:获得环孢素滴眼液(III)及复方托吡卡胺滴眼液《药品注册证书》】财联社7月1...
物产金轮(002722.SZ)... 格隆汇7月1日丨物产金轮(002722.SZ)公布,2025年6月,公司未进行回购。截至2025年6...
沪皖协作探新路:从“单向帮扶”... 转自:上观新闻近日,安徽赛富乐斯半导体科技有限公司R系列芯片产线正式投产,国内量产Micro-LED...
“三大纪律八项注意”——始终同... 转自:中央纪委国家监委网站1935年10月,红一方面军的战士征得老乡同意后,在延安吴起县倒水湾村驻扎...
亚普股份:累计回购10万股 亚普股份(SH 603013,收盘价:17.29元)7月1日晚间发布公告称,截至2025年6月底,公...