元数据转换服务
更新时间:2024-07-25
概述
BOS元数据转换服务支持在未部署任何工具的情况下,直接将BOS普通存储桶转换为分层命名空间存储桶。分层命名空间存储桶在支持普通平层桶绝大部分特性和兼容大部分HDFS文件系统接口的同时,可以支持目录原子性Rename和Delete,同时优化了List和Head请求时延,能很好的满足大数据和AI领域的数据湖计算场景。
前提条件
- 目前仅北京、苏州、广州、保定地域支持元数据转换服务和分层命名空间存储桶。
- 需提交工单申请使用BOS元数据转换功能。
使用限制
- 不支持转换开启回收站或多版本功能的bucket,不支持转换存在归档类型object、软链接Symlink、对象标签的bucket。
- 元数据转换成功的平层bucket不再支持关闭分层命名空间,转换过程不可逆,转换前后只是元数据组织形式发生变化,数据不发生移动。
- 元数据转换任务的完成时间取决于bucket中object数量和后端资源配额,暂不提供精确的时效性保证。
风险说明
- 转换任务开始之后,执行结束之前,尽量不进行增量写入和对存量的覆写及删除,以免遗漏。执行过程中遇到归档类型文件会导致任务失败并中止转换。
- 请确保待转换的BOS bucket中不存在同名文件和文件夹,例如同时存在文件dir以及文件夹dir/,转换过程中会产生冲突,且和任务运行时的导入顺序相关,服务将通过重命名操作来避免冲突,具体参考转换规则。
- 请参考转换规则说明,确保BOS bucket中不存在且不写入使用特殊保留文件名的文件,否则可能出现同名文件相互覆盖,造成文件丢失。
- bucket元数据转换开始前可以通过replication等方式先做好备份保存,元数据转换任务完成后请务必再次确认bucket中数据的完整性。
转换规则
- 对于转换前以/结尾的文件(例如a/b/),如果文件是空文件(size为0)则转换后直接创建对应的同名目录(例如a/b),否则其转换后会发生重命名加上特殊后缀.slash和.转换时间戳,例如文件a/b/会变成a/b.slash.1716487553,可以通过ListObjects查看转换后的对应新文件名。
-
分层命名空间存储桶中不允许同名文件和目录共存,因此如果转换前的存储桶中同时存在文件a/b和a/b/,其中a/b/表示一个目录,那么转换过程中会发生冲突,跟两个文件的转换顺序有相关性,第一原则是优先创建和保留目录。
- 情况一:创建目录a/b时发现同名文件a/b已存在,则将文件重命名加上特殊后缀.file和.转换时间戳,例如文件a/b/会变成a/b.file.1716487553。如果新文件名已经存在,则继续添加次数后缀重试1次,例如a/b.file.1716487553.1。
- 情况二:创建文件a/b时发现同名目录a/b已存在,尝试创建加上特殊后缀.file和.转换时间戳的新文件,例如a/b.file.1716487553;如果新文件名还是已经存在,则继续添加次数后缀重试3次,例如a/b.file.1716487553.1。