Hive索引】的更多相关文章

1.        Hive索引概述 Hive的索引目的是提高Hive表指定列的查询速度. 没有索引时.类似'WHERE tab1.col1 = 10' 的查询.Hive会载入整张表或分区.然后处理全部的rows,可是假设在字段col1上面存在索引时.那么仅仅会载入和处理文件的一部分. 与其它传统数据库一样.添加索引在提升查询速度时.会消耗额外资源去创建索引和须要很多其它的磁盘空间存储索引. Hive 0.7.0版本号中,添加了索引.Hive 0.8.0版本号中添加了bitmap索引. 2.  …
一.索引 简介 Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同,比如,Hive不支持主键或者外键. Hive索引可以建立在表中的某些列上,以提升一些操作的效率,例如减少MapReduce任务中需要读取的数据块的数量. 在可以预见到分区数据非常庞大的情况下,索引常常是优于分区的. 为什么要创建索引? Hive的索引目的是提高Hive表指定列的查询速度. 没有索引时,类似'WHERE tab1.col1 = 10' 的查询,Hive会加载整张表或分区,然后处理所有的rows, 但…
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 从Hive的官方wiki来看,Hive0.7以后增加了一个对表建立index的功能,想试下性能是否有很大提升,参考了一些资料亲手实现了一遍,记录下过程和心得 一.测试数据准备 1.新建一个gen-data.sh脚本,内容如下 #! /bin/bash #generating .7G raw data. i= ] do echo "$i A decade ago, many were predi…
create table index_tmp(id int,name string,dt string) row format delimited fields terminated by ',' stored as textfile; load data local inpath '/usr/local/hivelog/index.txt' into table index_tmp; partition模式为不严谨 set hive.exec.dynamic.partition.mode=no…
hive 有限的支持索引,不支持主键外键,可以对表添加索引,也可以为某个分区添加索引.维护索引也要额外的存储空间和计算资源. 创建索引需要指定索引处理器 如 as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' in table 用于指定索引存放的表 hive> create index ix_accid on table account(accid)  as 'org.apache.hadoop.hive.ql.ind…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 一.Hive Lateral ViewLateral View用于和UDTF函数(explode.split)结合来使用.首先通过UDTF函数拆分成多行,再将多行结果组合成一个支持别名的虚拟表.主要解决在select使用UDTF做查询过程中,查询只能包含单个UDTF,不能包含其他字段.以及多个UD…
Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同,比如,Hive不支持主键或者外键. Hive索引可以建立在表中的某些列上,以提升一些操作的效率,例如减少MapReduce任务中需要读取的数据块的数量. 在可以预见到分区数据非常庞大的情况下,索引常常是优于分区的. 博主我推荐各位博文们通过查阅Hive文档对Hive表的索引进行更深入的了解. 需要时刻记住的是,Hive并不像事物数据库那样针对个别的行来执行查询.更新.删除等操作.这些操作依赖高效的索引来实现高性能. Hive是一…
hive里的索引是什么? 索引是标准的数据库技术,hive 0.7版本之后支持索引.Hive提供有限的索引功能,这不像传统的关系型数据库那样有“键(key)”的概念,用户可以在某些列上创建索引来加速某些操作,给一个表创建的索引数据被保存在另外的表中. Hive的索引功能现在还相对较晚,提供的选项还较少.但是,索引被设计为可使用内置的可插拔的java代码来定制,用户可以扩展这个功能来满足自己的需求. 当然不是说有的查询都会受惠于Hive索引.用户可以使用EXPLAIN语法来分析HiveQL语句是否…
一.视图 1.1 简介 Hive 中的视图和RDBMS中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条SELECT语句的结果集.视图是纯粹的逻辑对象,没有关联的存储(Hive 3.0.0引入的物化视图除外),当查询引用视图时,Hive可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中. 1.2 创建视图 CREATE VIEW [IF NOT EXISTS] [db_name.]view_name -- 视图名称 [(column_name [COMMENT column_…
一.视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集.视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中. 1.2 创建视图 CREATE VIEW [IF NOT EXISTS] [db_name.]view_name -- 视图名称 [(column_name [COMMENT…
Hive的视图和索引 1.Hive Lateral View 1.基本介绍 ​ Lateral View用于和UDTF函数(explode.split)结合来使用. ​ 首先通过UDTF函数拆分成多行,再将多行结果组合成一个支持别名的虚拟表.主要解决在select使用UDTF做查询过程中,查询只能包含单个UDTF,不能包含其他字段.以及多个UDTF的问题. ​ 语法: ​ LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' c…
一.视图 1.1 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集.视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中. 1.2 创建视图 CREATE VIEW [IF NOT EXISTS] [db_name.]view_name -- 视图名称 [(column_name [COMMENT…
全文检索 位图索引 B 全文检索很少使用,如果产品上使用 大家可以用Lcunce这些应用如果非要在数据库做这个采用就把用一个全文检索索引 检索索引 不会像其他的索引创建一个对象他会创建十个相关的对象. 十张的其中一张表存在形式如下Dtaken_text token_last tokent_count是 1 1是一个 1 1我是 1 1我是一个 1 1通过形式就猜到冗余存储 如果表数据10M 索引表估计要50m 大家会想问like 会用全文索引 实际是不会的下面方法使用select * form…
1. Hive是什么 Hive是基于Hadoop的数据仓库解决方案.由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性. 这是来自官方的解释. 简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数据的统计和分析,而不必使用编程语言开发MapReduce那么麻烦. 先上一张经典的Hive架构图: Hive架构图 如…
由于spark on hive 问题,导致无法插入数据,暂时使用spark进行hive操作 向分区表插入数据 hive> show partitions customers;OKpartitioncity=beijingcity=shenzhenTime taken: 0.071 seconds, Fetched: 2 row(s) 查看HDFS: drwxr-xr-x   - root supergroup          0 2018-04-13 11:50 /user/hive/ware…
1. 将mysql的订单数据导入hive的分区表(桶.倾斜)[partition,bucket,skew] a> 在Hive中新建分区表 CREATE TABLE IF NOT EXISTS HelloHive.orders (customernumber int COMMENT 'customernumber in orders', #列注释 customername string, orderdate date, country string, state string) COMMENT '…
概述 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理.上一篇hive的安装也是将元数据信息存放在MySQL数据库中. Hive的元数据信息在MySQL数据中有57张表 一.存储Hive版本的元数据表(VERSION) VERSION   -- 查询版本信息 该表比较简单,但很重要. VER_ID SCHEMA_VERSION VERSION_COMMENT ID主键 Hive版本 版本说明 1 0.13.0 Set by MetaStore 如果该表出现问题…
概述 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理.上一篇hive的安装也是将元数据信息存放在MySQL数据库中. Hive的元数据信息在MySQL数据中有57张表 一.存储Hive版本的元数据表(VERSION) VERSION   -- 查询版本信息 该表比较简单,但很重要. VER_ID SCHEMA_VERSION VERSION_COMMENT ID主键 Hive版本 版本说明 1 2.3.0 Set by MetaStore 如果该表出现问题,…
转自:https://www.cnblogs.com/qingyunzong/p/8710356.html 概述 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理.上一篇hive的安装也是将元数据信息存放在MySQL数据库中. Hive的元数据信息在MySQL数据中有57张表   一.存储Hive版本的元数据表(VERSION) VERSION   -- 查询版本信息 该表比较简单,但很重要. VER_ID SCHEMA_VERSION VERSION_COM…
转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上的行业标准之一.   1  Hive基本原理 Hadoop是一个流行的开源框架,用来存储和处理商用硬件上的大规模数据集.对于HDFS上的海量日志而言,编写Mapreduce程序代码对于类似数据仓库的需求来说总是显得相对于难以维护和重用,Hive作为一种基于Hadoop的数据仓库解决方案应运而生,并得…
在前面的文章中,介绍了可以把Hive当成一个"数据库",它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table). 本文介绍一下Hive中的数据库(Database/Schema)和表(Table)的基础知识,由于篇幅原因,这里只是一些常用的.基础的. 二.Hive的数据库和表 先看一张草图: Hive结构 从图上可以看出,Hive作为一个"数据库",在结构上积极向传统数据库看齐,也分数据库(Schema),每个数据库下面有各自的表组…
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL 翻译:Google Google翻译,金山软件 金山词霸 校对:南大通用 范振勇 (2018.9.26) 一.概述 这里是HiveQL DDL语句的文档,其中包括: CREATE 数据库/SCHEMA,表…
本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala.SparkSQL.Hive等组件访问元数据库的理解. 1.存储Hive版本的元数据表(VERSION) 该表比较简单,但很重要. VER_ID SCHEMA_VERSION VERSION_COMMENT ID主键 Hive版本 版本说明 1 1.1.0 Set  by MetaStore 如果该表出现问题,根本进入不了Hive-Cli.比如该表不存在,当启动Hive-Cli时候,就会报错”Table ‘hive.version…
1. hive内部表和外部表的区别 未被external修饰的是内部表,被external修饰的为外部表. 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里):…
Hive--元数据表含义 1.VERSION   -- 查询版本信息   Field Type Comment   VER_ID bigint(20) ID主键   SCHEMA_VERSION varchar(127) Hive版本   VERSION_COMMENT varchar(255) 版本说明 2.DBS -- 存储Hive中所有数据库的基本信息   Field Type Comment   DB_ID bigint(20) 数据库ID   DESC varchar(4000) 数据…
概述 参加了新的公司新的工作新的环境之后,本人必须学习更多的知识,所以稳固之前的知识和学习新的知识是重中之重,新的公司把hadoop大部分的组件都进行了架构源码深度改造,所以使用过程确实遇到一些麻烦,而写这篇随笔的目的就是记录之前学习的知识,并且作为学习新的架构的基础.就是本文说的hive组件. HIVE架构 hive是建立在hadoop之上数据仓库基础架构,它提供了一系列的工具,可以用来进行数据提取转化加载ETL,这是一种可以存储.查询和分析存储在hadoop中的大规模数据机制.hive定义了…
从一个初级程序员到高级程序员的经历 你好!我是谦先生,我是茫茫程序猿中的一猿,平凡又执着. 刚入行的时候说实话,啥都不懂,就懂点皮毛的java,各种被虐狗的感觉.又写js又写css又写后台...慢慢被虐出来了-开始掌握一些好多前端框架比如jqury.jquery ui.easyui.datagrid.zTree.extjs.boostrap.echart...各种各样的(XoX),后端也因为外包的项目各种各样,主流的框架如struts2.hibernate.mybatis.spring都要熟悉使…
hadoop2-hive 1.What,Why,How? 1.Hive是数据仓库,在MySQL或其他关系型数据库中存放元数据信息,而把真正的Data存放在HDFS上面. 2.主要使用Hive来对历史数据进行分析. 3.方便非Java开发者(或者没有编程基础的人员),但是会SQL,他们使用SQL对数据进行分析 4.Hive会将SQL转化为MapReduce进行工作.读取在MySQL或其他关系型数据库中存放元数据信息,再读取HDFS中的数据信息进行处理. 2.安装 在安装和测试hive之前,我们需要…
索引是hive0.7之后才有的功能,创建索引需要评估其合理性,因为创建索引也是要磁盘空间,维护起来也是需要代价的 创建索引 hive> create index [index_studentid] on table student_3(studentid) > as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' > with deferred rebuild > IN TABLE index_table_…
hive也是支持索引的使用,但是如果表中已经有数据的情况下,创建索引的过程不是特别快. 已经拥有表: create table if not exists llcfpd_withgroupbykey(groupbykey string,lrp string,timestamp string,objid string,uid string) row format delimited fields terminated by ',' stored as textfile; 创建索引: create…