大数据技术 Hadoop学习(24):Impala相关操作上
沉沙 2018-10-08 来源 : 阅读 1722 评论 0

摘要:本篇教程探讨了大数据技术 Hadoop学习(24):Impala相关操作上,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 Hadoop学习(24):Impala相关操作上,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<


 


     上一篇,我们介绍Impala的介绍及安装。
   下面我们开始继续进一步的了解Impala的相关操作。

数据库相关

一:创建
  在这里,数据库就是一个目录结构,当然对于的元数据还会持久化到关系型数据库。

create database dbtest;


二:查看
  可以查看当前可用的数据库。

show databases;


三:删除
  删除制定的数据库,会删除数据库中的表,及数据,hdfs文件。数据库对于的hdfs目录结构也会被删除。

drop database dbtest1;


四:切换当前数据库
  默认的是default数据库,切换了后,可以直接使用当前数据库中的表。

use dbtest;


 

表相关

一:创建

create table student
(
id string  ,
name string  ,
sex  string     ,
birthday  timestamp 
);


二:创建分区表
  分区表可以根据存放数据,这样在分析的时候,可以只使用对应分区的数据,可以大大的降低检索的数据量,提高分析性能。

create table student_p
(
id string  ,
name string  ,
sex  string     ,
birthday  timestamp 
)
partitioned by (year string,month string,day string);

  这里定义了year,month,day 这3层分区。

三:查看表明细
  显示表的元数据,包括列名,类型等等。

desc student;

 
 
 
  formatted参数可以显示更多信息,显示格式与hive类似。包括底层详细信息,创建时间,格式,hdfs文件位置等等。

desc formatted student_p;


四:查看当前数据库已有的表

show tables;


五:HDFS目录
  可以看到在dbtest.db的目录下有两个我们建好表的目录。

 六:修改表
  ALTER TABLE 语句用来修改现有表的结构或属性。在 Impala 里,这是一个逻辑操作,更新了 Impala 和 Hive 共用的 metastore 数据库中表的元数据; ALTER TABLE 语句不会对实际的数据文件进行重写、移动等操作。因此,你可能需要相应的物理文件系统操作才能实现移动数据文件到不同的 HDFS 目录,重写数据文件来包含其他字段,或转换成不同的文件格式。
七:重命名表

alter table student rename to student1;


  对于内部表,这一操作实际地修改了包含数据文件的 HDFS 目录名;原始目录将不再存在。

八:增加列  

alter table student1 add columns (addr string);


九:替换列  

alter table student1 replace columns(id int,name string, sex string,tel int);

  当替换列时,原有列的定义都被废弃。你可能会在收到一组新的有不同数据类型或不同顺序的列的数据文件时使用这一技术(数据文件会被保留,因此当新列与旧列不兼容时,需要在执行进一步的查询前,使用 INSERT OVERWRITE 或 LOAD DATA OVERWRITE 语句替换所有的数据)。
可以看到。我们将原有列的结构,类型做了很大的替换。

十:修改列
   修改列可以改变列的名字和类型

alter table student1 change id idstr string;


十一:删除列

alter table student1 drop tel;


十二:修改文件格式

alter table student1 set fileformat parquet;

  因为本操作只是修改表的元数据,对现存的数据,你必须使用 Impala 之外的 Hadoop 技术对已有的数据进行转换。之后再在 Impala 中使用 INSERT 语句创建的数据将使用新的格式。你不能指定文本文件的分隔符;文本文件的分隔符必须是逗号。

十三:增加分区

alter table student_p add partition(year='2017',month='07',day='24');

  可以看到hdfs中student_p的下面有个3层目录结构。
重复上面增加分区的操作,分别添加22,23日的分区。


 

十四:删除分区
  删除day=22的分区。

alter table student_p drop partition(year='2017',month='07',day='22');

 可以看到该表只有23,24两个分区。hdfs对应的目录会被删除。所以该分区的实际文件也会被删除。

十五:查看表的统计状态

show table stats student_p;

  上述语句中使用到这个,可以看到每个分区的状态,如果有数据,还会统计行数,文件数,大小等等。
十六:查看表的列统计

show column stats student_p;

  
十七:采集表的统计

compute stats student_p;

  采集相关表和相关列的统计情况。COMPUTE STATS 语句是从底层向上构建,以提高可用性和用户友好度。你可以运行一个单独的 Impala COMPUTE STATS 语句来采集包括 table 和 column 的统计信息,而不是为表和列的统计信息分别运行 Hive ANALYZE TABLE 语句。
  COMPUTE STATS 也可以采集 HBase 表的信息。采集的 HBase 表的统计信息与 HDFS-backed 表的有所不同,但当 HBase 表执行连接查询时,统计信息仍被用于优化。  COMPUTE STATS执行完后,这些统计信息被存放在 metastore 数据库中,可以为impala用来优化查询。
 
 
  
--------------------------------------------------------------------
  到此,本章节的内容讲述完毕。
   

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved