我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Hive的静态分区与动态分区的区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Hive的静态分区与动态分区的区别

本篇内容介绍了“Hive的静态分区与动态分区的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  1. 静态分区:若分区的值是确定的,那么称为静态分区。新增分区或者是加载分区数据时,已经指定分区名。

  create table if not exists day_part1(

  uid int,

  uname string

  )

  partitioned by(year int,month int)

  row format delimited fields terminated by '\t';

  ##加载数据指定分区

  load data local inpath '/root/Desktop/student.txt' into table day_part1

partition(year=2017,month=04);

  ##新增分区指定分区名

  alter table day_part1 add partition(year=2017,month=1)

partition(year=2016,month=12);

  2. 动态分区:分区的值是非确定的,由输入数据来确定

  2.1 动态分区的相关属性:

  hive.exec.dynamic.partition=true :是否允许动态分区

  hive.exec.dynamic.partition.mode=strict :分区模式设置

  strict:最少需要有一个是静态分区

  nostrict:可以全部是动态分区

  hive.exec.max.dynamic.partitions=1000 :允许动态分区的最大数量

  hive.exec.max.dynamic.partitions.pernode =100

:单个节点上的mapper/reducer允许创建的最大分区

  2.2 动态分区的操作

  ##创建临时表

  create table if not exists tmp

  (uid int,

  commentid bigint,

  recommentid bigint,

  year int,

  month int,

  day int)

  row format delimited fields terminated by '\t';

  ##加载数据

  load data local inpath '/root/Desktop/comm' into table tmp;

  ##创建动态分区表

  create table if not exists dyp1

  (uid int,

  commentid bigint,

  recommentid bigint)

  partitioned by(year int,month int,day int)

  row format delimited fields terminated by '\t';

  ##严格模式

  insert into table dyp1 partition(year=2016,month,day)

  select uid,commentid,recommentid,month,day from tmp;

  ##非严格模式

  ##设置非严格模式动态分区

  set hive.exec.dynamic.partition.mode=nostrict;

  ##创建动态分区表

  create table if not exists dyp2

  (uid int,

  commentid bigint,

  recommentid bigint)

  partitioned by(year int,month int,day int)

  row format delimited fields terminated by '\t';

  ##为非严格模式动态分区加载数据

  insert into table dyp2 partition(year,month,day)

  select uid,commentid,recommentid,year,month,day from tmp;

  3.分区注意细节

  (1)、尽量不要用动态分区,因为动态分区的时候,将会为每一个分区分配reducer数量,当分区数量多的时候,reducer数量将会增加,对服务器是一种灾难。

  (2)、动态分区和静态分区的区别,静态分区不管有没有数据都将会创建该分区,动态分区是有结果集将创建,否则不创建。

  (3)、hive动态分区的严格模式和hive提供的hive.mapred.mode的严格模式。

  hive提供我们一个严格模式:为了阻止用户不小心提交恶意hql

  hive.mapred.mode=nostrict : strict

  如果该模式值为strict,将会阻止以下三种查询:

  (1)、对分区表查询,where中过滤字段不是分区字段。

  (2)、笛卡尔积join查询,join查询语句,不带on条件或者where条件。

  (3)、对order by查询,有order by的查询不带limit语句。

“Hive的静态分区与动态分区的区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Hive的静态分区与动态分区的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Hive的静态分区与动态分区的区别

本篇内容介绍了“Hive的静态分区与动态分区的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1. 静态分区:若分区的值是确定的,那么
2023-06-02

Hive中的动态分区和静态分区的区别

Hive中的动态分区和静态分区是两种不同的分区方式,它们的区别在于分区的创建和管理方式。静态分区:静态分区是在创建表时就定义好的固定分区,分区的值是确定的,无法动态改变。静态分区需要在创建表时手动指定分区的值,例如创建一个静态分区表时,需要
Hive中的动态分区和静态分区的区别
2024-03-12

Hive中静态分区与动态分区的示例分析

这篇文章给大家分享的是有关Hive中静态分区与动态分区的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行
2023-06-02

静态SQL和动态SQL的区别

静态SQL静态SQL是指那些固定的、可以硬编码到应用程序中的SQL语句。由于静态sql是固定的查询,这些语句可以被分析和优化,不需要出于安全目的进行任何特殊处理。动态SQL动态SQL是指那些不存在的SQL语句。根据用户的输入动态生成并在应用
2023-10-22

ios动态库和静态库的区别

目录一、什么是库?二、静态库和动态库的好处使用静态库的好处:动态库使用有如下好处:三、iOS里静态库和动态库形式?四、framework为什么既是静态库又是动态库?五、a与.framework有什么区别?六、为什么要使用静态库?七、制作静态
2022-05-22

java中静态属性与动态属性的区别

为什么static不用创建对象就可以被调用?在未创建对象之前,所有静态属性或方法都放在元数据区里,静态的可通过类名调用。例如:public class Cat{ public static String name;//静态的,不创建对象都存在 pu
java中静态属性与动态属性的区别
2020-07-14

动态和静态ip有什么区别

小编给大家分享一下动态和静态ip有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、区分动态IP因特网,也叫DHCP因特网。IP互联网自动获取。这种互联网
2023-06-15

java中静态方法与非静态方法的区别

静态方法与静态成员变量一样,属于类本身,在类装载的时候被装载到内存中,不自动进行销毁,会一直存在内存中,直到JVM关闭。非静态方法又称实例化方法,属于实例对象,实例化之后才会分配内存,必须通过类的实例来引用,当实例对象被JVM回收之后,也跟着消失。区别:首先,
java中静态方法与非静态方法的区别
2018-06-09

Hive中动态轮换分区指的是什么

在Hive中,动态轮换分区是一种机制,用于在数据加载时自动将数据分发到不同的分区中。这种机制可以使数据加载的过程更加高效和灵活,不需要手动指定数据应该存储在哪个分区中,而是根据数据中的特定字段值动态确定数据应该存储在哪个分区中。这样可以更好
Hive中动态轮换分区指的是什么
2024-03-14

JAVA中静态代理与动态代理的区别有哪些

这期内容当中小编将会给大家带来有关JAVA中静态代理与动态代理的区别有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代理模式是java中最常用的设计模式之一,尤其是在spring框架中广泛应用。对于j
2023-05-31

网页开发中静态资源与动态资源的区别

静态资源和动态资源的区别:1、内容变化的区别;2、处理方式的区别;3、应用场景的区别;静态资源通常是预先创建好的,其内容在服务器启动后就已经确定,不会因为用户的请求而改变。动态资源的内容则是在接收到用户请求后,由服务器根据请求的参数动态生成的。
网页开发中静态资源与动态资源的区别
2023-10-29

动态库和静态库有什么区别

这篇文章主要介绍“动态库和静态库有什么区别”,在日常操作中,相信很多人在动态库和静态库有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”动态库和静态库有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-20

java动态和静态语言的区别是什么

今天就跟大家聊聊有关java动态和静态语言的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、动态语言在运行中可以改变结构的语言。例如,新函数、对象、代码可以引进,现有函数
2023-06-15

C#静态变量和非静态变量的区别

本篇内容介绍了“C#静态变量和非静态变量的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#基础概念之一,静态变量和非静态变量的区别?静
2023-06-18

动态网站和静态网站的区别有哪些

这篇文章主要讲解了“动态网站和静态网站的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“动态网站和静态网站的区别有哪些”吧!网站SEO优化优哪种网站更利于优化呢?静态网页是相对于动态
2023-06-10

linux中动态库和静态库的区别有哪些

这篇文章将为大家详细讲解有关linux中动态库和静态库的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;动态库在程序
2023-06-25

vps动态ip和静态ip有什么区别

vps动态ip和静态IP的区别:vps动态ip在连接网络时会自动获取IP地址以供用户正常上网,而静态ip是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址。具体内容如下:1、动态IP由于IP地址资源很宝贵,因此大部分
2023-02-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录