Hive查询性能
Hive 0.13属于毒刺项目(即技术社区为改进Hive性能所构建的项目)的最后一部分,而且很明显相关努力收到了不错的成效。我在0.11到0.13版本当中对多项速度参数进行了测试,并实际感受到了版本提升给处理效率带来的改善。其中最引人注目的特性是0.13版本在全新Tez执行框架上运行查询的能力。
在我的测试当中,我发现在引入Tez之后、查询次数与原先相比缩减了一半,而且查询时耗在缓存机制的辅助下也降低了30%。在大规模数据集方面,其速度提升效果变得更为显著。使用在0.11版本中引入的ORC(即优化行列)文件格式时,查询次数降低了约15%。微软专为Hive 0.13打造的Vectorization则进一步将速度提高约10%。0.13版本中的另一项新功能——基于成本的查询优化机制——也能够实现20%效率改进。
需要指出的是,这些测试全部运行在我自己的笔记本设备上、处理对象为小型数据集、使用临时性查询,因此其结果可能无法准确反映Hive 0.13在真实使用环境下的性能水平。很明显,性能调整工具包中的每一项功能特性都具备显著的价值,其在大规模查询作业中将发挥重要的实际作用。
未来几年中,需要收集并加以分析的数据总量当然不可能有所减少。而企业级数据仓库业务中最常用的度量单位——每TB成本——也只会变得更加重要。虽然这种衡量指标易于计算也方便理解,但与大多数简便指标一样、它也会让买家对整体架构的复杂性缺乏足够的理解。无论如何,几乎所有从业人士都认为Hive 的数据存储成本要远低于传统数据仓库方案——只相当于后者的1%甚至更低。
传统数据仓库方案的用户们应该认真评估利用hadoop进行非结构化分析数据存储的可能性,并考虑能否将其引入数据仓库体系。在Hive的帮助下,我们有能力执行PB级别查询,从而定义并简化数据内容并为日后引入数据仓库分析作好准备。Hadoop与Hive也可以在逆向场景中发挥作用:将原本需要保存在数据仓库中的汇总数据分离出来,从而显著降低存储成本。最后,Hive能够对非结构化数据进行实验性分析,并在确认其实际价值后再将内容保存在数据仓库当中。
尚未部署数据仓库方案的企业或者技术部门也可以将Hive作为起点,从而在感受数据分析价值的同时将前期投入成本控制在最低程度。虽然Hive并不能提供一套完整的数据仓库解决方案,但它确实带来一套具备多种分析工具的优秀、低成本、大规模、可操作型数据存储机制。如果分析师们对于Hive的表现感到满意,那么众多传统数据仓库供应商也将提供相关连接机制与工具、保证用户可以将数据引入数据仓库当中以保护原有资产投入。
在实际运营层面,以数据与分析为基础制定出准确决策的企业将拥有显著的竞争优势。Hive在查询流程方面提供近线性可扩展能力,且拥有比传统企业级数据仓库高出一个量级的卓越性能与性价比,此外其入门门槛也比后者低得多。目前10TB级别的企业数据仓库解决方案大约需要100万美元启动费用,相比之下善于管理大规模非结构化数据集的Hive可谓潜力无限。
原文链接:
http://www.infoworld.com/d/big-data/review-apache-hive-brings-real-time-queries-hadoop-246607