从零自学Hadoop(25):Impala相关操作下
2017-10-26 09:43
197 查看
阅读目录
序导入数据
查询
系列索引
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作。
文章是哥(mephisto)写的,SourceLink
序
上一篇,我们介绍Impala的相关操作。
下面我们开始继续进一步的了解Impala的相关操作。
导入数据
一:INSERT VALUES
该方式不适合载入大量的数据到基于 HDFS (HDFS-based)的表,因为插入操作无法并行,并且每一个语句会产生单独的数据文件,形成很多小文件。不要运行每次只插入单行数据的 很多条的 INSERT ... VALUES 语句的脚本,会产生很多小文件。将数据都放在VALUES中会好很多,就没有那多的小文件。
insert into student values ('1','张三','男','2017-10-23 10:10:20'), ('2','李四','男','2017-10-23 10:10:20'), ('3','王五','男','2017-10-23 10:10:20'); insert into student values ('4','张三1','男','2017-10-23 10:10:20'), ('5','李四1','男','2017-10-23 10:10:20'), ('6','王五1','男','2017-10-23 10:10:20');
使用insert into table 语法,每一组新插入的数据,都会追加到原来的数据后。
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230523644-949667395.jpg)
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230545535-735825656.jpg)
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230641410-208017193.jpg)
我们可以看到hdfs中有两个文件。也就是说insert一次就生成一个文件,所以会产生很多小文件。
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230553254-1573651302.jpg)
使用insert overwrite table 语法,每一组新插入的数据,都会覆盖表中原有的数据。
insert overwrite student values ('7','张三2','男','2017-10-23 10:10:20'), ('8','李四2','男','2017-10-23 10:10:20'), ('9','王五2','男','2017-10-23 10:10:20');
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230721879-1028588854.jpg)
二:LOAD DATA语句
LOAD DATA 语句简化了 Impala 内部表从 HDFS 位置移动一个或目录下所有数据文件到该表对应的 Impala 数据目录中的 ETL 过程。新建待导入文件数据 student.txt
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230831410-354094337.jpg)
从本地上传到hdfs
sudo -u impala hdfs dfs -put student.txt /tmp/student.txt
查看
hadoop fs -ls /tmp/
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025230823066-727600655.jpg)
导入
load data inpath '/tmp/student.txt' into table student ;
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231042738-110364447.jpg)
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231059426-10501528.jpg)
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231112894-1881478305.jpg)
可以看到文件的内容导入到了表中,
并且对应的hdfs目录的文件已经不再了。
重新将文件上传到对应目录
然后重新导入
这次我们使用overwrite
load data inpath '/tmp/student.txt' overwrite into table student ;
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231210785-1368505205.jpg)
可以看到数据已经加载进去,并且原有的数据都被替换掉了。
三:分区表的load data
新增分区alter table student_p add partition (year='2017',month='01',day='01'); alter table student_p add partition (year='2017',month='01',day='02');
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231355988-1388019109.jpg)
load data inpath '/tmp/student.txt' overwrite into table student_p partition(year='2017',month='01',day='01') ; load data inpath '/tmp/student.txt' overwrite into table student_p partition(year='2017',month='01',day='02') ;
这之间还需要再将文件上传到hdfs
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231438410-1740128831.jpg)
select * from student_p;
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231455754-1202155542.jpg)
可见指定了分区后,不会影响到其他分区的数据。
查询
查询这里就只举几个可能需要注意到的,其他的语法可以详见官网。
一:limit
设置select查询中结果集的最大行数select * from student limit 1;
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231621035-1988583391.jpg)
二:offset
offset可以和limit一起使用,可以用于模拟“分页”结果集,实际中最好不要这样用,尽量的将结果集缓存到应用端,在应用端分页。select * from student order by id limit 1 offset 0; select * from student order by id limit 1 offset 1;
![](https://images2017.cnblogs.com/blog/22672/201710/22672-20171025231658519-85554962.jpg)
--------------------------------------------------------------------
到此,本章节的内容讲述完毕。
系列索引
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作。
文章是哥(mephisto)写的,SourceLink
相关文章推荐
- 从零自学Hadoop(24):Impala相关操作上
- 从零自学Hadoop(21):HBase数据模型相关操作下
- 从零自学Hadoop(21):HBase数据模型相关操作下
- Hadoop学习之HDFS的相关操作
- Linux自学笔记(九)常用命令之Vim相关操作
- mySQL数据库相关操作自学笔记三
- hadoop配置文件详解、安装及相关操作
- hadoop之HDFS对文件的相关操作
- hadoop配置文件详解、安装及相关操作
- hadoop配置文件详解,安装及相关操作
- Hadoop-impala十大优化之(3)—impala表和列信息统计操作最佳实践
- hadoop配置文件详解、安装及相关操作
- hadoop配置文件详解、安装及相关操作
- hadoop配置文件详解,安装及相关操作
- hadoop配置文件详解、安装及相关操作
- hadoop配置文件详解、安装及相关操作
- Hadoop自学笔记(一)常见Hadoop相关项目一览
- hadoop配置文件详解及相关操作
- hadoop配置文件详解、安装及相关操作
- 从零自学Hadoop(20):HBase数据模型相关操作上