设为首页 收藏本站
查看: 1124|回复: 0

[经验分享] 从零自学Hadoop(24):Impala相关操作上

[复制链接]

尚未签到

发表于 2017-12-16 21:43:31 | 显示全部楼层 |阅读模式

一:创建
  

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

DSC0000.jpg


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

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

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


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

desc student;  

DSC0002.jpg

DSC0003.jpg

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

desc formatted student_p;  

DSC0004.jpg


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

show tables;  

DSC0005.jpg


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


六:修改表

  ALTER TABLE 语句用来修改现有表的结构或属性。在 Impala 里,这是一个逻辑操作,更新了 Impala 和 Hive 共用的 metastore 数据库中表的元数据;>
七:重命名表
  

alter table student rename to student1;  

DSC0007.jpg

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


八:增加列  
  

alter table student1 add columns (addr string);  

DSC0009.jpg


九:替换列  
  

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

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


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

alter table student1 change>  

DSC00011.jpg


十一:删除列
  

alter table student1 drop tel;  

DSC00012.jpg


十二:修改文件格式
  

alter table student1 set fileformat parquet;  

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


十三:增加分区
  

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

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

DSC00015.jpg

DSC00016.jpg


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

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

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


十五:查看表的统计状态
  

show table stats student_p;  

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

十六:查看表的列统计
  

show column stats student_p;  

DSC00018.jpg   


十七:采集表的统计
  

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用来优化查询。
  --------------------------------------------------------------------
  到此,本章节的内容讲述完毕。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-424843-1-1.html 上篇帖子: 【hadoop】har:// 下篇帖子: Hadoop(十二)MapReduce概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表