2017年7月5日

Hive 基本操作

摘要: 数据定义 - DDL(1)建表(CREATE)的语法如下:CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [... 阅读全文

posted @ 2017-07-05 16:39 Charlist00 阅读(1144) 评论(0) 推荐(0) 编辑

Hive bucket表

摘要: Hive 桶对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。Hive也是 针对某一列进行桶的组织。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。把表(或者分区)组织成桶(Bucket)有两个理由:(1)获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。具体而言,连接两个... 阅读全文

posted @ 2017-07-05 16:38 Charlist00 阅读(671) 评论(0) 推荐(0) 编辑

hive分区(partition)简介

摘要: 一、背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。二、技术细节1、一个表可以拥有一个或者多个分区,... 阅读全文

posted @ 2017-07-05 16:38 Charlist00 阅读(826) 评论(0) 推荐(0) 编辑

HIve实战分析Hadoop的日志

摘要: 1、日志格式分析首先分析 Hadoop 的日志格式, 日志是一行一条, 日志格式可以依次描述为:日期、时间、级别、相关类和提示信息。如下所示: Java代码 2013-03-06 15:23:48,132 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /*************************... 阅读全文

posted @ 2017-07-05 16:35 Charlist00 阅读(314) 评论(0) 推荐(0) 编辑

hive 元数据解析

摘要: 在使用Hive进行开发时,我们往往需要获得一个已存在hive表的建表语句(DDL),然而hive本身并没有提供这样一个工具。要想还原建表DDL就必须从元数据入手,我们知道,hive的元数据并不存放在hdfs上,而是存放在传统的RDBMS中,典型的如MySQL,derby等,这里我们以mysql为元数据库,结合0.4.2版本的hive为例进行研究。连接上mysql后可以看到hive元数据对应的表约有... 阅读全文

posted @ 2017-07-05 16:35 Charlist00 阅读(5842) 评论(1) 推荐(0) 编辑

hive学习笔记之-数据类型

摘要: 数据类型Hive基本的数据类型: Hive集合数据类型:另外还有一个复合数据类型,可以综合上面的数据类型组合到一起。· union: UNIONTYPE 类型说明时间戳 支持传统的unix时间戳,可选的纳秒级精度。 支持的转换: l 整型数值类型:解读为以秒为单位的UNIX时间戳 l 浮动点数值类型:解读为以秒和小数精度为单位的UNIX时间戳... 阅读全文

posted @ 2017-07-05 16:34 Charlist00 阅读(269) 评论(0) 推荐(0) 编辑

hive array、map、struct使用

摘要: hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的数据为相同类... 阅读全文

posted @ 2017-07-05 16:34 Charlist00 阅读(1060) 评论(0) 推荐(0) 编辑

hive 包含操作(left semi join)(left outer join = in)迪卡尔积

摘要: 目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含一个字段,uid。 in查询如果要查询当天登陆的注册用户,需要用in查询,hive sql如下:select login.uid from login lef... 阅读全文

posted @ 2017-07-05 16:33 Charlist00 阅读(1951) 评论(0) 推荐(0) 编辑

Hive索引

摘要: Hive是支持索引的,但基本没用过,只做了下试验。为什么大家都不用,肯定有它的弊端。Hive索引机制:在指定列上建立索引,会产生一张索引表(Hive的一张物理表),里面的字段包括,索引列的值、该值对应的HDFS文件路径、该值在文件中的偏移量;在执行索引字段查询时候,首先额外生成一个MR job,根据对索引列的过滤条件,从索引表中过滤出索引列的值对应的hdfs文件路径及偏移量,输出到hdfs上的一个... 阅读全文

posted @ 2017-07-05 16:30 Charlist00 阅读(1752) 评论(0) 推荐(0) 编辑

Hive函数大全-完整版

摘要: 现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数据挖掘算法,而且,和HBase、Spark都能整合使用。如果你是做大... 阅读全文

posted @ 2017-07-05 16:30 Charlist00 阅读(669) 评论(0) 推荐(0) 编辑

导航