字段 新增hive_Hive分区表 | 每日五分钟学大数据

382b69274cb8a11d4acee3a1e05e71da.png

数据分区的一般概念存在已久。其可以有多种形式,但是通常使用分区来水平分散压力,将数据从物理上转移到和使用最频繁的用户更近的地方,以及实现其他目的。

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


>>  想学大数据?点击找老蒙!<<智能人工推荐:

从面试官的角度谈谈大数据面试  5fba18ee2530785cf9453f2eff672739.gif

你是否能被轻易地取代?

>>  点击查看更多觉得有价值请关注▼04ccf5f8d3dc6891e21106782c6c17fc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法设计与分析】14 分治算法的一般描述和分析方法

本文主要描述分治算法的一般描述和分析方法。衔接上一篇文章&#xff1a;【算法设计与分析】13 分治策略的设计思想 文章目录1 分治算法的一般性描述1.1 分支算法的时间分析1.2 两类常见的递推方程与求解方法2 总结1 分治算法的一般性描述 设分治算法为&#xff1a;Divide-and…

呼呗电销机器人_为什么企业销售电销都用电销外呼智能机器人

电销行业“痛点”明显&#xff0c;成为企业发展桎梏在电销企业中&#xff0c;运营成本占据了很大的资金比例&#xff0c;呼叫中心搭建和后期维护、销售人员的薪酬、培训、学习成本等都需要大量的投入&#xff0c;导致企业发展后劲不足。挂断、拒接常有&#xff0c;谁来拯救电销…

知识管理系统Data Solution研发日记之十二 网页数据抓取Fetch,呈现Render,导出Export...

这篇文章是对第四篇文章《知识管理系统Data Solution研发日记之四 片段式数据解决方案》的补充&#xff0c;提供一套完整的解决方案。请先阅读那一篇文章来了解它的原理。 Rule Editor抓取数据 这里&#xff0c;主要的工作是设定目标地址&#xff0c;正则表达式规则。我生活在深…

【算法设计与分析】15 分治策略:芯片测试

上一篇文章学习了【算法设计与分析】14 分治算法的一般描述和分析方法 文章目录1. 芯片测试1.1 一次测试的过程1.2 如何测试一块芯片的好坏1.3 蛮力算法1.4 分治算法设计思想1.41 分治算法的正确性证明1.42 时间复杂度分析2. 总结本篇文章借助具体的例子来学习分治策略。这个例…

批量 材质 调整_游戏图形批量渲染及优化:Unity静态合批技术

作者&#xff1a;枸杞忧天(本文首发于公众号“偶尔学学Unity”&#xff0c;文章仅为作者观点&#xff0c;不代表GWB立场)最近在准备公司的技术分享&#xff0c;主题是入门批量渲染&#xff0c;想着反正也总结了&#xff0c;不如充几篇博客吧&#xff0c;也算显得没有那么半途而…

【算法设计与分析】16 分治策略:快速排序(快速排序的时间复杂度计算)

上一篇文章学习了&#xff1a;【算法设计与分析】15 分治策略&#xff1a;芯片测试 文章目录1. 快速排序的基本思想1.2 时间复杂度的计算1.21 最坏情况时间复杂度计算1.22 最好情况时间复杂度1.23 平均时间复杂度计算2 总结1. 快速排序的基本思想 用首元素 x 作划分标准&#…

的run窗口不显示_「玩转deepin」如何安装VirtualBox增强功能使得deepin全屏显示?...

在Windows上通过Virtualbox安装deepin深度操作系统&#xff0c;安装完成后&#xff0c;为了让deepin可以在virtualbox中全屏显示&#xff0c;需要安装增强工具&#xff0c;但是不少同学点击安装增强工具后会出现无法安装的情况。在【设备】中点击【安装增强功能】时&#xff0c…

掘金浏览器插件安装图文教程

本文介绍如何安装掘金chrome插件&#xff1a; Chrome插件推荐 2018-02-27 21:53 chrome插件网近日推荐一款设计师开发人员人手必备的一款插件&#xff1a;掘金插件。有网友留言给笔者说希望整理出一套掘金插件详细的安装步骤。于是就有了今天的图文详解掘金插件安装步骤。第一…

【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

文章目录1 一条SQL查询语句是如何执行的2 mysql体系结构3 InnoDB存储引擎4 总结1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库&#xff0c;都是将数据库看成一个整体&#xff0c;我们的应用与数据库完全就是通过SQL语句进行交互。大多数开发者很少去了解数据库的内部实…

session实现机制_如何理解php session运行机制

php session运行机制就是客户端将session id传入到服务器中&#xff0c;服务器再根据session id找到对应的文件并将其反序列化得到session值&#xff0c;然后保存的时候先序列化再写入今天将要分享的知识点是PHP中的会话运行机制&#xff0c;对于熟悉PHP的开发者来说并不陌生&a…

【MySQL原理解析】01. 一条SQL查询语句是如何执行的

这是【MySQL原理解析】的第一篇文章&#xff0c;MySQL我看了很多的书与教程&#xff0c;对其原理有一定的理解&#xff0c;一直想写一系列的文章来把MySQL的原理给讲清楚&#xff0c;一直没有时间写&#xff0c;今天算是个开头吧。万事开头难&#xff0c;咱们先破了这个开头&am…

【转载】MOS开关(verilog)

MOS开关 一. MOS开关 1. NMOS 源极(d)接Gnd 一般情况下&#xff0c;可认为晶体管受栅极(g)电平VG的控制(control). 1). VGH&#xff0c;源极(s)与漏极(d)接通; 2). VGL&#xff0c;源极(s)与漏极(d)断开. 源极(s)与漏极(d)接通, 则漏极(d)被下拉到Gnd. 2. PMOS 源极(d)接VDD 1)…

【Linux进程、线程、任务调度】二 fork/vfork与写时拷贝 线程的本质 托孤 进程睡眠和等待队列

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交流资源…

用Log4Net来记录系统的日志信息

[http://www.cnblogs.com/xhwy/archive/2011/11/25/2263495.html] 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后&#xff0c;就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。 经验表明…

扩展插件_Adobe扩展工具插件系列

Adobe系列软件相信大家都已了解到其功能的强大&#xff0c;除了软件之外Adobe系列的插件的功能也是不可忽略的。今天给大家分享的几款Adobe系列超强PS扩展工具&#xff0c;都是一些摄影师、设计师经常用的到的&#xff0c;可以提升不少工作效率&#xff0c;大家千万别错过哦&am…

【Linux进程、线程、任务调度】三 CPU/IO消耗型进程 吞吐率/响应 SCHED_FIFO算法与SCHED_RR算法 SCHED_NORMAL算法和CFS算法 nice与renic chrt

学习交流加&#xff08;可免费帮忙下载CSDN资源&#xff09;&#xff1a;个人微信&#xff1a; liu1126137994学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff08;已满&#xff09;&#xff1a; 780902027学习交流资源…

Java学习之路整理-技术书从入门到进阶最全50+本(珍藏版 )

学习交流加 个人微信&#xff1a;LyyCoder学习交流资源分享qq群1&#xff08;已满&#xff09;&#xff1a; 962535112学习交流资源分享qq群2&#xff1a; 780902027一.速读一遍&#xff08;最好在1~2天内完成&#xff09; 人的大脑记忆力有限&#xff0c;在一天内快速看完一本…

问题 seata_架构设计 | 基于Seata中间件,微服务模式下事务管理

一、Seata简介1、Seata组件Seata是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式&#xff0c;为用户打造一站式的分布式解决方案。2、支持模式AT 模式基于支持本地 ACID 事务的关系型数…

程序员史诗级必读书单吐血整理四个维度系列80+本书(珍藏版)

互联网行业的特点是变化。若要提高互联网开发的技能&#xff0c;就必须跟上技术发展的步伐。埋首醉心于项目开发与实战&#xff0c;固然能够锤炼自己的开发技巧&#xff0c;却难免受限于经验与学识。 世界上并不存在速成的终南捷径&#xff0c;但阅读好的技术书籍&#xff0c;尤…

Quartus 中快速分配器件管脚

在quartus中分配器件管脚最笨的方法是对于器件手册一个一个的敲进去&#xff0c;这样做如果用到的管脚很好还没有发觉什么不好&#xff0c;但是当用到的器件管脚很多的时候就会发现很麻烦&#xff0c;而且容易出错。接下来我来介绍一种很方便的方法。 首先在txt文档中建立管脚和…