hive功能简单介绍

上传人:m**** 文档编号:57569501 上传时间:2018-10-22 格式:DOCX 页数:6 大小:17.34KB
返回 下载 相关 举报
hive功能简单介绍_第1页
第1页 / 共6页
hive功能简单介绍_第2页
第2页 / 共6页
hive功能简单介绍_第3页
第3页 / 共6页
hive功能简单介绍_第4页
第4页 / 共6页
hive功能简单介绍_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《hive功能简单介绍》由会员分享,可在线阅读,更多相关《hive功能简单介绍(6页珍藏版)》请在金锄头文库上搜索。

1、hivehive 功能简单介绍功能简单介绍Hive 提供了类 SQL 语法的功能,可通过它来检索 Hadoop 存储数据,查询操作是基于MapReduce 来完成的Hive 功能1.通过 select 语句查询指定 column 的数据2.通过 where 语句过滤查询条件3.通过 group by 语句将查询结果进行分组4.执行 join 查询操作 使用写有 Join 操作的查询语句时有一条原则:应该将条目少的表/子查询放在 Join 操作符的左边。原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生 OO

2、M 错误的几率。inner join:SELECT sales.*, things.* FROM sales JOIN things ON (sales.id = things.id);outer join:SELECT sales.*, things.* FROM sales LEFT OUTER JOIN things ON (sales.id = things.id);SELECT sales.*, things.* FROM sales RIGHT OUTER JOIN things ON (sales.id = things.id);SELECT sales.*, things.*

3、FROM sales FULL OUTER JOIN things ON (sales.id = things.id);semi join:等同于 in 函数SELECT * FROM things LEFT SEMI JOIN sales ON (sales.id = things.id);相当于 sql 语句:SELECT * FROM things WHERE things.id IN (SELECT id from sales);map join:Join 操作在 map 阶段完成,不再需要 reduce 操作,因此 map join 不能结合 RIGHT OUTER JOIN 和 F

4、ULL OUTER JOIN 使用(需要 reduce 进行聚合)SELECT /*+ MAPJOIN(things) */ sales.*, things.* FROM sales JOIN things ON (sales.id = things.id);*前提:在 join 字段,join 左边的记录集合(sales)是 join 右边(things)的子集*,例如:sales things1 12 23 34.5.管理数据库表格(create,drop,alter)6.将查询结果保存到其他 Table通过 insert 语句:INSERT OVERWRITE TABLE targetP

5、ARTITION (dt=2010-01-01)SELECT col1, col2FROM source;注意:和关系数据库不同,insert 操作不是追加记录,而是将新的记录覆盖掉以前的记录,因此 OVERWRITE 关键字是必须的。787 棋牌 http:/通过 CTAS 语句:CREATE TABLE targetASSELECT col1, col2 FROM source;7.将查询结果保存到 HDFSINSERT OVERWRITE DIRECTORY /path SELECT.8.将查询结果保存到本地目录INSERT OVERWRITE LOCAL DIRECTORY path

6、SELECT.9.自定义 MapReduce 脚本用于查询使用 Hive 需注意:查询出的数据可能会有延迟不能对数据执行更新和删除操作Hive is not designed for online transition processing and does not offer real-time queries and row levelupdates.it is best used for batch jobs over large sets of immutable dataHive 数据模型按照粒度由粗到细,Hive 数据可划分成如下几个单元DataBase、Tables:概念同关系数

7、据库其中 Table 又分为 managed table 和 external table删除 external table 的时候,只会删除表格的元数据信息,而不会删除表格的数据删除 managed table 的时候,元数据和数据都会删除Partitions:当表格数据量较大时,可对表格进行分区处理(Partition),便于局部数据的查询操作,如按时间分区、按地域分区等,将具有相同性质的数据存储到同一磁盘块上,从而加快查询效率。Buckets:Table 所存储的数据进行分区(Partition)之后,每个 Partition 还可划分成更细的粒度以水平切片的方式进行存储,被划分后的数据

8、单元称为 Bucket 或 Clusterbucket 多用于提高 map-join 的效率a mapper working on a bucket of the left table only needs to load the corresponding buckets of the right table to perform the joinHive 语法DDL(1)、定义表格:CREATE TABLE page_view(viewTime INT, userid BIGINT,page_url STRING, referrer_url STRING,friends ARRAY, pr

9、operties MAP, #1ip STRING COMMENT IP Address of the User) #2COMMENT This is the page view tablePARTITIONED BY(dt STRING, country STRING) #3CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS #4ROW FORMAT DELIMITED #5FIELDS TERMINATED BY 1COLLECTION ITEMS TERMINATED BY 2MAP KEYS TERMINATED BY 3S

10、TORED AS SEQUENCEFILE; #6注释:1.Hive 的字段类型包括私有类型(Primitive Type)和复杂类型(Complex Type)其中,私有类型包括:TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE和 STRING 天地棋牌 http:/复杂类型包括:Structs、Maps 和 Arrays,通常为私有类型的集合2.通过 COMMENT 关键字为表格和字段添加注释3.通过 PARTITIONED BY 关键字为表格分区4.通过 CLUSTERED BY 关键字将 PATITION 划分成 BUCKET5.定义每条

11、记录的存储格式,包括:字段之间如何分隔;集合字段中的元素如何分隔;Map 的 key 值如何分隔6.指定存储格式为 Hadoop 的 SequenceFile(2)查看表结构DESCRIBE tablename;(3)修改表格为表格添加字段ALTER TABLE pokes ADD COLUMNS (new_col INT);(4)删除表格DROP TABLE tablename;DML(1)、导入数据导入操作,只是将文件复制到对应的表格目录中,并不会对文档的 schema 进行校验从 HDFS 导入 638 棋牌 http:/LOAD DATA INPATH data.txt INTO TABLE page_view PARTITION(date=2008-06-08, country=US)从本地导入,并覆盖原数据LOAD DATA LOCAL INPATH data.txt OVERWRITE INTO TABLE page_view PARTITION(date=2008-06-08, country=US)Hive 体系结构hiveserverhiveserver 启动方式:hive -service hiveserverHiveServer 支持多种连接方式:Thrift、JDBC、ODBC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 数据库

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号