使用JindoTable实现对OSS上表或分区的归档和解冻

本文介绍了JindoTable中的archiveTable和unarchiveTable命令,这两个命令可以用于对OSS上的表或分区进行归档和解冻操作。

使用限制

该文档仅适用于使用Hive Metastore存储元数据的情况。

archiveTable命令

archiveTable命令可以对OSS上的表或分区进行归档。

获取帮助信息

执行以下命令,获取帮助信息。

jindotable -help archiveTable

参数说明

jindotable -archiveTable -t <dbName.tableName> -i/-a/-ca [-c "<condition>" | -fullTable] [-b/-before <before days>] [-p/-parallel <parallelism>] [-mr/-mapReduce] [-e/-explain] [-w/-workingDir <working directory>][-l/-logDir <log directory>]

参数

描述

是否必选

-t <dbName.tableName>

待归档的表名称,格式为数据库名.表名

  • 数据库和表名之间以半角句号(.)分隔。

  • 表可以是分区表或非分区表。

-i/-a/-ca

目标存储方式。支持如下方式:

  • -a:归档(Archive)存储。

  • -i:低频 (Infrequent Access,IA)存储。

    说明

    如果使用-i,即表示低频存储,会跳过已经处于归档存储的文件。

  • -ca:冷归档(Code Archive)存储。

-c "<condition>" / -fullTable

-c "<condition>"-fullTable只需提供一个,即要么指定-c "<condition>",要么指定-fullTable

  • 指定-c "<condition>"时,则提供了一个过滤条件,用来选择希望移动的分区,支持常见运算符,例如大于号(>)。例如,数据类型为String的分区ds,希望分区名大于 'd',则代码为-c " ds > 'd' "

  • 指定-fullTable时,则为移动整表,既可以是非分区表也可以是分区表。

-b/before <before days>

只有创建时间距离现在超过一定天数的表或分区才会被归档。

-p/-parallel <parallelism>

归档操作的并行度。

-mr/-mapReduce

使用Hadoop MapReduce而非本地多线程来归档数据。

-e/-explain

如果出现该选项,则为解释(explain)模式,只会显示待移动的分区列表,而不会真正移动数据。

-w/-workingDir

该目录只在MapReduce作业执行时使用,作为MapReduce作业的工作目录。工作目录可以是非空的,因为在作业执行过程中会创建临时文件,执行完毕后会清理临时文件。

-l/-logDir <log directory>

指定Log文件的目录。

unarchiveTable命令

unarchiveTable命令可以对OSS上的表或分区进行解冻。

获取帮助信息

执行以下命令,获取帮助信息。

jindotable -help unarchiveTable

参数说明

jindotable -unarchiveTable -t <dbName.tableName> [-i/-a/-o/-cr] [-notWait] [-c "<condition>" | -fullTable] [-d/-restoreDays <restore days>] [-b/-before <before days>] [-p/-parallel <parallelism>] [-mr/-mapReduce] [-e/-explain] [-w/-workingDir <working directory>][-l/-logDir <log directory>]

参数

描述

是否必选

-t <dbName.tableName>

待解冻的表名称,格式为数据库名.表名。数据库和表名之间以半角句号(.)分隔。表可以是分区表或非分区表。

-i/-a/-o/-cr

如果不指定参数,则转换存储格式为标准(Standard)存储。

支持如下方式:

  • -i:则转换存储格式为低频(Infrequent Access,IA)存储,原本为标准存储的文件被跳过。

  • -a:则转换存储格式归档(Archive)存储。

  • -o:仅做解冻(Restore)操作。原本为标准存储或低频存储的文件均被跳过。已经处于解冻状态的文件也会被跳过,即不会重复解冻。

  • -cr:检查是否所有 restore 任务已完成。

-notWait

该选项仅适用于Restore操作。如果出现该选项,则不会等待OSS服务端完成Restore操作。否则,会等待Restore操作完成或者超时(10分钟)后才退出。

-c "<condition>" / -fullTable

-fullTable-c "<condition>"只需提供一个,即要么指定-c "<condition>",要么指定-fullTable

  • 指定-fullTable时,则为移动整表,既可以是非分区表也可以是分区表。

  • 指定-c "<condition>"时,则提供了一个过滤条件,用来选择希望移动的分区,支持常见运算符,例如大于号(>)。例如,数据类型为String的分区ds,希望分区名大于 'd',则代码为-c " ds > 'd' "。

-d/-restoreDays <restore days>

当执行仅解冻(Restore)操作时,通过设置参数可以指定保持解冻状态的天数,默认为一天。

例如,对于已冷归档的表执行仅解冻操作时(-o参数),则该参数将生效;对一个从未解冻过的归档状态的表转为标准存储时,该参数将在中间环节发挥作用;而对一个低频状态的表转为标准存储时,该参数将不起作用。

-b/-before <before days>

只有创建时间距离现在超过一定天数的表或分区才会被解冻。

-p/-parallel <parallelism>

解冻操作的并行度。

-mr/-mapReduce

使用Hadoop MapReduce而非本地多线程来解冻数据。

-e/-explain

如果出现该选项,则为解释(explain)模式,只会显示待移动的分区列表,而不会真正移动数据。

-w/-workingDir

该目录只在MapReduce作业执行时使用,作为MapReduce作业的工作目录。工作目录可以是非空的,因为在作业执行过程中会创建临时文件,执行完毕后会清理临时文件。

-l/-logDir <log directory>

指定Log文件的目录。