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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 快速学习如何将 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

 

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB常见问题之polardb归档到oss后如何恢复
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
4月前
|
SQL 分布式计算 Hadoop
创建hive表并关联数据
创建hive表并关联数据
35 0
|
6月前
|
SQL 存储 分布式数据库
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
【通过Hive清洗、处理和计算原始数据,Hive清洗处理后的结果,将存入Hbase,海量数据随机查询场景从HBase查询数据 】
|
1月前
|
SQL JSON 算法
hive学习笔记
hive学习笔记
|
2月前
|
SQL 消息中间件 Kafka
Flink部署问题之hive表没有数据如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
4月前
|
SQL 消息中间件 存储
案例:Flume消费Kafka数据保存Hive
案例:Flume消费Kafka数据保存Hive
66 0
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
259 0
|
4月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
106 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
4月前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
58 3
|
5月前
|
SQL 分布式计算 数据管理
聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起
聊聊Hive数据血缘——从Atlas没有列级血缘的Bug讲起