本文详细介绍了DLF CLI的安装、配置及常用命令的使用方法,帮助您通过命令行方式高效地管理和操作DLF中的数据。
环境准备
ECS实例要求:
安装步骤
使用
scp
命令将tar包上传至目标ECS实例的目标目录。scp dlf-cli-20250818163820.tar.gz username@ecs-ip:/path/to/destination
登录ECS实例,进入目标目录,使用以下命令解压tar包。
tar -xzvf dlf-cli-20250818163820.tar.gz
使用
vim
命令编辑dlf-cli/conf/dlf-cli.properties
配置文件,配置以下参数。vim dlf-cli/conf/dlf-cli.properties
参数
描述
示例
uri
访问DLF Rest Catalog Server的URI,格式为
http://[region-id]-vpc.dlf.aliyuncs.com
。详见服务接入点中的Region ID。http://cn-hangzhou-vpc.dlf.aliyuncs.com
dlf.region
详见服务接入点中的Region ID。
cn-hangzhou
dlf.access-key-id
阿里云账号或者RAM用户的AccessKey ID。详情请参见查看RAM用户的AccessKey信息。
说明RAM用户或RAM角色需要有访问相应API的权限,详情请参见DLF RAM鉴权Action说明。
-
dlf.access-key-secret
阿里云账号或者RAM用户的AccessKey Secret。
-
dlf.open-api-endpoint
访问 DLF OpenAPI 的 Endpoint。详见服务接入点。
若不填,则默认从 uri 推导。
dlfnext.cn-hangzhou.aliyuncs.com
(可选)通过执行
echo $JAVA_HOME
命令检查JAVA_HOME
是否已正确设置。如果返回为空或不是JDK 11的安装路径,则需要重新配置JAVA_HOME
。export JAVA_HOME=<JDK_11_PATH>
示例如下图。
授权信息
RAM访问控制
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
操作:是指具体的权限点。
访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
资源类型:是指操作中支持授权的资源类型。具体说明如下:
对于必选的资源类型,用前面加 * 表示。
对于不支持资源级授权的操作,用
全部资源
表示。
条件关键字:是指云产品自身定义的条件关键字。
关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:详见具体API | 详见具体API | *全部资源
| 无 | 无 |
RAM访问控制更新通常需要1分钟左右生效。
ACL权限管理
详情请参考授权管理。
role命令
list - 获取角色列表
获取所有角色(Role)的名称列表,支持分页查询和条件筛选。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListRoles | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role list \
[--max_results <max_results>] \
[--page_token <page_token>] \
[--role_name <role_name>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
| 字符串 | 否 | 根据角色名称过滤结果,支持模糊匹配。 |
示例
./dlf-cli/bin/dlf role list
返回结果
2025-07-07 17:12:02 : {
"nextPageToken" : null,
"roles" : [{
"createdAt" : 1744428101414,
"createdBy" : "xxxx",
"description" : "super_administrator(system role)",
"displayName" : "super_administrator",
"isPredefined" : "true",
"roleName" : "super_administrator",
"rolePrincipal" : "xxxx",
"updatedAt" : 1744428101414,
"updatedBy" : "xxxx",
"users" : [{
"createdAt" : 1747744999611,
"createdBy" : "xxx",
"displayName" : "xxx",
"type" : "RAM_USER",
"updatedAt" : 1747744999611,
"updatedBy" : "xxxx",
"userId" : "207384147744632137",
"userName" : "xxxx",
"userPrincipal" : "xxxx"
}]
}]
}
get - 获取角色的详细信息
获取指定角色(Role)的详细信息,支持根据角色主体查询角色详情。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetRole | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role get \
--role_principal <role_principal>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定一个角色。 |
示例
./dlf-cli/bin/dlf role get \
--role_principal 'acs:dlf::104568******:role/engineer'
返回结果
2025-07-07 17:12:02 : {
"createdAt" : 1749435901626,
"createdBy" : "xxxx",
"description" : null,
"displayName" : null,
"isPredefined" : "false",
"roleName" : "engineer",
"rolePrincipal" : "xxxx",
"updatedAt" : 1750404792198,
"updatedBy" : "xxxx",
"users" : [ {
"createdAt" : 1744428101252,
"createdBy" : "",
"displayName" : "xxxx",
"type" : "RAM_USER",
"updatedAt" : 1744428101252,
"updatedBy" : "",
"userId" : "xxxx",
"userName" : "xxxx",
"userPrincipal" : "xxxx"
}]
}
create - 创建角色
创建一个新的角色(Role),支持指定角色名称、显示名称和描述信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:CreateRole | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role create \
--role_name <role_name> \
--display_name <display_name> \
[--description <description>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色的唯一标识名称。 |
| 字符串 | 是 | 角色的显示名称,用于用户界面展示。 |
| 字符串 | 否 | 角色的描述信息,用于说明角色的用途或权限范围(可选)。 |
示例
./dlf-cli/bin/dlf role create \
--role_name 'test_viewer' \
--display_name 'test viewer' \
--description 'test for viewer'
返回结果
2025-07-07 17:14:30 : success
alter - 更新角色信息
更新指定角色(Role)的显示名称或描述信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:UpdateRole | update | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role alter \
--role_principal <role_principal> \
--display_name <display_name> \
[--description <description>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定需要更新的角色。 |
| 字符串 | 是 | 新的显示名称,用于用户界面展示。 |
| 字符串 | 否 | 新的描述信息,用于说明角色的用途或权限范围(可选)。 |
示例
./dlf-cli/bin/dlf role alter \
--role_principal 'acs:dlf::104568******:role/engineer' \
--display_name 'engineer role'
返回结果
2025-07-08 10:00:54 : success
drop - 删除角色
删除指定的角色(Role)。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:DeleteRole | delete | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role drop \
--role_principal <role_principal>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定一个角色。 |
示例
./dlf-cli/bin/dlf role drop \
--role_principal 'acs:dlf::104568******:role/test_viewer'
返回结果
2025-07-08 10:00:54 : success
listUsers - 获取与角色关联的用户列表
获取与指定角色(Role)关联的用户列表。支持分页查询,并返回与角色绑定的用户信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListRoleUsers | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role list_users \
--role_principal <role_principal> \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定目标角色。 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf role list_users \
--role_principal 'acs:dlf::1045689747920334:role/engineer'
返回结果
2025-07-08 09:59:58 : {
"nextPageToken" : null,
"users" : [ {
"createdAt" : 1744428101252,
"createdBy" : "",
"displayName" : "dw_test",
"type" : "RAM_USER",
"updatedAt" : 1744428101252,
"updatedBy" : "",
"userId" : "205775142194523069",
"userName" : "dw_test",
"userPrincipal" : "acs:ram::1045689747920334:user/dw_test"
} ]
}
grantUsers - 将角色授予用户
将指定角色(Role)授予一个或多个用户。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GrantRoleToUsers | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role grant_users \
--role_principal <role_principal> \
--user_principals <user_principals>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定目标角色。 |
| 字符串 | 是 | 用户主体标识列表,多个用户以逗号分隔(如 |
示例
./dlf-cli/bin/dlf role grant_users \
--role_principal 'acs:dlf::1045689747920334:role/engineer' \
--user_principals '["acs:ram::104568******:user/starrocks_test"]'
返回结果
2025-07-08 10:00:54 : success
revokeUsers - 取消用户与角色的关联
取消指定用户与角色(Role)的关联。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:RevokeRoleFromUsers | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf role revoke_users \
--role_principal <role_principal> \
--user_principals <user_principals>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 角色主体标识,用于唯一确定目标角色。 |
| 字符串 | 是 | 用户主体标识列表,多个用户以逗号分隔(如 |
示例
./dlf-cli/bin/dlf role revoke_users \
--role_principal 'acs:dlf::1045689747920334:role/engineer' \
--user_principals '["acs:ram::1045689747920334:user/starrocks_test"]'
返回结果
2025-07-08 10:14:37 : success
user命令
list - 获取用户列表
获取用户列表,支持根据用户名、用户类型等条件筛选,并提供分页查询功能。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListUsers | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf user list \
[--user_name <user_name>] \
[--user_type <user_type>] \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 否 | 根据用户名筛选用户,支持模糊匹配。 |
| 字符串 | 否 | 根据用户类型筛选用户(如 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf user list \
--user_name 'starrocks_test' \
--user_type 'RAM_USER'
返回结果
2025-07-08 10:24:00 : {
"nextPageToken" : null,
"users" : [ {
"createdAt" : 1744428101252,
"createdBy" : "",
"displayName" : "starrocks_test",
"type" : "RAM_USER",
"updatedAt" : 1744428101252,
"updatedBy" : "",
"userId" : "xxxxx",
"userName" : "starrocks_test",
"userPrincipal" : "acs:ram::104568******:user/starrocks_test"
} ]
}
list_role - 获取用户关联的角色列表
获取指定用户关联的角色(Role)列表。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListUserRoles | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf user list_role \
--user_principal <user_principal> \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 用户主体标识,用于唯一确定目标用户。 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf user list_role \
--user_principal 'acs:ram::104568******:user/starrocks_test'
返回结果
2025-07-15 13:18:45 : {
"nextPageToken" : null,
"roles" : [{
"createdAt" : 1749435901626,
"createdBy" : "acs:ram::104568******:root",
"description" : null,
"displayName" : "enginer role",
"isPredefined" : "false",
"roleName" : "engineer",
"rolePrincipal" : "acs:dlf::104568******:role/engineer",
"updatedAt" : 1751960724469,
"updatedBy" : "acs:ram::104568******:root",
"users" : null
}]
}
permission命令
list - 获取权限列表
获取指定资源类型的权限列表。支持根据资源类型(如 catalog
、database
、table
等)和相关条件筛选权限信息,并提供分页查询功能。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListPermissions | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf permission list \
--catalog <catalogName> \
--resource_type '' \
[--database <database>] \
[--table <table>] \
[--principal <principal>] \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于指定权限所属的Catalog。 |
| 字符串 | 是 | 资源类型,可选值为 |
| 字符串 | 否 | 数据库名称,仅当 |
| 字符串 | 否 | 表名称,仅当 |
| 字符串 | 否 | 主体标识(用户或角色),用于筛选特定主体的权限信息。 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf permission list \
--catalog test_paimon \
--resource_type database \
--database default
返回结果
2025-07-08 10:51:31 : {
"nextPageToken" : null,
"permissions" : [ {
"access" : "ALTER",
"columns" : null,
"database" : "default",
"function" : null,
"principal" : "acs:ram::104568******:user/bennett-test",
"resourceType" : "DATABASE",
"table" : null,
"view" : null
}, {
"access" : "SELECT",
"columns" : null,
"database" : "default",
"function" : null,
"principal" : "acs:ram::104568******:user/bennett-test",
"resourceType" : "DATABASE_ALL",
"table" : null,
"view" : null
} ]
}
grant - 授权
为指定主体(用户或角色)授权。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:BatchGrantPermissions | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf permission grant \
--catalog <catalogName> \
--permissions '[]'
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于指定权限所属的Catalog。 |
| JSON字符串 | 是 | 权限配置的JSON字符串数组,包含访问类型(access)、数据库名称(database)、用户资源(principal)、权限资源类型(resourceType),详情请参见Permission。 单个permission说明如下: {"access" : "SELECT", "database" : "default", "principal" : "acs:ram::104568******:user/starrocks_test", "resourceType" : "DATABASE"} |
示例
./dlf-cli/bin/dlf permission grant \
--catalog test_paimon \
--permissions '[{"access" : "SELECT", "database" : "default", "principal" : "acs:ram::104568******:user/starrocks_test", "resourceType" : "DATABASE"}]'
返回结果
2025-07-08 10:53:41 : success
revoke - 取消授权
取消指定主体(用户或角色)的资源权限。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:BatchRevokePermissions | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf permission revoke \
--catalog [catalogName] \
--permissions '[]'
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于指定权限所属的Catalog。 |
| JSON字符串 | 是 | 权限配置的JSON字符串,包含主体、资源类型、资源名称及权限列表等信息。 |
示例
./dlf-cli/bin/dlf permission revoke \
--catalog test_paimon \
--permissions '[{"access" : "SELECT", "database" : "default", "principal" : "acs:ram::104568******:user/starrocks_test", "resourceType" : "DATABASE"}]'
返回结果
2025-07-08 10:53:41 : success
catalog命令
help - 获取catalog支持的命令
./dlf-cli/bin/dlf catalog help
list - 获取catalog列表
获取catalog列表,支持分页查询。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListCatalogs | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog list \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf catalog list
返回结果
2025-07-07 17:24:47 : {
"catalogs" : [ {
"createdAt" : 1748335426553,
"createdBy" : "xxxx",
"id" : "xxxxx",
"name" : "xxxx",
"options" : {
"storage.data.redundancy.type" : "LRS",
"comment" : "xxxx"
},
"owner" : "xxxx",
"status" : "RUNNING",
"type" : "PAIMON",
"updatedAt" : 1748350097424,
"updatedBy" : "xxxx"
}, {
"createdAt" : 1747885240095,
"createdBy" : "xxxx",
"id" : "xxxx",
"name" : "xxxx",
"options" : {
"catalog.data.token.minExpireSeconds" : "43200",
"storage.data.redundancy.type" : "LRS",
"comment" : "xxxx",
"catalog.data.token.isTable" : "true",
"catalog.data.token.maxExpireSeconds" : "43200"
},
"owner" : "xxxx",
"status" : "RUNNING",
"type" : "PAIMON",
"updatedAt" : 1751846858724,
"updatedBy" : "acs:ram::104568******:root"
} ],
"nextPageToken" : null
}
get - 获取单个catalog详情
获取指定 Catalog 的详细信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetCatalog | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog get \
--catalog <catalog name>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于唯一确定目标Catalog。 |
示例
./dlf-cli/bin/dlf catalog get \
--catalog test_paimon
返回结果
2025-07-08 10:56:51 : {
"createdAt" : 1747982344641,
"createdBy" : "acs:ram::104568******:root",
"id" : "clg-paimon-802dcc2xxxxx",
"name" : "test_paimon",
"options" : {
"storage.data.redundancy.type" : "LRS",
"comment" : ""
},
"owner" : "acs:ram::104568******:root",
"status" : "RUNNING",
"type" : "PAIMON",
"updatedAt" : 1747982348385,
"updatedBy" : "acs:ram::104568******:root"
}
create - 创建catalog
创建catalog。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:CreateCatalog | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog create \
--catalog <catalog name> \
--options '{}'
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称。 |
| JSON字符串 | 是 | Catalog的配置选项,以JSON字符串格式提供,包含属性如描述等。 |
示例
./dlf-cli/bin/dlf catalog create \
--catalog test-cli \
--options '{"comment": "test"}'
返回结果
2025-07-07 17:45:04 : success
alter - 更新catalog信息
更新指定Catalog的信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:AlterCatalog | update | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog alter \
--catalog <catalog name> \
--removals '[]' \
--updates '{}'
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于唯一标识目标Catalog。 |
| JSON字符串 | 否 | 需要移除的属性名称列表,以JSON数组格式提供(如 |
| JSON字符串 | 否 | 需要更新的属性及其值,以JSON对象格式提供(如 |
示例
./dlf-cli/bin/dlf catalog alter \
--catalog test-cli \
--removals '[]' \
--updates '{"comment": "new comment", "k1": "v1"}'
返回结果
2025-07-07 17:45:04 : success
drop - 删除catalog
删除指定的Catalog。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:DropCatalog | delete | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog drop \
--catalog <catalog name>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于唯一标识需要删除的目标Catalog。 |
示例
./dlf-cli/bin/dlf catalog drop \
--catalog test-cli
返回结果
2025-07-07 17:45:04 : success
get_token - 获取单个catalog的临时访问凭证
获取指定 Catalog 的临时访问凭证。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetCatalogToken | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf catalog get_token \
--catalog <catalog name>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于唯一确定目标Catalog。 |
示例
./dlf-cli/bin/dlf catalog get_token \
--catalog test_paimon
返回结果
2025-08-18 16:58:38 : {
"expiresAtMillis" : 1755550718000,
"token" : {
"fs.oss.accessKeyId" : "STS.xxx",
"fs.oss.accessKeySecret" : "xxx",
"fs.oss.securityToken" : "xxx",
"fs.oss.endpoint" : "xxx",
"fs.oss.bucket.name" : "clg-paimon-xxx"
}
}
database命令
help - 获取database支持的命令
./dlf-cli/bin/dlf database list
list - 获取catalog下的database名称列表
获取指定Catalog下的数据库(Database)名称列表。支持分页查询。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListDatabases | list | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf database list \
--catalog [catalogName] \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于指定目标Catalog。 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf database list \
--catalog test-cli
返回结果
2025-07-08 10:59:26 : {
"elements" : [ "default", "system", "test_db" ],
"nextPageToken" : null
}
get - 获取database详情
获取指定数据库(Database)的详细信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetDatabase | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf database get \
--full_name <catalogName.databaseName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 数据库的全名,格式为 |
示例
./dlf-cli/bin/dlf database get \
--full_name test-cli.default
返回结果
2025-07-08 11:03:51 : {
"id" : "db-9605ccda-cf07-4a74-a137-3c166590177e",
"name" : "default",
"location" : "oss://clg-paimon-b1af75fab07c4dfb9c0e2205a41740c6/db-9605ccda-cf07-4a74-a137-3c166590177e.db",
"options" : { },
"owner" : "acs:ram::1045689747920334:root",
"createdAt" : 1751882013752,
"createdBy" : "acs:ram::1045689747920334:root",
"updatedAt" : 1751882013752,
"updatedBy" : "acs:ram::1045689747920334:root"
}
create - 创建database
创建一个新的数据库(Database)。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:CreateDatabase | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf database create \
--full_name <catalogName.databaseName> \
--options <options>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 数据库的全名,格式为 |
| JSON字符串 | 是 | 数据库的配置选项,以 JSON字符串 格式提供,包含属性如存储位置、描述信息等。 |
示例
./dlf-cli/bin/dlf database create \
--full_name test-cli.test_db \
--options '{"k1":"v1","k2":"v2"}'
返回结果
2025-07-08 11:07:34 : success
alter - 更新database信息
更新指定数据库(Database)的配置信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:AlterDatabase | update | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf database alter \
--full_name <catalogName.databaseName> \
--removals <removals> \
--updates <updates>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 数据库的全名,格式为 |
| JSON字符串 | 否 | 需要移除的属性名称列表,以 JSON 数组格式提供(如 |
| JSON字符串 | 否 | 需要更新的属性及其值,以 JSON 对象格式提供(如 |
示例
./dlf-cli/bin/dlf database alter \
--full_name test-cli.test_db \
--removals '["k1"]' \
--updates '{"k2":"v3"}'
返回结果
2025-07-08 11:08:26 : success
drop - 删除database
删除指定的数据库(Database)。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:DropDatabase | delete | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf database drop \
--full_name <catalogName.databaseName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 数据库的全名,格式为 |
示例
./dlf-cli/bin/dlf database drop \
--full_name test-cli.test_db
返回结果
2025-07-08 11:09:26 : success
table命令
help - 获取table支持的命令
./dlf-cli/bin/dlf table help
list - 获取database下的table名称列表
获取指定数据库(Database)下的表(Table)名称列表。支持分页查询。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListTables | list | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table list \
--catalog <catalogName> \
--database <databaseName> \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog名称,用于指定目标Catalog。 |
| 字符串 | 是 | 数据库名称,用于指定目标数据库。 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf table list \
--catalog test-cli \
--database test_db
返回结果
2025-07-08 11:27:39 : {
"elements" : [ "test_table" ],
"nextPageToken" : null
}
get - 获取table详情
获取指定表(Table)的详细信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetTable | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table get \
--full_name <catalogName.databaseName.tableName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
示例
./dlf-cli/bin/dlf table get \
--full_name test-cli.test_db.test_table
返回结果
2025-07-08 11:29:13 : {
"id" : "tbl-d2a8e203-xxxxxx",
"name" : "test_table",
"path" : "oss://clg-paimon-b1af75xxxxxx/db-2788b0b9-xxxxxx.db/tbl-d2a8e203-xxxxxx",
"isExternal" : false,
"schemaId" : 0,
"schema" : {
"fields" : [ {
"id" : 0,
"name" : "f0",
"type" : "INT NOT NULL"
}, {
"id" : 1,
"name" : "f1",
"type" : "INT NOT NULL"
} ],
"partitionKeys" : [ "f0" ],
"primaryKeys" : [ "f0", "f1" ],
"options" : {
"bucket" : "-2",
"path" : "oss://clg-paimon-b1af75xxxxxx/db-2788b0b9-xxxxxx.db/tbl-d2a8e203-xxxxxx",
"manifest.merge-min-count" : "10",
"manifest.delete-file-drop-stats" : "true",
"data-file.thin-mode" : "true",
"partition.legacy-name" : "false",
"write-only" : "true",
"metastore.partitioned-table" : "true"
},
"comment" : "comment"
},
"owner" : "acs:ram::104568******:root",
"createdAt" : 1751944703679,
"createdBy" : "acs:ram::104568******:root",
"updatedAt" : 1751944703679,
"updatedBy" : "acs:ram::104568******:root"
}
create - 创建table
创建一个新的表(Table)。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:CreateTable | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table create \
--full_name <catalogName.databaseName.tableName> \
--schema <schema>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| JSON字符串 | 是 | 表的模式(Schema)配置,以JSON字符串格式提供,包含字段定义、类型等信息。 |
示例
./dlf-cli/bin/dlf table create \
--full_name test-cli.test_db.test_table \
--schema '{"fields" : [ {"id" : 0, "name" : "f0", "type" : "INT NOT NULL" }, {"id" : 1, "name" : "f1", "type" : "INT NOT NULL" } ], "partitionKeys" : [ "f0" ], "primaryKeys" : [ "f0", "f1" ], "options" : { }, "comment" : "comment" }'
返回结果
2025-07-08 11:18:23 : success
alter - 更新table信息
更新指定表(Table)的配置信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:AlterTable | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table alter \
--full_name <catalogName.databaseName.tableName> \
--changes <changes>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| JSON字符串 | 是 | 表的变更内容,以JSON数组格式提供,包含需要添加、修改或删除的字段及属性。 |
示例
./dlf-cli/bin/dlf table alter \
--full_name test-cli.test_db.test_table \
--changes '[{"action":"setOption", "key" : "snapshot.time-retained", "value" : "2h" }, {"action":"updateComment","comment" : "hahaha" }]'
返回结果
2025-07-08 11:35:18 : success
drop - 删除table
删除指定的表(Table)。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:DropTable | delete | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table drop \
--full_name <catalogName.databaseName.tableName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
示例
./dlf-cli/bin/dlf table drop \
--full_name test-cli.test_db.test_table
返回结果
2025-07-08 11:35:18 : success
get_snapshot - 获取表的最新快照信息
获取指定表(Table)的最新快照(Snapshot)信息。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:GetTableSnapshot | get | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table get_snapshot \
--full_name <catalogName.databaseName.tableName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
示例
./dlf-cli/bin/dlf table get_snapshot --full_name test_paimon.default.test_yt
返回结果
2025-07-08 11:42:32 : {
"snapshot" : {
"version" : 3,
"id" : 14,
"schemaId" : 0,
"baseManifestList" : "manifest-list-e97f6ae4-xxxxxx",
"baseManifestListSize" : 1041,
"deltaManifestList" : "manifest-list-e97f6ae4-xxxxxx",
"deltaManifestListSize" : 989,
"changelogManifestList" : null,
"commitUser" : "morax_d51dfc0b-xxxxxx",
"commitIdentifier" : 5,
"commitKind" : "COMPACT",
"timeMillis" : 1749807238526,
"logOffsets" : { },
"totalRecordCount" : 3,
"deltaRecordCount" : -5,
"changelogRecordCount" : 0,
"watermark" : -9223372036854775808
},
"recordCount" : 3,
"fileSizeInBytes" : 799,
"fileCount" : 1,
"lastFileCreationTime" : 1749807176914
}
rollback - 回滚table
将指定表(Table)回滚到某个历史快照(Snapshot)版本。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:RollbackTable | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table rollback \
--full_name <catalogName.databaseName.tableName> \
--instant <instant>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| 字符串 | 是 | 回滚的目标快照常量。内部参数及描述,请参见Instant。 |
示例
./dlf-cli/bin/dlf table rollback \
--full_name test_paimon.default.test_yt \
--instant '{"type":"snapshot", "snapshotId": 13}'
返回结果
2025-07-08 11:46:56 : success
list_branches - 获取分支名称列表
获取指定表(Table)的分支名称列表。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListBranches | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table list_branches \
--full_name <catalogName.databaseName.tableName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
示例
./dlf-cli/bin/dlf table list_branches \
--full_name test_paimon.default.test_yt
返回结果
2025-07-08 13:57:46 : [ "stream" ]
create_branch - 创建分支
为指定表(Table)创建一个新的分支。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:CreateBranch | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table create_branch \
--full_name <catalogName.databaseName.tableName> \
--branch <branchName> \
[--from_tag <tagName>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| 字符串 | 是 | 新创建的分支名称。 |
| 字符串 | 否 | 可选参数,指定从哪个标签(Tag)创建分支。如果未指定,则默认从当前主分支创建。 |
示例
./dlf-cli/bin/dlf table create_branch \
--full_name test_paimon.default.test_yt \
--branch stream
返回结果
2025-07-08 13:56:41 : success
forward_branch - 分支向前推进
将指定表(Table)的分支向前推进到最新状态。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ForwardBranch | create | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table forward_branch \
--full_name <catalogName.databaseName.tableName> \
--branch <branchName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| 字符串 | 是 | 需要向前推进的目标分支名称。 |
示例
./dlf-cli/bin/dlf table forward_branch \
--full_name test_paimon.default.test_yt \
--branch stream
返回结果
2025-07-08 13:56:41 : success
drop_branch - 删除分支
删除指定表(Table)的分支。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:DropBranch | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf table drop_branch \
--full_name <catalogName.databaseName.tableName> \
--branch <branchName>
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | 表的全名,格式为 |
| 字符串 | 是 | 需要删除的目标分支名称。 |
示例
./dlf-cli/bin/dlf table drop_branch \
--full_name test_paimon.default.test_yt \
--branch stream
返回结果
2025-07-08 14:02:19 : success
partition命令
list - 获取分区列表
获取分区列表。
RAM访问控制
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
dlf:ListPartitions | list | *全部资源
| 无 | 无 |
用法
./dlf-cli/bin/dlf partition list \
--catalog <catalogName> \
--identifier <identifier> \
[--max_results <max_results>] \
[--page_token <page_token>]
参数说明
参数名 | 类型 | 是否必填 | 描述 |
| 字符串 | 是 | Catalog 名称,用于指定目标 Catalog。 |
| 字符串 | 是 | 表的标识符,格式为 |
| 整数 | 否 | 每页返回的最大结果数量,默认值为系统默认值。 |
| 字符串 | 否 | 分页标记,用于获取下一页数据。首次调用无需填写,后续根据返回值使用。 |
示例
./dlf-cli/bin/dlf partition list \
--catalog 'baoma_poc' \
--identifier 'default.pk_ctas_tbl'
返回结果
2025-07-08 14:08:09 : {
"elements" : [ {
"spec" : {
"p" : "1"
},
"recordCount" : 1,
"fileSizeInBytes" : 684,
"fileCount" : 1,
"lastFileCreationTime" : 1748345335406,
"done" : false
} ],
"nextPageToken" : null
}