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用来优化查询。

  

--------------------------------------------------------------------

  到此,本章节的内容讲述完毕。

系列索引

  【源】从零自学Hadoop系列索引

 
博文作者:mephisto

Impala-1的更多相关文章

  1. 安装Impala

    1.默认安装好hadoop并且能正常启动(只需hdfs即可)2.安装如下rpm包(需要root权限 注意顺序) bigtop-utils-0.7.0+cdh5.8.2+0-1.cdh5.8.2.p0. ...

  2. 《开源大数据分析引擎Impala实战》目录

    当当网图书信息: http://product.dangdang.com/23648533.html <开源大数据分析引擎Impala实战>目录 第1章  Impala概述.安装与配置.. ...

  3. 运行impala tpch

    1.安装git和下载tpc-h-impala脚步 [root@ip-172-31-34-31 ~]# yum install git [root@ip-172-31-34-31 ~]# git clo ...

  4. TPCH Benchmark with Impala

    1. 生成测试数据在TPC-H的官网http://www.tpc.org/tpch/上下载dbgen工具,生成数据http://www.tpc.org/tpch/spec/tpch_2_17_0.zi ...

  5. 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  6. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  7. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  8. Hadoop 之Impala

    impala 是基于hive的大数据实时分析查询引擎,直接使用Hive的元数据库metadata意味着impala元数据都存储在hive的metadstore中并且impala兼容hive的 sql解 ...

  9. 在脚本中刷新impala元信息

    刷新impala元信息 impala-shell -q 'invalidate metadata' -i hslave1 impala-shell -q 'select count(*) from p ...

  10. java通过jdbc连接impala

    下载所需jar包:http://www.cloudera.com/downloads/connectors/impala/jdbc/2-5-28.html 选择使用impalajdbc41版本 imp ...

随机推荐

  1. 如何解决tomcat中的应用报java.io.IOException: 您的主机中的软件中止了一个已建立的连接

    转载: 施勇: https://blog.csdn.net/shiyong1949/article/details/72845634 这两天突然看到日志文件中有“java.io.IOException ...

  2. 避免 ‘sudo echo xxxx >’ 时候 出现 “permission denied”

    ➜  ~ echo "/opt/nfs 10.10.10.*(rw,all_squash,sync)">>/etc/exports zsh: permission de ...

  3. thinkphp-PHP实现pdf导出功能

    Thinkphp框架引用tcpdf插件,插件下载地址:待续... 代码编写前先引入tcpdf整个文件夹到项目目录的ThinkPHP文件夹下 如:/ThinkPHP/Library/Vendor/tcp ...

  4. 利用nodejs实现商品管理系统(一)

    一.界面分类:用户登录界面,商品管理界面(包含商品编辑,创建,删除,列表界面) 功能实现:1.用户输入用户名与密码,通过加密,与数据库校验,如果正确,则跳转到商品管理界面,否则一直停留在用户界面. 2 ...

  5. 【Leetcode】804. Unique Morse Code Words

    Unique Morse Code Words Description International Morse Code defines a standard encoding where each ...

  6. 高德API+Python解决租房问题(.NET版)

    源码地址:https://github.com/liguobao/58HouseSearch 在线地址:58公寓高德搜房(全国版):http://codelover.link:8080/ 周末闲着无事 ...

  7. NoSQL简单学习(一)

    只是简单的知道有这个东西,却从来没有去接触,今天看了几篇文章,记录一下,开始慢慢接触这一领域 简介: 8种Nosql数据库系统对比 http://blog.jobbole.com/1344/ 一网打尽 ...

  8. 『AngularJS』理解$Scope

    理解$Scope 执行概要 在AngularJS,一个子scope通常原型继承于它的父scope.应用于这个规则的表达式是一个使用scope:{...}的指令,这将创建一个『孤岛』scope(非原型继 ...

  9. 【实用】如何将sublime text 3 打造成实用的python IDE 环境

    前段时间写脚本,一直使用的是pycharm ,无奈机器不配置实在不怎么样,我记得之前用过subline text,这是我用过的最酷炫的文本编辑器,参考了一下网上的文章,自己走了一些弯路,将心得写在这里 ...

  10. OpenCV入门:(五:更改图片对比度和亮度)

    1. 理论 图片的转换就是将图片中的每个像素点经过一定的变换,得到新像素点,新像素点组合成一张新的图片. 改变图片对比度和亮度的变换如下: 其中α和β被称作增益参数(gain parameter)和偏 ...