hive (基于hadoop的数据仓库)-阿里云开发者社区

开发者社区> 数据库> 正文

hive (基于hadoop的数据仓库)

简介: 1.简介 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。 与传统关系数据库相比的优势是:能够处理海量数据。 劣势是:它只提供查询功能,不能增、删、改。涉及到分布式计算的任务分发,查询时间在分钟级,不能当实时工具用。 运行机理:将sql语句转换为MapReduce任务,让Hadoop处理。 2.查询语句 h

1.简介

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。

与传统关系数据库相比的优势是:能够处理海量数据。

劣势是:它只提供查询功能,不能增、删、改。涉及到分布式计算的任务分发,查询时间在分钟级,不能当实时工具用。

运行机理:将sql语句转换为MapReduce任务,让Hadoop处理。

2.查询语句

hive //此命令打开hive的CLI(Command Line Interface)。
show databases;//查询所有的数据库名称。
use db_name;//进入hive后是默认的DB,此命令切换到指定的DB。
show tables;//查询当前db下的所有表的名称。
show tables  'ad*';//查询以'ad'开头的表名。
describe table_name;//查看指定表的结构。
select * from table limit 50;//限制返回结果数,与mysql不同,不能使用 limit from,end 这种形式。

3.执行过程

查询开始后控制台会输出一个URL,用于web监控。页面一般长这样,见 图3-1.


图3-1 

4.导出


查询结果落文件有两种方式:

/*查询结果输出到指定目录,文件名一般是0000_0,没有标题列。*/
/*数据量大时可能有若干个结果文件,处理不方便*/
INSERT OVERWRITE LOCAL DIRECTORY '/home/me/csvFileDir/' 
row format delimited fields terminated by ','
select * from table_name limit 10;

/*查询数据并导出到单一文件,分隔符就是制表符,携带标题。*/
hive  -e "select * from db_name.table_name limit 10" >> /home/me/csvFileDir/hiveResult.txt


几百兆的大文件,只有UltraEdit能应对。还可以用navicate导入数据库用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章