更新时间:2024-12-06 GMT+08:00
查询Hive表数据
功能介绍
本小节介绍了如何使用HQL对数据进行查询分析。从本节中可以掌握如下查询分析方法:
- SELECT查询的常用特性,如JOIN等。
- 加载数据进指定分区。
- 如何使用Hive自带函数。
- 如何使用自定义函数进行查询分析,如何创建、定义自定义函数请见创建Hive用户自定义函数。
在启用了安全服务的集群中执行如下操作,需要对涉及的表具有与操作对应的权限。
样例代码
-- 查看薪水支付币种为美元的雇员联系方式. SELECT a.name, b.tel_phone, b.email FROM employees_info a JOIN employees_contact b ON(a.id = b.id) WHERE usd_flag='D'; -- 查询入职时间为2014年的雇员编号、姓名等字段,并将查询结果加载进表employees_info_extended中的入职时间为2014的分区中. INSERT OVERWRITE TABLE employees_info_extended PARTITION (entrytime = '2014') SELECT a.id, a.name, a.usd_flag, a.salary, a.deductions, a.address, b.tel_phone, b.email FROM employees_info a JOIN employees_contact b ON (a.id = b.id) WHERE a.entrytime = '2014'; -- 使用Hive中已有的函数COUNT(),统计表employees_info中有多少条记录. SELECT COUNT(*) FROM employees_info; -- 查询使用以“cn”结尾的邮箱的员工信息. SELECT a.name, b.tel_phone FROM employees_info a JOIN employees_contact b ON (a.id = b.id) WHERE b.email like '%cn';
扩展使用
- 配置Hive中间过程的数据加密
指定表的格式为RCFile(推荐使用)或SequenceFile,加密算法为ARC4Codec。SequenceFile是Hadoop特有的文件格式,RCFile是Hive优化的文件格式。RCFile优化了列存储,在对大表进行查询时,综合性能表现比SequenceFile更优。
set hive.exec.compress.output=true; set hive.exec.compress.intermediate=true; set hive.intermediate.compression.codec=org.apache.hadoop.io.encryption.arc4.ARC4Codec;
- 自定义函数,具体内容请参见创建Hive用户自定义函数。
父主题: Hive JDBC访问样例程序