如何将 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,搭建一个在线教育视频课程分享网站。
相关文章
|
5天前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之同步数据到OSS时,文件的切分单位如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3天前
|
SQL 分布式计算 NoSQL
使用Spark高效将数据从Hive写入Redis (功能最全)
使用Spark高效将数据从Hive写入Redis (功能最全)
|
3天前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
|
5天前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之读取OSS数据出现重复的情况是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
5天前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之是否支持创建OSS外部表为分区表,并访问OSS上以分区方式存储的数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
存储 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之是否提供相应的功能接口和指令,可以将数据从OSS存储同步到Hologres中进行分析
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
20天前
|
SQL 分布式计算 关系型数据库
使用 Spark 抽取 MySQL 数据到 Hive 时某列字段值出现异常(字段错位)
在 MySQL 的 `order_info` 表中,包含 `order_id` 等5个字段,主要存储订单信息。执行按 `create_time` 降序的查询,显示了部分结果。在 Hive 中复制此表结构时,所有字段除 `order_id` 外设为 `string` 类型,并添加了 `etl_date` 分区字段。然而,由于使用逗号作为字段分隔符,当 `address` 字段含逗号时,数据写入 Hive 出现错位,导致 `create_time` 值变为中文字符串。问题解决方法包括更换字段分隔符或使用 Hive 默认分隔符 `\u0001`。此案例提醒在建表时需谨慎选择字段分隔符。
|
20天前
|
SQL 存储 JSON
Hive 解析 JSON 字符串数据的实现方式
Hive 提供 `get_json_object` 函数解析 JSON 字符串,如 `{"database":"maxwell"}`。`path` 参数使用 `$`、`.`、`[]` 和 `*` 来提取数据。示例中展示了如何解析复杂 JSON 并存储到表中。此外,Hive 3.0.0及以上版本内置 `JsonSerDe` 支持直接处理 JSON 文件,无需手动解析。创建表时指定 `JsonSerDe` 序列化器,并在 HDFS 上存放 JSON 文件,可以直接查询字段内容,方便快捷。
|
20天前
|
SQL HIVE UED
【Hive SQL 每日一题】分析电商平台的用户行为和订单数据
作为一名数据分析师,你需要分析电商平台的用户行为和订单数据。你有三张表:`users`(用户信息),`orders`(订单信息)和`order_items`(订单商品信息)。任务包括计算用户总订单金额和数量,按月统计订单,找出最常购买的商品,找到平均每月最高订单金额和数量的用户,以及分析高消费用户群体的年龄和性别分布。通过SQL查询,你可以实现这些分析,例如使用`GROUP BY`、`JOIN`和窗口函数来排序和排名。
|
22天前
|
消息中间件 Kafka API
AutoMQ 对象存储数据高效组织的秘密: Compaction
AutoMQ是一款使用对象存储的消息系统,通过内存攒批和EBS持久化降低API调用成本。它有两种对象类型:Stream Set Object和Stream Object。Compaction过程用于数据清理、减少元数据和提升读取性能。Compaction包括SSO和SO两阶段,本文聚焦于SSO Compaction,涉及索引解析、排序、数据段分裂和迭代计划。每个迭代按内存限制划分任务,读取数据段并上传新对象,最后提交元数据更新。AutoMQ还有其他特性如Force Split和分级限流。团队由Apache RocketMQ和Linux LVS背景成员组成,致力于提供低成本、高弹性的消息服务。
24 0
AutoMQ 对象存储数据高效组织的秘密: Compaction