开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲:打开 OSS 多版本:合规和分析两不误 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/833/detail/13971
打开 OSS 多版本:合规和分析两不误
内容介绍
一、 背景介绍
二、 功能
1. OSS支持功能
2. OSS对象数据多版本管理
3. OSS对象数据多版本状态
4. 开启/暂停OSS多版本
5. 使用注意事项
6. 查看对象的多版本
7. JindoFS OSS SDK的优化
一、 背景介绍:阿里云对象存储 OSS
1. 一种海量、安全、低成本、高可靠的云存储服务;
2. 适合存放任意类型的文件;
3. 提供容量和处理能力弹性扩展;
4. 提供多种存储类型供选择;
5. 数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。
二、 功能
1. OSS 支持功能
1) 数据的上传以及下载;
2) OSS 对象生命周期的管理;
3) 同城/异地的数据容灾;
4) OSS 对象数据保留合规;
5) 数据的加密解密;
6) 数据的多版本管理
https://help.aliyun.com/?spm=a2c4g.11174283.6.538.70a37da2T4gFyT
2. OSS 对象数据多版本管理
1) 功能介绍
单份数据在OSS上存在多个版本。
2) 使用场景
数据误删除:当前OSS不提供回收站,如果要恢复已删除的数据可以使用OSS多版本;
文件被覆盖:对于网盘、在线协作类产品,文件会被频繁修改,针对文件的编辑会产生大量的临
时版本。可以使用版本控制功能找回某个时间点的版本。
3. OSS对象数据多版本状态
1) 未开启状态
默认情况下 OSS 版本状态为未开启的状态,一旦开启,无法退回到未开启状态。
2) 开启状态
当 OSS 版本控制处于开启状态,OSS 将为新上传的对象生成全局唯一的版本ID。
3) 暂停状态
OSS 将为新上传的 Object 生成特殊字符串为“null”的版本ID。
4. 开启/暂停OSS多版本
1) 跨区域复制
利用跨区域复制,可以快速构建跨越数百公里的数据异地备份的方案,更好地满足数据异地备份保护或行业合规要求,提升业务持续能力。跨区城复制功能,可降低自建异地数据备份中心的投入。跨区域复制功能支持将本 Bucket 的所有数据但括新增更新、删除操作同步到日标 Bucket 中。
2) 同城冗余存储
同城冗余存储(ZRS)是 OSS 推出的多可用区A将数据以冗余方式,存储在同一个区域(Region)的3 个可用区(AZ)中,避免单机房整体故障造成的数据无法访问或丢失,RPO/RTO=0,确保企业业务连续运行。
3) 版本控制
开启版本控制特性后,针对数据的覆盖性和删除操作将会以历史版本的形式保存下来。通过文件(Object)的版本管理,能够将 Bucke t中存储的 Object 恢复至任意时刻的历史版本。开启版本控制特性后,删除标记过多易导致list慢等问题,建议配置生命周期定期清理删除标记。
5. 使用注意事项
1) 功能互斥
同一 Bucket 中,版本控制与合规保留策略或镜像回源无法同时配置。如果 Bucket 已开启版本控制,上传文件时附加的覆盖同名文件请求头 x-oss-forbid-overwrite 将不生效。
2) 使用注意事项
开启多版本本身不会产生任何费用,但是由于开启多版本,同一 已过对象会存在多个版本的历史数据,会增加数据的存储成本。OSS 多版本历史版本过多可能导致List 过慢的问题,建议配置生命周期定期清理。
6. 查看对象的多版本
1) 控制台查看;
2) Ossutil64 命令行查看。
7. JindoFS OSS SDK的优化
1) 存在问题
由于 Hive/Spark 任务在任务执行过程中会产生临时数据,在任务执行成功后这些临时数据会被删除,因此会产生很多历史版本数据,导致后续任务 List 过慢,后续任务性能会受到影响。
2) JindoFS OSS SDK 优化
JindoFS 对于这种情况存在优化,对于 committer 产生的临时数据的历史版本信息可以通过设置 fs.oss.committer.magic.clean.versions.enabled。