测试目的:
1.分区表的动态分区与静态分区
2.每层数据,数据流向,数据是否在每层都保留一份
测试结果:
1.动态分区/静态分区略
2.每层表的数据都会保留,因此在生产上odm层的数据是可以删除的(不管是内表还是外表)

数据源:
1,jack,shanghai,20190129
2,kevin,beijing,20190130
3,lucas,hangzhou,20190129
4,lily,hangzhou,20190130
1. 创建数据库
create database TestFenQu;

2. 创建源数据表(外表)
create external table TestFenQu.dept(
id int,
name string,
address string,
day string
)
row format delimited fields terminated by ',';
加载数据:
load data local inpath '/home/kong/test.dat' into table TestFenQu.dept;
3. 创建分区表1(外表)
create external table TestFenQu.dept_part(
id int,
name string,
address string
)partitioned by(day string) row format delimited fields terminated by ',';

静态分区加载数据:
//静态分区缺点:每次写入都要明确指定分区日期。
insert overwrite table TestFenQu.dept_part partition(day='20190129') select id,name,address from TestFenQu.dept where day='20190129';
//并且在查询处不能包含分区字段day,否则会报如下错误

动态分区加载数据:
// 自动识别分区,不需要明确指定
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert into table TestFenQu.dept_part partition(day) select id,name,address,day from TestFenQu.dept;

查询验证:
select * from TestFenQu.dept_part;
select * from TestFenQu.dept_part where day='20190129';
select * from TestFenQu.dept_part where day='20190130';
HDFS web界面验证
4. 创建分区表2(内表)
create table TestFenQu.dept_part_noExternal(
id int,
name string,
address string
)partitioned by(day string) row format delimited fields terminated by ',';

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert into table TestFenQu.dept_part_noExternal partition(day) select id,name,address,day from TestFenQu.dept;
查询验证:
select * from TestFenQu.dept_part_noExternal;
select * from TestFenQu.dept_part_noExternal where day='20190129';
select * from TestFenQu.dept_part_noExternal where day='20190130';
HDFS web界面验证

hive动态分区与静态分区的更多相关文章

  1. Hive分区(静态分区+动态分区)

    Hive分区的概念与传统关系型数据库分区不同. 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区. Hive的分区方式:由于Hive实 ...

  2. Hive中静态分区和动态分区总结

    目录 背景 第一部分 静态分区 第二部分 动态分区 第三部分 两者的比较 第四部分 动态分区使用的问题 参考文献及资料 背景 在Hive中有两种类型的分区:静态分区(Static Partitioni ...

  3. 什么是hive的静态分区和动态分区,它们又有什么区别呢?hive动态分区详解

    面试官问我,什么是hive的静态分区和动态分区,这题我会呀. 简述 分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列. 这样查询时使用分区列进行过滤,只需根据列值直 ...

  4. hive 动态分区与混合分区

    hive的分区概念,相信大家都非常了解了.通过将数据放在hdfs不同的文件目录下,查表时,只扫描对应分区下的数据,避免了全表扫描. 提升了查询效率. 关于hive分区,我们还会用到多级分区.动态分区. ...

  5. hive SQL 静态分区和 动态分区

    Hive 分区介绍: hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition) hive中创建分区表没 ...

  6. Hive静态分区和动态分区

    一.静态分区 1.创建分区表 hive (default)> create table order_mulit_partition( > order_number string, > ...

  7. hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)

    一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...

  8. Hive的静态分区和动态分区

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6831884.html 转载请注明出处 虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结 ...

  9. Hive静态分区和动态分区,对应Mysql中的元数据信息

    静态分区: 手动指定分区加载数据,就是常说的静态分区的使用.但是在日常工作中用的比较多的是动态分区. 创建: hive> create table order_mulit_partition( ...

随机推荐

  1. sql server 2382端口问题

    前两天在微软下载了官方示例数据库AdventureWorksDW2008R2及它的OLAP项目:AdventureWorks 2008R2 Analysis Services Project < ...

  2. 跟着大彬读源码 - Redis 5 - 对象和数据类型(上)

    相信很多人应该都知道 Redis 有五种数据类型:字符串.列表.哈希.集合和有序集合.但这五种数据类型是什么含义?Redis 的数据又是怎样存储的?今天我们一起来认识下 Redis 这五种数据结构的含 ...

  3. Android - ScrollView 使用小计 里面嵌套的View 如何设置全屏

    设置ScrollView的属性android:fillViewport="true" 即可 <?xml version="1.0" encoding=&q ...

  4. ieda使用 在jsp页面中,有时候会出现不能智能显示方法 idea pageContext.setAttribute

    idea使用,出现问题记录: 就比如在 pageContext.setAttribute("user",u);这句打pageContext会智能提示, 但是后面的setAttrib ...

  5. MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!

    有一些小伙伴觉得 MyBatis 只有方法中存在多个参数的时候,才需要添加 @Param 注解,其实这个理解是不准确的.即使 MyBatis 方法只有一个参数,也可能会用到 @Param 注解. 但是 ...

  6. Spark Week1 HomeWork

    package wikipedia import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org. ...

  7. ThinkPHP 入门

    ThinkPHP是一个免费.开源的,快速.简单地面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷Web应用开发和简化企业级应用开发而诞生的.ThinkPHP借鉴国外很多优秀的 ...

  8. 《VR入门系列教程》之3---运动追踪与输入设备

    运动追踪设备    第二种可以使人脑相信它真实处于虚拟世界的关键技术就是运动追踪技术,它可以通过追踪头部的运动状态实时更新渲染的场景.这与我们在真实世界中观看周围非常类似.    高速的惯性测量单元( ...

  9. C#编程.面向对象编程.可删除对象(Using{})

    Using关键字可以在代码块中初始化使用重要资源的对象,Dispose()方法会在这个代码块的末尾自动调用,用法如下: <ClassName> <VariableName> = ...

  10. [Abp vNext 源码分析] - 6. DDD 的应用层支持 (应用服务)

    一.简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块. PS:最近博主也是在恶补 DDD 相关的知识,这里推 ...