更新指定表的元数据(metadata)文件存储位置,通常在Iceberg表提交新的元数据快照后使用。
注意事项
--version-token参数用于乐观锁控制,必须先通过get-table-metadata-location命令获取当前的versionToken,再传入该参数。如果在获取versionToken之后、更新之前,有其他客户端更新了元数据位置,则本次更新会失败,以防止并发冲突覆盖。
--metadata-location参数指定新的元数据文件路径,该路径必须是有效的Iceberg metadata文件路径。
--metadata-location和--version-token均为必选参数。
命令格式
ossutil tables-api update-table-metadata-location --table-bucket-arn value --namespace value --name value --metadata-location value --version-token value [flags]参数 | 类型 | 说明 |
--metadata-location | string | 新的元数据文件路径,必须是有效的Iceberg metadata文件存储路径。必选参数。 |
--name | string | 表名称。必选参数。 |
--namespace | string | 表所属的命名空间名称。必选参数。 |
--table-bucket-arn | string | Table Bucket的ARN,格式为 |
--version-token | string | 版本令牌,用于乐观锁控制。需通过get-table-metadata-location命令获取当前的versionToken值后传入,确保更新操作在最新版本基础上进行。必选参数。 |
update-table-metadata-location命令对应API接口UpdateTableMetadataLocation。关于API中的具体参数含义,请参见UpdateTableMetadataLocation。
关于支持的全局命令行选项,请参见ossutil全局选项。
使用示例
更新my_table表的元数据文件位置,指定新的元数据路径和版本令牌。
ossutil tables-api update-table-metadata-location --table-bucket-arn acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket --namespace my_namespace --name my_table --metadata-location oss://my-table-bucket/metadata/my_namespace/my_table/metadata/00001-abc123.metadata.json --version-token abc123def456