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导入数据库用。