上篇文章中讲完了查询的相关操作,接下来就是视图与索引了,Hive中的视图的作用总的来说就是为了简化查询语句,是一个逻辑上的视图,而不是物化的视图。索引则是加快查询速度的比较重要的手段,之前的Mysql优化的文章中也讲到了索引的使用,感觉概念上和Mysql数据库中的操作基本上是相似的。

视图

创建这样的一个视图,高收入人群。

我试了下,这里的视图并不会帮我们进行存储视图所代表的查询语句所包含的数据的,这里可以认为他就是一个复杂的语句的简化,是一个逻辑的视图,而不是物化视图,这里好像并没有对效率进行提升。视图在这里是将Hive的行和列进行的固化,但是并没有对数据进行固化,那么当你删除掉表中的列的时候,会造成视图的错误。

创建视图语句

CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name = property_value, ...)]AS SELECT ...

创建视图

hive> > create view salaries_high as > select * from salaries_external where salary > 500000;OKTime taken: 1.227 secondshive> select * from salaries_high limit 10;Total jobs = 1Launching Job 1 out of 1Number of reduce tasks is set to 0 since there's no reduce operatorStarting Job = job_1475147088438_0007, Tracking URL = http://hadoopwy1:8088/proxy/application_1475147088438_0007/Kill Command = /usr/local/hadoop2/bin/hadoop job -kill job_1475147088438_0007Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 02016-09-29 05:37:02,617 Stage-1 map = 0%, reduce = 0%2016-09-29 05:37:10,092 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.46 secMapReduce Total cumulative CPU time: 1 seconds 460 msecEnded Job = job_1475147088438_0007MapReduce Jobs Launched:Job 0: Map: 1 Cumulative CPU: 1.46 sec HDFS Read: 4422 HDFS Write: 310 SUCCESSTotal MapReduce CPU Time Spent: 1 seconds 460 msecOK1985 BAL AL murraed02 1472819.01985 BAL AL lynnfr01 1090000.01985 BAL AL ripkeca01 800000.01985 BAL AL lacyle01 725000.01985 BAL AL flanami01 641667.01985 BAL AL boddimi01 625000.01985 BAL AL stewasa01 581250.01985 BAL AL martide01 560000.01985 BAL AL roeniga01 558333.01985 BAL AL mcgresc01 547143.0Time taken: 26.702 seconds, Fetched: 10 row(s)

删除视图

hive> drop view if exists salaries_high;OKTime taken: 1.043 seconds

索引

创建索引语句

CREATE INDEX index_name ON TABLE base_table_name (col_name, ...)AS 'index.handler.class.name'[WITH DEFERRED REBUILD][IDXPROPERTIES (property_name=property_value, ...)][IN TABLE index_table_name][PARTITIONED BY (col_name, ...)][ [ ROW FORMAT ...] STORED AS ... | STORED BY ...][LOCATION hdfs_path][TBLPROPERTIES (...)][COMMENT "index comment"]

创建一个索引

索引表的

hive> create index yearindex on table salaries_external(yearid) as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuild in table salaries_external_index;OKTime taken: 0.475 seconds

仅仅索引的

hive> create index index_test on table salaries_external(yearid) AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD ;OKTime taken: 0.278 seconds

查看索引

hive> > show index on salaries_external;OKyearindex salaries_external yearid salaries_external_index compactindex_test salaries_external yearid default__salaries_external_index_test__ compactTime taken: 0.077 seconds, Fetched: 2 row(s)

改变索引

hive> alter index index_test on salaries_external rebuild;Total jobs = 1Launching Job 1 out of 1Number of reduce tasks not specified. Estimated from input data size: 1In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=In order to limit the maximum number of reducers: set hive.exec.reducers.max=In order to set a constant number of reducers: set mapreduce.job.reduces=Starting Job = job_1475147088438_0009, Tracking URL = http://hadoopwy1:8088/proxy/application_1475147088438_0009/Kill Command = /usr/local/hadoop2/bin/hadoop job -kill job_1475147088438_0009Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 12016-09-29 06:44:34,287 Stage-1 map = 0%, reduce = 0%2016-09-29 06:45:02,611 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 2.2 sec2016-09-29 06:45:18,538 Stage-1 map = 100%, reduce = 100%, Cumulative CPU 3.85 secMapReduce Total cumulative CPU time: 3 seconds 850 msecEnded Job = job_1475147088438_0009Loading data to table default.default__salaries_external_index_test__rmr: DEPRECATED: Please use 'rm -r' instead.Deleted hdfs://hadoopnodeservice1/user/hive/warehouse/default__salaries_external_index_test__Table default.default__salaries_external_index_test__ stats: [numFiles=1, numRows=58, totalSize=321107, rawDataSize=321049]MapReduce Jobs Launched:Job 0: Map: 1 Reduce: 1 Cumulative CPU: 3.85 sec HDFS Read: 1354022 HDFS Write: 321214 SUCCESSTotal MapReduce CPU Time Spent: 3 seconds 850 msecOKTime taken: 58.187 seconds

删除索引

hive> > drop index index_test on salaries_external;OKTime taken: 0.188 secondshive> show index on salaries_external;OKyearindex salaries_external yearid salaries_external_index compactTime taken: 0.065 seconds, Fetched: 1 row(s)

mysql hive索引_Hive数据仓库--HiveQL视图和索引相关推荐

  1. Mysql第四天笔记04——视图和索引

    目录 1.为什么要使用视图 2.视图分类 3.创建视图 4.修改视图 5.视图上执行DML操作 6.索引 1.为什么要使用视图 限制其它用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分 ...

  2. oracle视图有索引么,Oracle 的视图与索引

    Oracle 的视图与索引 有表A(字段A1,A2)和表B(字段B1,B2). 字段A2,B2上都有索引. A,B 表联查 sql1 这个sql 非常快 2秒的样子 select * from A,B ...

  3. ubutun安装MySQL hive配置_Hive安装以及部署(Ubuntu-MySql)

    下载Hive安装包 http://hive.apache.org/downloads.html 根据需求下载相应的安装包解压安装 默认的数据存放路径hdfs:/user/hive/warehouse/ ...

  4. mysql数据库视图索引_MySQL数据库的视图、索引

    视图:根据某个实表查询出来的结果,而生成的一个虚表. 注意: 1.视图既然作为一张虚表存在,那么对实表的增删改查操作,视图同样成立. 2.视图既然根据实表得到,那对视图的增删改查操作,也会影响实表. ...

  5. mysql hive 数据类型_Hive数据类型

    本章介绍Hive不同的数据类型,用于创建表.Hive所有数据类型分为四种类型,给出如下: 列类型 文字 Null 值 复杂类型 列类型 列类型被用作Hive的列数据类型.它们如下: 整型 整型数据可以 ...

  6. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·011【视图和索引】

    文章目录 一.视图 1.介绍 2.作用 3.使用示例 4.视图上的DML操作 二.索引 1.介绍 2.作用 3.分类 4.创建 4.删除 5.验证 一.视图 1.介绍 视图是指计算机数据库中的视图,是 ...

  7. 2020.9.28(Hive视图、索引、权限管理)

    回顾:上节课讲了hive的参数设置,hive的运行方式,hive的动态分区,分桶,lateral view这五个知识点.遗留了两个问题: 1.看一下hive的源码,现在面试中,hive的源码还从来没有 ...

  8. Hive的视图和索引

    目录 一.Hive Lateral View 1.基本介绍 2.Hive表行转列,列转行以及Hive Lateral View在列转行中的使用 二.Hive视图 1.Hive视图基本介绍 2.Hive ...

  9. mysql内联表格使用索引_【求助】MYSQL表关联内联视图不走索引问题??诡异啊...

    首先声明: FACT_DATE_SALES_CI_INDEX 的DAY,DIM_ORG建有复合索引,同时FACT_DATE_SALES_FACT_DATE_SALES_F1表的RETAIL_SALES ...

最新文章

  1. 计算机中的机器码就是二进制数,高电单片机习题(答案)
  2. iOS开发 开发者证书申请及上架流程
  3. 安装matplotlib和cx_Freeze
  4. 【笔记】Hexo+Github博客网站搭建,初试环境搭建及Matery主题配置感受
  5. 前端学习(1665):前端系列实战课程之自定义右键菜单
  6. [转载] Controller报错:java.lang.NoSuchMethodException: java.util.List.<init>()
  7. 解决用户意外退出在线列表无法及时更新问题2(转载)
  8. 量化策略回测DCCV2
  9. mysql 8.0以上 新版本账号密码策略修改和密码修改
  10. id 和 class 选择器
  11. IEqualityComparerT
  12. 自动驾驶7-4 自动驾驶汽车简介全面总结 Congratulations on Completing Course 1
  13. LTE通讯相关2:频带、信道带宽和频点号EARFCN
  14. 王道数据结构代码笔记
  15. python怎么输出roc曲线_如何用Python绘制ROC曲线
  16. yii 进入后台 inex.php,PHP应用:Yii中实现处理前后台登录的新方法
  17. 【腾讯敏捷转型NO.1】敏捷是什么鬼?
  18. DBMS Implementation 笔记 04: Indexing
  19. 进程间各种通信方式的C++实现
  20. 蛊惑者马云发家史(曾推毛氏运动唐僧团队)二

热门文章

  1. js验证开始日期不能大于结束日期_js前台判断开始时间是否小于结束时间
  2. 设c语言中 一个int型数据库,最新真实全国二级C选择题真题第1套
  3. pc安装linux内核,PC/104平台嵌入式Linux系统核心定制方法
  4. P1038 神经网络(拓扑排序)
  5. 云效走进百所高校 让上千学生真正认识代码
  6. 升学在线如何从容应对流量高峰?
  7. 独家下载!Java工程师成神必备宝典
  8. 物联网Wi-Fi配网方式,你知道几种?
  9. 深度学习中反向传播得到的损失是一个标量
  10. pyecharts第三节、仪表盘