如何将 Hive 数据按分区归档到 OSS | 学习笔记

简介: 快速学习如何将 Hive 数据按分区归档到 OSS。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲如何将 Hive 数据按分区归档到 OSS】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/833/detail/13964


如何将 Hive 数据按分区归档到 OSS


内容介绍

一、背景/具体功能介绍

二、实现原理详解

三、使用实例


一、背景/具体功能介绍

传统集群架构

• 存储计算一体

• 存储量与计算量无法始终匹配

• 存储无法水平扩展

• 存储与计算竞争硬盘资源1.png

存储分层架构

• 计算资源动态伸缩

• 存储资源使用云存储作为 HDFS 的替代或补充

• 相比存算分离架构,对于已有 HDFS 数据比较平滑,可以逐渐过渡到存算分离架构2.png

数据仓库

• 数据仓库是大数据的典型场景

• 每天的 ETL 作业新增大量数据

• Hive 支持分区表,使用分区可以快速裁剪数据

• Hive 数仓中大量 Hive 表以时间日期作为分区字段

• 在数仓中很多表的较老的日期分区平常一般不会被访问,可以考虑把这部分数据移出 HDFS

• Hive 的每个分区都有自己的 storagedescriptor,可以有单独的存储路径

分区表的结构

partitionedtablexx

• dt=2021-05-16/category=1/

• dt=2021-05-16/category=2/

• dt=2021-05-16/category=5/

• dt=2021-05-16/category=8/

• dt=2021-05-15/category=2/

• dt=2021-05-15/category=3/

• dt=2021-05-15/category=4/

• ……

使用 JindoTable 按分区归档数据

在本地盘机型上,HDFS 可以提供较好的性能,对集群已有存储空间也能较好利用.

一般情况下用不到的数据移动到 OSS,释放集群存储空间,减小 NameNode 压力.

需要读取这部分数据时,也可以直接从 OSS 读取,不影响上层作业.

每天 ETL 完成后可以移动数据.


二、实现原理详解

• Jindodistcp 作为底层工具

• 使用 jindodistcp 事务模式

• 使用 HDFS 文件锁保证同一时间每个分区只有一个作业在操作

• 先修改分区元数据再清理 hdfs 数据确保数据可用


三、使用实例

参数     说明

要移动的表

目标路径,为表级别的路径,分区路径会在这个路径下自动创建

分区过滤条件表达式,支持基本运算符,不支持udf.

根据分区创建时间,创建时间超过给定天数的分区进行移动

整个moveTo任务的最大task并发度,默认为1

-o/-overWrite 是否覆盖最终目录。分区级别覆盖,不会覆盖本次移动不涉及的分区

-r/-removeSource 是否在移动完成后删除源路径

本地日志目录,默认为/tmp//

-e/-explain 如果指定explain模式,不会触发实际操作,仅打印会同步的分区

• 数据准备

• 移动分区字段 ds 大于 ‘b’的分区3.png

• 检查移动后的分区情况4.png

 

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
248 4
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
367 3
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
204 2
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
338 0
|
SQL 存储 HIVE
hive分区与分桶
hive分区与分桶
520 1
|
SQL 物联网 数据处理
"颠覆传统,Hive SQL与Flink激情碰撞!解锁流批一体数据处理新纪元,让数据决策力瞬间爆表,你准备好了吗?"
【8月更文挑战第9天】数据时代,实时性和准确性至关重要。传统上,批处理与流处理各司其职,但Apache Flink打破了这一界限,尤其Flink与Hive SQL的结合,开创了流批一体的数据处理新时代。这不仅简化了数据处理流程,还极大提升了效率和灵活性。例如,通过Flink SQL,可以轻松实现流数据与批数据的融合分析,无需在两者间切换。这种融合不仅降低了技术门槛,还为企业提供了更强大的数据支持,无论是在金融、电商还是物联网领域,都将发挥巨大作用。
188 6
|
SQL 关系型数据库 HIVE
实时计算 Flink版产品使用问题之如何将PostgreSQL数据实时入库Hive并实现断点续传
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 分布式计算 数据处理
实时计算 Flink版产品使用问题之怎么将数据从Hive表中读取并写入到另一个Hive表中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
SQL 存储 分布式计算
Hive TextFile数据错行问题解决方案
【8月更文挑战第16天】
308 0