Hive 动态分区恢复静态分区表数据

HIVE的数据模型 Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型: 内部表(Table) 外部表(External Table) 分区(Partition) 桶(Bucket)。 一.内部表 Table 将数据保存到Hive 自己的数据仓库目录中:/usr/hive/warehouse 每一个Table在Hive中数据仓库目录下都有一个相应... 阅读详情

 

在企业上使用 Hive 进行离线批量数据统计时,有时会遇到 Oozie 工作流调度失败,导致很多 ptdate 时间分区没有数据,可以通过 Hive 创建临时表存储所有缺失的ptdate时间分区数据,然后通过Hive动态分区查询临时表导入数据至最终统计结果表中。

 

一、在正式介绍 Hive 动态分区恢复静态分区表数据时,先介绍一下 hive load 导入数据的用法

 

hive load 用法:

(1)从本地加载文件中的数据并覆盖至表 lake_bg_ods.bigdata_test_20190905 中

load data local inpath '/home/bigdata/bigdata_test_20190905.txt'

overwrite table lake_bg_dm.bigdata_test_20190905;

 

(2)从HDFS上加载文件中的数据并追加至表 lake_bg_ods.bigdata_test_20190905 中

load data inpath '/home/bigdata/bigdata_test_20190905.txt'

into table lake_bg_dm.bigdata_test_20190905;

 

备注:

关键字 local 不加,数据从HDFS上加载;如果加 local ,数据从本地加载。

关键字 overwrite 为覆盖加载,会覆盖掉原有的数据; into 为 文件末尾追加数据,不会覆盖掉原有的数据。

 

 

 

二、Hive 动态分区恢复静态分区表数据

SET hive.exec.dynamic.partition=true;    --(默认false),表示开启动态分区功能
SET hive.exec.dynamic.partition.mode=nonstrict;   -- (默认strict),表示允许所有分区都是动态的,否则必须有静态分区字段

--每个maper或reducer可以允许创建的最大动态分区个数,默认是100,超出则会报错

SET hive.exec.max.dynamic.partitions.pernode = 1000;   

 

-- 一个动态分区语句可以创建的最大动态分区个数,超出报错
SET hive.exec.max.dynamic.partitions=1000;

insert overwrite table lake_bg_dm.bigdata_test_20190905 partition(ptdate= ${ptdate}) --手动分区
select * from lake_bg_edw.bsl_bigdata_tmp;

insert into table lake_bg_dm.bigdata_test_20190905 partition(ptdate= ${ptdate}) --手动分区
select * from lake_bg_edw.bsl_bigdata_tmp;


insert overwrite lake_bg_dm.bigdata_test_20190905

partition(ptdate= ${ptdate}) --动态分区
select *, ptdate from lake_bg_edw.bsl_bigdata_tmp;

 

insert overwrite 会覆盖表或分区中已存在的数据
insert into 以追加数据的方式插入到表或分区,原有数据不会删除
insert 可以插入表或分区,如果表是分区表,则 insert 时需要指定插入到哪个分区
 

 

 

 

 

 

 

 

 

 

 

70道Hive面试八股文(答案、分析和深入提问)整理 每种保存元数据的方式都有其适用场景和特点,用户可以根据数据规模、并发需求、性能要求及技术栈来选择合适的元数据存储方案。在生产环境中,通常推荐使用外部的关系型数据库,以提高整体的性能与稳定性。静态分区适合固定、少量的分区场景,使用上更简单,但灵活性不足。动态分区适合频繁变动或数据量大的场景,具备灵活性,但需要额外的配置与处理。选择哪种分区方式,应根据具体应用场景和数据特性来决定。:每一行都有唯一的编号。RANK():相同的值共享相同的排名,后续排名跳过相应数量。 阅读详情

相关推荐

hive系列 (二):hive基础知识(持续更新中~~)

hive基础知识,包含建库,建表,内部表,外部表,表分区,桶表等

Eric Ray的博客 2215

HIVE创建动态和静态分区表

Permission denied: user=anonymous, access=WRITE, inode="/user/anonymous":hdfs:supergroup:drwxr-xr-x

weixin_38168947的博客jAbP)aWAuNkA 2954

Hive动态分区优化实践与性能调优指南

在大数据生态系统中,分区技术是提升查询效率的核心机制,其原理是通过将数据物理隔离到不同目录实现查询裁剪。Hive动态分区作为自动化分区管理方案,虽然简化了ETL流程,但会面临元数据膨胀、小文件泛滥等典型问题。通过合理配置hive.exec.dynamic.partition等参数组合,结合Tez引擎的并行度控制,可有效解决金融、电商等场景下的数据倾斜问题。实践表明,配合Hudi的增量更新机制或采用分层分区策略,能使TB级数据加载时间从6小时压缩至40分钟,显著提升数据仓库的吞吐能力。

weixin_34356555的博客 363

SQL 学习技巧

1、表格自联结,内存大,带不懂,可以用窗口函数 ,LEAD(a,b,c)over(partitionbyxxxorderbyxxx)--用于统计往下第b行a值,若无用c代替 ,LAG(a,b,c)over(partitionbyxxxorderbyxxx)--用于统计往上第b行a值,若无用c代替 例如:lead() over(partition by order by )与lag() over(partition by order by )的用法_u0112501...

weixin_42411411的博客 642

【大数据入门核心技术-Hive】(十一)HiveSQL数据分区

分区是以字段的形式在表结构中存在,通过describe table命令可以查看到字段存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。您可能确实定义了列。--指定动态分区模式,默认为strict,即必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。我需要做一个快照表,每天凌晨把所有订单的状态做一个快照,但是数据量比较大,除了按天分区外,我还想根据状态进行分区,此时我们可以将两种分区混合使用。多分区虽然会产生比较多的文件,如果数据量不大的情况下,谨慎使用。

626

糖尿病预测(深度学习pytorch实现-最新)

本次做的项目是糖尿病的预测,也是来自kaggle上面的一个小项目。根据一个人的怀孕次数、血糖、血压、皮肤厚度、胰岛素指标、身体质量指数、糖尿病谱系指数、年龄等身体参数来预测一个人是否患有糖尿病。

NangoGreen的博客 5358

hive分区表之insert overwrite 注意事项

比如跑上月的数据最开始有44条记录,后面业务说不对,应该一条都没有的,结果你重跑了,确实跑出了0条记录,但是你插入的时候就是不能覆盖。所以这里有个注意事项!如果我们建立了一个分区表,如果每个月都要更新数据,不要因为省事就是用动态分区插入。但是今天遇到一个问题,如果我查询的数据=0,那么数据还会覆盖么?直接插入分区的,分区都没了。前者是指定分区,后者是动态分区。动态分区插入的 没有影响。以往我们插入分区 需要。

cclovezbf的博客 4381

最佳量化交易的计算机操作系统

本文在Creative Commons许可证下发布   我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?   我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,...

evilqliang的博客 2306

使用sparksql insert overwrite插入hive分区导致所有分区被删

使用sparksql insert overwrite插入hive分区导致所有分区被删 简单记录一下,防止踩坑。 hive.exec.dynamic.partition=true hive.exec.dynamic.partition.mode=nonstrict 开启这两个参数,进行动态插入分区表: insert overwrite table tablename partition(part_col) 1.这种方式在2.3之前,只会修改查询结果的分区,没什么问题。 2.但是如果在2.3之后,spark会

weixin_40981792的博客 5120

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 489

UFS 功能描述:UFS boot

UFS 启动过程介绍:启动配置,启动代码下载过程和安全性

m0_51720747的博客 1601

hive overwrite into不会删除旧文件的一种情况

hive overwrite into不会删除旧文件的一种情况近期工作中发现一个hive overwrite into table的一个bug,如下 近期工作中发现一个hive overwrite into table的一个bug,如下 1、创建两张表,指定同一目录 1.1 创建表aaa: use tmp; drop table tmp.aaa; CREATE EXTERNAL TABLE tmp.aaa( id string comment ‘id’ ) comment

u012996750的博客 3835

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 295

大数据开发之Hive篇19-Hive分区表详解

备注: Hive 版本 2.1.1 文章目录一.Hive分区表概述二.静态分区2.1 单分区测试2.2 多分区测试三.动态分区3.1 动态分区测试3.2 动态分区和静态分区混合使用四.分区的其它操作4.1 恢复分区4.2 归档分区4.3 交换分区参考 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。

只是甲的博客 2191

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 120

111. 如何创建 SAP ABAP 锁对象(Lock Object)和加锁以及解锁函数

至此,我们完成了 ABAP 系统锁机制和加锁解锁函数的介绍。有了这些基础知识,大家就能在实际工作中,使用 Lock Object 和加锁解锁函数,编写出支持并发访问控制的 ABAP 应用程序了。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1533

记录一次生产Hive表数据恢复过程

写在前面 有一张离线同步用到的表 源表新增了一个字段,所以对应的ods的表也要相应改变。 这张 表比较特殊,源表数据后端自己维护,只会保留最近几天的数据,对于历史数据是按天分区存放在ods的,所以对于历史数据的查询只能到数仓才行。目前ods的历史数据累计大于3亿多条。 公司一个小伙伴在做的时候,一开始不清楚这一点,然后直接把源表给干掉了,源表其实还是使用的外部表,他也直接把HDFS上的文件直接给删除了,然后重建了新的表。然后重新同步了数据,任务也能成功,但就是历史数据也没啦,呜呜呜~~ 这里其实有一个点:如

留歌__36的博客 1441

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 491

Hive数仓

内部表数据存储的位置是hive.metastore.warehouse.dir,如果创建内部表时没有指定location,就会在/user/hive/warehouse/下新建一个表目录。数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源。如果我们创建一个外部表,在删除表之后,只有与表相关的元数据被删除,而不会删除表的内容。特点:在内部表被删除后,表的元数据和表数据都从HDFS中完全删除。内部表,也叫托管表,是Hive在创建表时的默认表。

guoguopython的博客 897

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spark动态分区写入数据卡死metastore源码分析

在一个周五的18点10分,突然收到大量任务告警信息,离线平台的所有Spark任务都无法执行,报错信息显示无法连接Hive MetaStore,登陆Hive MetaStore机器查看日志,大量的get_table和get_partition报错信息,查看metatore机器的内存使用率也正常,对应的数据库也没有大查询阻塞,因此一时间也无法定位具体问题原因,只能先将metastore重启。重启后任务陆续重启,重启后可以正常执行,但是到19点26,metastore再次进入卡死状态。

Sword_Zhao的博客 845

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

oracle 导入hive 分区表,一起学Hive——创建内部表、外部表、分区表和分桶表及导入数据...

Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件。根据数据的不同存储方式,将Hive表分为外部表、内部表、分区表和分桶表四种数据模型。每种数据模型各有优缺点。通过create user命令创建user表时,会在HDFS中生成一个user目录/文件。外部表数据不由Hive管理,使用drop命令删除一个表时,只是把表的元数据给删除了,而表的数据不会删除...

weixin_36418921的博客 368

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

一起学Hive——创建内部表、外部表、分区表和分桶表及导入数据

Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件。根据数据的不同存储方式,将Hive表分为外部表、内部表、分区表和分桶表四种数据模型。每种数据模型各有优缺点。通过create user命令创建user表时,会在HDFS中生成一个user目录/文件。 外部表 数据不由Hive管理,使用drop命令删除一个表时,只是把表的元数据给删除了,而表的数据不会...

ahilll的博客 3183

Hive分区表实战

@2018-03-13 1. Hive分区表 2. 静态分区 应用场景1 应用场景2 应用场景3 2. 动态分区 应用场景1 应用场景2 应用场景3 3. 修改分区 1. 添加分区 2. 重命名 3. 交换分区 4. 恢复分区 5. 删除分区 1. Hive分区表 Partition和Bucket,为了提升查询效率,前者是粗粒度的划分,后者是细粒度的划分。 建表...

静下心来好好学习 2341

hive创建不同的表(内部,外部,分区,分桶)

Hive本身并不存储数据,而是将数据存储在Hadoop的HDFS中,表名对应HDFS中的目录/文件。根据数据的不同存储方式,将Hive表分为外部表、内部表、分区表和分桶表四种数据模型。每种数据模型各有优缺点。通过create user命令创建user表时,会在HDFS中生成一个user目录/文件。 外部表 数据不由Hive管理,使用drop命令删除一个表时,只是把表的元数据给删除了,而表的数据不会删除。 创建外部表的SQL语句: create external table bigdata17_user( u

lucklydog123的博客 593

掌握Hive:从入门到精通的知识总结

Hive知识点较为全面的总结

weixin_62075640的博客 1375

【Hive】四、Hive SQL语法:Hive 数据库 / 表的 DDL(建库、建表、内外部表、分区、分桶、CTAS)以及 DQL 查询语法(SELECT、WHERE、GROUP BY、排序、JOIN

系统梳理 Hive 数据库 / 表的 DDL(建库、建表、内外部表、分区、分桶、CTAS)以及 DQL 查询语法(SELECT、WHERE、GROUP BY、各种排序、JOIN、UNION 等)

qq_46126258的博客 311
上一篇: Linux常见命令
下一篇: Hive 动态分区使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走的数据智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值