字段 新增hive_Hive分区表 | 每日五分钟学大数据
数据分区的一般概念存在已久。其可以有多种形式,但是通常使用分区来水平分散压力,将数据从物理上转移到和使用最频繁的用户更近的地方,以及实现其他目的。
Hive中有分区表的概念。我们可以看到分区表具有重要的性能优势,而且分区表还可以将数据以一种符合逻辑的方式进行组织,比如分层存储。
来看看这张分区表:
CREATE TABLE ods.ods_login(`uuid` string,`event` string,`time` string)partitioned by (dt string)
分区表改变了 Hive对数据存储的组织方式。如果我们是在ods库中创建的这个 表,那么对于这个表只会有一个ods_login目录与之对应:
hdfs://hadooopcluster/user/hive/warehouse/ods.db/ods_login
如果我们加一个分区
ALTER TABLE ods.ods_login add PARTITION (dt='2020-03-01');
那么存储路径会发生这样的变化
hdfs://hadoopcluster/user/hive/warehouse/ods.db/ods_login/dt=2020-03-01/
是的,分区名就是实际的目录名称。表下将会包含有零个文件或者多个文件,这些文件中存放着那些你新增的分区名称。
分区字段(这个例子中就是dt) 一旦创建好,表现得就和普通的字段一样。 事实上,除非需要优化查询性能,否则使用这些表的用户不需要关心这些“字段”是否是分区字段。
例如,下面这个查询语句将会查找出用户在2020-03-01的所有行为数据:
SELECT * FROM ods.ods_loginWHERE dt='2020-03-01'
需要注意的是,分区使这张表拥有了额外的一个时间字段,所以实际数据中可以省略类似含义的字段,避免冗余了。
对数据进行分区,最重要的原因就是为了更快地查询。在前面那个将结果范围限制在'2020-03-01'这一天的查询中,仅仅需要扫描一个目录下的内容即可。即使我们可能有好几百个目录,除了这一个目录其他的都可以忽略不计。对于非常大的数据集,分区可以显著地提高查询性能。
当我们在WHERE子句中增加谓词来按照分区值进行过滤时,这些谓词被称为分区过滤器。
为了避免查询的数据量太大,一个高度建议的安全措施就是将Hive 设置为“strict(严格)”模式,这样如果对分区表进行查询而WHERE子句没有加分区过滤的话,将会禁止提交这个任务。
用户也可以按照下面的语句将属性值设置为
hive> set hive.mapred.mode=strict;hive> SELECT * FROM ods.ods_login LIMIT 100;FAILED: Error in semantic analysis: No partition predicate found forAlias nen Table "ods.ods_login"
如果设置为nonstrict;则可以正常查询
hive> set hive.mapred.mode=nonstrict;hive> SELECT * FROM ods.ods_login LIMIT 100;aaa bbb ccc 2020-03-01
同时,可以通过SHOW PARTITIONS命令查看表中存在的所有分区:
hive> SHOW PARTITIONS ods.ods_logindt=2020-03-01
参考资料:
1.《Hive编程指南》
2. Hive官方wiki:
https://cwiki.apache.org/confluence/display/HIVE
>> 想学大数据?点击找老蒙!<<智能人工推荐:
从面试官的角度谈谈大数据面试
你是否能被轻易地取代?
>> 点击查看更多觉得有价值请关注▼
字段 新增hive_Hive分区表 | 每日五分钟学大数据相关推荐
- hive load data inpath 空目录_Hive内部表 | 每日五分钟学大数据
上一篇说的是外部表,当把EXTERNAL关键字去掉的时候就是内部表了.为什么叫内部表,因为这种表,Hive会(或多或少地)控制着数据的生命周期. 如果你熟悉Hive那你一定知道,Hive默认情况下会将 ...
- 五分钟学GIS | 倾斜摄影单体化技术
第二期的"五分钟学GIS | 倾斜摄影技术"专题之后,相信大家对倾斜摄影技术已经有了一个初步的认识,本期我们将深入讲解倾斜摄影单体化技术. 单体化技术的来源 在第二期专题中我们了解 ...
- 启程 - 《每日五分钟搞定大数据》
<每日五分钟搞定大数据>原创系列,每周不定期更新.欢迎关注公众号:大叔据 想了很久,准备开始写一系列的文章,记录这些年来的所得所想,感觉内容比较多不知从哪里开始,画了个思维导图确定了大 ...
- 五分钟学会python_关于五分钟学Python系列视频
Up主记得我们父母辈考大学的时候,外语,尤其是英语,是一个非常火爆的专业.那个时候会英语的人相对比较少,因此能掌握流利的英文听说读写的学生可以算是稀缺人才.现在虽然英语专业人才仍然有很大市场,但是整体 ...
- 五分钟学GIS | BIM与三维GIS的融合
今天五分钟学GIS的时间我们来学习BIM与三维GIS的融合. 什么是BIM? BIM:建筑信息模型(Building Information Modeling)或者建筑信息管理(Building In ...
- 「每日五分钟,玩转JVM」:JVM简介
聊聊JVM JVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别. JVM可以说和我们是老朋友 ...
- 五分钟学GIS | GIS服务器集群技术
今天五分钟学GIS的时间我们来学习GIS集群技术. 什么是GIS服务器集群 GIS服务器集群,是指将多个GIS服务器成群组,当有用户请求到达集群服务器时,集群服务器的父节点统一对GIS服务进行调配,使 ...
- 多层数组如何遍历_带你从零学大数据系列之Java篇---第五章:数组
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- 读《从0开始学大数据》-- 学习笔记和感想随笔(一)
主要记录阅读<从0开始学大数据>课程的学习笔记.课程系统性的介绍大数据的发展史.大数据系统的原理及架构.大数据生态体系中的主要产品.如何进行呢大数据开发实践.大数据平台开发及系统集成.使用 ...
最新文章
- 屠榜多目标跟踪!华科amp;港大提出ByteTrack:基于数据关联方法BYTE的跟踪器
- C语言配置文件解析库——iniparser
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- java web 开发技术大全 代码_Java Web开发技术大全
- r语言 fread函数参数_R语言 第4章 初级绘图(6)
- 服务器新手装备无限拿指令,【新手指南】服务器指令大全
- 诗与远方:无题(七十一)- 雨季来了
- QT5开发及实例学习之十八显示Qt5 SVG格式图片
- 开启和关闭oracle数据库中的审计功能
- 【软件工程导论】可行性研究
- rs232 linux驱动程序,rs232驱动,USB-RS232驱动程序安装说明
- 国家社科基金项目清单、申报书填写指南和课题申报书模板
- 数独解题程序的python实现_使用Python编写程序求解数独游戏答案
- java中POJO类为什么要实现序列化
- 多重选定怎么撤销_怎样取消电脑多重网络 - 卡饭网
- 通过英文剧集、电影学单词的小工具
- 「hdu6608」Fansblog 威尔逊定理
- ARM汇编之MOV指令
- SplitSR: An End-to-End Approach to Super-Resolution on Mobile Devices
- 碰撞检测中的K_DOPS算法的研究
热门文章
- spring mvc学习(15)Referenced file contains errors
- php什么设置前端代码,代码编辑器与PHPSTUDY的安装与配置过程(前端第一课)
- GIT提交的时候出现 ! [rejected] master -> master (non-fast-forward)错误
- CSS之Responsive设计的关键三步
- 中boxplot函数的参数设置_如何在Python中生成图形和图表
- pycharm的安装
- vue之watch用法
- SQL Server2014 SP2新增的数据库克隆功能
- 指针选择排序法,10个整数从小到大排序
- Java的堆与栈,科普给大家