Hive的严格模式,动态分区,排序,事务,调优

2024-05-13 12:38

本文主要是介绍Hive的严格模式,动态分区,排序,事务,调优,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

.Hive的严格模式

Hive提供了一个严格模式,可以防止用户执行那些产生意想不到的不好的影响的查询。

想想看在那么大的数据量的前提下,如果我们在分区上表上使用查找所有,或是使用了笛卡尔积查询数据等等不良情况,那得花费我们多少时间和资源成本,Hive在默认情况下会开启一种模式,叫做严格模式,来限制我们这些不良操作。

其中在hive-site.xml的配置文件中,设置了属性来进行全局的配置

对于全局的配置,我们可以修改这些属性,也可以采用临时会话的形式,使用set 属性=值的形式来进行修改,只不过只在当前会话有效。

使用了严格模式之后主要对以下3种不良操作进行控制:

1.分区表必须指定分区进行查询。
2.order by时必须使用limit子句。

3.不允许笛卡尔积。

2.Hive的动态分区

之前我们介绍过了分区表,并且查看了分区表的存储结构(分区表是目录),并且像分区表里面存储了数据。我们在进行存储数据的时候,都是明确的指定了分区。在这个过程中Hive也提供了一种比较任性化的操作,就是动态分区,不需要我们指定分区目录,Hive能够把数据进行动态的分发,例如2018年的数据,就让他进入2018年分区目录下,2017年的数据,就让他进入2017的目录下。使用动态分区的时候,我们需要将当前的严格模式设置成非严格模式,否则不允许使用动态分区

$hive>set hive.exec.dynamic.partition.mode=nonstrict//设置非严格模式

//设置动态分区的语法如下所示:

 

$hive>insert into t5 partition(country,province) select (包含分区的字段信息就可以) from orders;

//用到的相关的表

hive> CREATE TABLE t5(id int,price int) PARTITIONED BY (country string, province string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;

这篇关于Hive的严格模式,动态分区,排序,事务,调优的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985729

相关文章

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

Python中lambda排序的六种方法

《Python中lambda排序的六种方法》本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1.对单个变量进行排序2. 对多个变量进行排序3. 降序排列4. 单独降序1.对单个变量进行排序

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math