Hive SQL入门实践:配置与操作教程
本资源主要介绍了如何通过Hive SQL进行数据库管理和数据分析的基本操作。首先,你需要对Hive进行安装和配置,包括上传Hive压缩包、安装MySQL数据库并配置Hive环境变量,确保Hive与MySQL的连接。配置过程中,涉及到修改`hive-env.sh`和`hive-site.xml`文件,设置JDBC连接信息,以及解决JLine版本不一致问题。 Hive安装完成后,可以通过以下方式进行操作: 1. **交互shell**:使用`bin/hive`命令启动Hive交互式环境,可以直接输入SQL命令进行查询。 2. **JDBC服务**:Hive提供JDBC服务,可以使用Java连接到Hive数据库,这对于在其他应用程序中集成Hive查询非常有用。 3. **启动Hive服务器**:通过`bin/hiveserver2`命令以守护进程模式启动Hive服务器,允许远程连接,如通过`bin/beeline`客户端连接。 4. **数据库管理**: - 创建数据库:使用`createdatabase`命令创建新数据库,例如`createdatabaseifnotexists mydb`。 - 显示数据库:`showdatabases`列出所有可用数据库。 - 删除数据库:`dropdatabaseifexists db_name [restrict|cascade]`,`cascade`选项用于强制删除包含表的数据库。 5. **分区表**: - 分区表支持单分区和多分区,如单分区`day_table`按日期分区,双分区`day_hour_table`按日期和小时分区。 - 数据导入:使用`LOADDATA`命令,如`LOADDATA local INPATH '/path/to/data.txt' INTO TABLE day_table PARTITION(dt='2017-07-07')`。 这些步骤详细介绍了Hive的环境配置、基本操作和数据库管理,对于初学者理解和实践Hive SQL非常有帮助。通过实践这些命令和配置,你将能够更有效地处理和分析大数据。
数据库相关操作
Hive配置单元包含一个名为 default 默认的数据库.
create database [if not exists] <database name>;---创建数据库
show databases; --显示所有数据库
drop database if exists <database name> [restrict|cascade]; --删除数据库,默认情况下,hive不允许删除含有表的数据库,要先将数据库中的表清空才能drop,否则会报错
--加入cascade关键字,可以强制删除一个数据库,默认是restrict,表示有限制的
eg. hive> drop database if exists users cascade;
use <database name>; --切换数据库
----------------------------------------------------------------------------------------------------
分区表(PARTITIONED BY)
分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式。
单分区建表语句:create table day_table (id int, content string) partitioned by (dt string);单分区表,按天分区,在表结构中存在id,content,dt三列。
双分区建表语句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);双分区表,按天和小时分区,在表结构中新增加了dt和hour两列。
导入数据
LOAD DATA local INPATH '/root/hivedata/dat_table.txt' INTO TABLE day_table partition(dt='2017-07-07');
LOAD DATA local INPATH '/root/hivedata/dat_table.txt' INTO TABLE day_hour_table PARTITION(dt='2017-07-07', hour='08');
基于分区的查询:
SELECT day_table.* FROM day_table WHERE day_table.dt = '2017-07-07';
查看分区:
show partitions day_hour_table;
总的说来partition就是辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理。
----------------------------------------------------------------------------------------------------
ROW FORMAT DELIMITED(指定分隔符)
create table day_table (id int, content string) partitioned by (dt string) row format delimited fields terminated by ','; ---指定分隔符创建分区表
复杂类型的数据表指定分隔符
create table complex_array(name string,work_locations array<string>) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',';
数据如下:
zhangsan beijing,shanghai,tianjin,hangzhou
wangwu shanghai,chengdu,wuhan,haerbin
create table t_map(id int,name string,hobby map<string,string>)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':' ;
数据:
1,zhangsan,唱歌:非常喜欢-跳舞:喜欢-游泳:一般般
2,lisi,打游戏:非常喜欢-篮球:不喜欢
剩余12页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦