Hive
文章平均质量分 75
jojo52013145
这个作者很懒,什么都没留下…
展开
-
Hive中partition如何使用
一、背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。二、技术细节转载 2014-02-13 15:16:26 · 725 阅读 · 0 评论 -
Hive QL 语法
Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。1. DDL Operations创建表:hive> CREATE TABLE pokes (foo INT, bar STRING); 创建表并转载 2014-02-13 10:43:11 · 1034 阅读 · 0 评论 -
Hive限制
1.更新,事务,索引,不支持,是全表扫描2.创建表的字段类型和java类型是对应的。不支持日期类型,提供转换为字符串类型的函数。3.查询语句中,不支持having,可写嵌套的select来解决;group by后只能是表的定义列名,不能像mysql那样可以为查询语句为逻辑处理结果声明的别名,但可为逻辑处理过程语句4.内置函数查看命令(show functions;desc转载 2014-02-13 17:42:21 · 817 阅读 · 0 评论 -
Hive 全排序 优化
使用Hive可以高效而又快速地编写复杂的MapReduce查询逻辑。但是某些情况下,因为不熟悉数据特性,或没有遵循Hive的优化约定,Hive计算任务会变得非常低效,甚至无法得到结果。一个”好”的Hive程序仍然需要对Hive运行机制有深入的了解。有一些大家比较熟悉的优化约定包括:Join中需要将大表写在靠右的位置;尽量使用UDF而不是transfrom……诸如此类。下面讨论5个性能和逻辑转载 2014-02-14 14:35:21 · 1213 阅读 · 0 评论 -
Hadoop Hive 中的排序 Order by ,Sort by ,Distribute by, Cluster By,
order byorder by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。set hive.mapred.mode=nonstrict; (default value / 默认值)set hive.mapred.mode=strict;order by转载 2014-02-14 14:33:26 · 4491 阅读 · 0 评论 -
使用 Hive 构建数据库
当您需要处理大量数据时,存储它们是一个不错的选择。令人难以置信的发现或未来预测不会来自未使用的数据。大数据是一个复杂的怪兽。用 Java™ 编程语言编写复杂的 MapReduce 程序要耗费很多时间、良好的资源和专业知识,这正是大部分企业所不具备的。这也是在 Hadoop 上使用诸如 Hive 之类的工具构建数据库会成为一个功能强大的解决方案的原因。作者:Peter J. Jama转载 2014-02-13 17:02:10 · 868 阅读 · 0 评论 -
Hive 工作原理
hive就是一个将sql语句转化为MR工具hive的工作原理:1、使用antlr定义sql语法,(详细见hive.g),由antlr工具将hive.g编译为两个java文件:HiveLexer.java HiveParser.java,可以将输入的sql解析为ast树2、org.apache.hadoop.hive.ql.Driver对ast树进行初步的解析(combile转载 2014-02-14 17:28:49 · 7423 阅读 · 0 评论