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

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

hdu 1285(拓扑排序)

题意: 给各个队间的胜负关系,让排名次,名词相同按从小到大排。 解析: 拓扑排序是应用于有向无回路图(Direct Acyclic Graph,简称DAG)上的一种排序方式,对一个有向无回路图进行拓扑排序后,所有的顶点形成一个序列,对所有边(u,v),满足u 在v 的前面。该序列说明了顶点表示的事件或状态发生的整体顺序。比较经典的是在工程活动上,某些工程完成后,另一些工程才能继续,此时

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法