华为云用户手册

  • 响应示例 状态码: 200 查询资源标签集合 { "tags" : [ { "key" : "key1", "values" : [ "value1" ] }, { "key" : "key2", "values" : [ "value2" ] } ] } 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException" } 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed' } 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden" } 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404" } 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred" } 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error" }
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,定位辅助信息。 表5 响应Body参数 参数 参数类型 描述 tags Array of ResourceTagParam objects 标签。 表6 ResourceTagParam 参数 参数类型 描述 key String 资源标签的键。 values Array of strings 资源标签的值列表。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。
  • LakeFormation LakeCat API 您可以在自定义策略语句的Action元素中指定LakeFormation LakeCat API相关操作。详细操作如表3所示。 表3 LakeFormation支持的操作项 操作项 描述 访问级别 资源类型(*为必须) 条件键 lakeformation:function:describe 查询LakeFormation元数据的函数的权限。 read - - lakeformation:function:drop 删除LakeFormation元数据的函数的权限。 write - - lakeformation:function:alter 修改LakeFormation元数据的函数的权限。 write - - lakeformation:function:create 创建LakeFormation元数据的函数的权限。 write - - lakeformation:catalog:describe 查询LakeFormation元数据的数据目录的权限。 read - - lakeformation:catalog:create 创建LakeFormation元数据的数据目录的权限。 write - - lakeformation:catalog:alter 修改LakeFormation元数据的数据目录的权限。 write - - lakeformation:catalog:drop 删除LakeFormation元数据的数据目录的权限。 write - - lakeformation:database:describe 查询LakeFormation元数据的数据库的权限。 read - - lakeformation:database:create 创建LakeFormation元数据的数据库的权限。 write - - lakeformation:database:alter 修改LakeFormation元数据的数据库的权限。 write - - lakeformation:database:drop 删除LakeFormation元数据的数据库的权限。 write - - lakeformation:table:describe 查询LakeFormation元数据的数据表的权限。 read - - lakeformation:table:alter 修改LakeFormation元数据的数据表的权限。 write - - lakeformation:table:create 创建LakeFormation元数据的数据表的权限。 write - - lakeformation:table:drop 删除LakeFormation元数据的数据表的权限。 write - - lakeformation:transaction:operate 操作LakeFormation事务的权限。 write - - lakeformation:user:describe 查询LakeFormation用户以及关联角色关系的权限。 read - - lakeformation:policy:create 创建LakeFormation权限策略的权限。 write - - lakeformation:policy:export 批量查询LakeFormation权限策略的权限。 read - - lakeformation:policy:drop 删除LakeFormation权限策略的权限。 write - - lakeformation:policy:describe 查询LakeFormation权限策略的权限。 read - - lakeformation:group:describe 查询LakeFormation用户组以及关联角色关系的权限。 read - - lakeformation:group:alter 修改LakeFormation用户组以及关联角色关系的权限。 write - - lakeformation:instance:describe 查询LakeFormation实例的权限。 read - - lakeformation:role:create 创建LakeFormation角色的权限。 write - - lakeformation:role:describe 查询LakeFormation角色的权限。 read - - lakeformation:role:drop 删除LakeFormation角色的权限。 write - - lakeformation:role:alter 修改LakeFormation角色以及关联用户组关系的权限。 write - - lakeformation:credential:describe 获取访问LakeFormation认证信息的权限。 read - - lakeformation:configuration:describe 查询用户配置的权限。 read - - lakeformation:user:alter 修改LakeFormation用户以及关联角色关系的权限。 write - - lakeformation:tableFile:alter 修改文件的权限。 write - - lakeformation:tableFile:describe 查询文件的权限。 read - - lakeformation:tableFile:drop 删除文件的权限。 write - - lakeformation:tableFile:create 创建文件的权限。 write - - lakeformation:tableFileGroup:create 创建文件组的权限。 write - - lakeformation:tableFileGroup:describe 查询文件组的权限。 read - - lakeformation:tableFileGroup:alter 修改文件组的权限。 write - - lakeformation:tableFileGroup:drop 删除文件组的权限。 write - - lakeformation:metadata:restore 恢复元数据的权限。 write - - lakeformation:metadataEvent:describe 查询元数据事件的权限。 read - - LakeFormation LakeCat API通常对应着一个或多个操作项。表4展示了API与操作项的关系,以及该API需要依赖的操作项。 表4 API与操作项的关系 API 对应的操作项 依赖的操作项 GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/functions lakeformation:function:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/names lakeformation:function:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name} lakeformation:function:describe - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name} lakeformation:function:drop - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name} lakeformation:function:alter - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions lakeformation:function:create - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions lakeformation:function:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs lakeformation:catalog:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs lakeformation:catalog:create - PUT /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name} lakeformation:catalog:alter - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name} lakeformation:catalog:drop - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name} lakeformation:catalog:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases lakeformation:database:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases lakeformation:database:create - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name} lakeformation:database:describe - PUT /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name} lakeformation:database:alter - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name} lakeformation:database:drop - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/names lakeformation:database:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/tables lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/list-by-names lakeformation:table:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables lakeformation:table:create - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name} lakeformation:table:describe - PUT /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name} lakeformation:table:alter - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name} lakeformation:table:drop - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/names lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/column-statistics/batch-get lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/column-statistics lakeformation:table:alter - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/column-statistics lakeformation:table:alter - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/batch-alter lakeformation:table:alter - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/batch-create lakeformation:table:alter - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/batch-drop lakeformation:table:alter - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/batch-get lakeformation:table:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/partition-names lakeformation:table:describe - GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/names lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/column-statistics/batch-get lakeformation:table:describe - POST /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/column-statistics lakeformation:table:alter - DELETE /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/tables/{table_name}/partitions/column-statistics lakeformation:table:alter - GET /v1/{project_id}/instances/{instance_id}/users lakeformation:user:describe - POST /v1/{project_id}/instances/{instance_id}/policies/grant lakeformation:policy:create - GET /v1/{project_id}/instances/{instance_id}/policies/policy lakeformation:policy:export - POST /v1/{project_id}/instances/{instance_id}/policies/revoke lakeformation:policy:drop - GET /v1/{project_id}/instances/{instance_id}/policies/show lakeformation:policy:describe - GET /v1/{project_id}/instances/{instance_id}/policies lakeformation:policy:export - GET /v1/{project_id}/instances/{instance_id}/groups lakeformation:group:describe - - lakeformation:group:alter - - lakeformation:group:alter - - lakeformation:group:alter - - lakeformation:group:describe - POST /v1/{project_id}/instances/{instance_id}/metaobj/count lakeformation:instance:describe - POST /v1/{project_id}/instances/{instance_id}/roles lakeformation:role:create - GET /v1/{project_id}/instances/{instance_id}/roles lakeformation:role:describe - DELETE /v1/{project_id}/instances/{instance_id}/roles/{role_name} lakeformation:role:drop - GET /v1/{project_id}/instances/{instance_id}/roles/{role_name} lakeformation:role:describe - PUT /v1/{project_id}/instances/{instance_id}/roles/{role_name} lakeformation:role:alter - GET /v1/{project_id}/instances/{instance_id}/roles/names lakeformation:role:describe - GET /v1/{project_id}/instances/{instance_id}/roles/{role_name}/principals lakeformation:role:describe - POST /v1/{project_id}/instances/{instance_id}/roles/{role_name}/grant-principals lakeformation:role:alter - POST /v1/{project_id}/instances/{instance_id}/roles/{role_name}/revoke-principals lakeformation:role:alter - PUT /v1/{project_id}/instances/{instance_id}/roles/{role_name}/update-principals lakeformation:role:alter - POST /v1/{project_id}/instances/{instance_id}/credential lakeformation:credential:describe - GET /v1/{project_id}/instances/{instance_id}/configurations lakeformation:configuration:describe - POST /v1/{project_id}/instances/{instance_id}/users/{user_name}/grant-roles lakeformation:user:alter - POST /v1/{project_id}/instances/{instance_id}/users/{user_name}/revoke-roles lakeformation:user:alter - PUT /v1/{project_id}/instances/{instance_id}/users/{user_name}/update-roles lakeformation:user:alter - GET /v1/{project_id}/instances/{instance_id}/users/{user_name}/roles lakeformation:user:describe - POST /v1/{project_id}/instances/{instance_id}/policies/check-permission lakeformation:policy:describe - - lakeformation:metadata:restore - GET /v1/{project_id}/instances/{instance_id}/metadata-event lakeformation:metadataEvent:describe -
  • LakeFormation Console API 您可以在自定义策略语句的Action元素中指定LakeFormation Console API相关操作。详细操作如表1所示。 表1 LakeFormation支持的操作项 操作项 描述 访问级别 资源类型(*为必须) 条件键 lakeformation:job:create 创建LakeFormation任务的权限。 write - - lakeformation:job:describe 查询LakeFormation任务的权限。 read - - lakeformation:job:drop 删除LakeFormation任务的权限。 write - - lakeformation:job:alter 修改LakeFormation任务的权限。 write - - lakeformation:job:exec 执行LakeFormation任务的权限。 write - - lakeformation:instanceJob:create 创建LakeFormation任务的权限。 write - - lakeformation:instanceJob:describe 查询LakeFormation任务的权限。 read - - lakeformation:instanceJob:drop 删除LakeFormation任务的权限。 write - - lakeformation:instanceJob:alter 修改LakeFormation任务的权限。 write - - lakeformation:instanceJob:exec 执行LakeFormation任务的权限。 write - - lakeformation:instance:create 创建LakeFormation实例的权限。 write - - lakeformation:instance:describe 查询LakeFormation实例的权限。 read - - lakeformation:instance:drop 删除LakeFormation实例的权限。 write - - lakeformation:instance:alter 修改LakeFormation实例的权限。 write - - lakeformation:access:describe 查询LakeFormation接入客户端的权限。 read - - lakeformation:instance:access 查询或申请接入LakeFormation实例的权限。 write - - lakeformation:access:create 创建LakeFormation接入客户端的权限。 write - - lakeformation:access:delete 删除LakeFormation接入客户端的权限。 write - - lakeformation:agency:create 创建LakeFormation委托的权限。 write - - lakeformation:agency:drop 删除LakeFormation委托的权限。 write - - lakeformation:agency:describe 查询LakeFormation委托的权限。 read - - lakeformation:accessService:describe 查看LakeFormation接入服务的权限。 permission_management - - lakeformation:accessService:grant 授权LakeFormation接入服务的权限。 permission_management - - lakeformation:accessTenant:grant 授权LakeFormation接入租户的权限。 permission_management - - lakeformation:accessAgency:describe 查询LakeFormation接入委托信息的权限。 permission_management - - lakeformation:agreement:describe 查看LakeFormation服务协议的权限。 permission_management - - lakeformation:agreement:cancel 取消LakeFormation服务协议授权的权限。 permission_management - - lakeformation:agreement:grant 授权LakeFormation服务协议的权限。 permission_management - - lakeformation:obs:describe 查询OBS桶列表 read - - lakeformation:tag:describe 查询LakeFormation预定义资源标签的权限。 read - - LakeFormation Console API通常对应着一个或多个操作项。表2展示了API与操作项的关系,以及该API需要依赖的操作项。 表2 API与操作项的关系 API 对应的操作项 依赖的操作项 POST /v1/{project_id}/instances lakeformation:instance:create - GET /v1/{project_id}/instances lakeformation:instance:describe - DELETE /v1/{project_id}/instances/{instance_id} lakeformation:instance:drop - GET /v1/{project_id}/instances/{instance_id} lakeformation:instance:describe - PUT /v1/{project_id}/instances/{instance_id} lakeformation:instance:alter - POST /v1/{project_id}/instances/{instance_id}/default lakeformation:instance:alter - POST /v1/{project_id}/instances/{instance_id}/scale lakeformation:instance:alter - POST /v1/{project_id}/instances/{instance_id}/recover lakeformation:instance:create - POST /v1/{project_id}/access-service lakeformation:accessService:grant - GET /v1/{project_id}/access-service lakeformation:accessService:describe - POST /v1/{project_id}/agreement lakeformation:agreement:grant - GET /v1/{project_id}/agreement lakeformation:agreement:describe - DELETE /v1/{project_id}/agreement lakeformation:agreement:cancel - GET /v1/{project_id}/obs/buckets lakeformation:obs:describe obs:bucket:ListAllMyBuckets GET /v1/{project_id}/obs/buckets/{bucket_name} lakeformation:obs:describe obs:bucket:ListBucket obs:bucket:HeadBucket GET /v1/{project_id}/instances/{instance_id}/access lakeformation:instance:access - POST /v1/{project_id}/instances/{instance_id}/access lakeformation:instance:access - GET /v1/{project_id}/instances/{instance_id}/access-clients lakeformation:access:describe - POST /v1/{project_id}/instances/{instance_id}/access-clients lakeformation:access:create - GET /v1/{project_id}/instances/{instance_id}/access-clients/{client_id} lakeformation:access:describe - DELETE /v1/{project_id}/instances/{instance_id}/access-clients/{client_id} lakeformation:access:delete - PUT /v1/{project_id}/instances/{instance_id}/access-clients/{client_id} lakeformation:instance:alter - PUT /v1/{project_id}/instances/{instance_id}/tags lakeformation:instance:alter - POST /v1/{project_id}/agency lakeformation:agency:create - DELETE /v1/{project_id}/agency lakeformation:agency:drop - GET /v1/{project_id}/agency lakeformation:agency:describe - GET /v1/{project_id}/lakeformation-instance/tags lakeformation:tag:describe tms:predefineTags:list - lakeformation:instance:describe - - lakeformation:instance:alter -
  • 操作(Action) 操作(Action)即为策略中支持的操作项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在策略中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在策略语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于LakeFormation定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在策略语句的Condition元素中支持指定的键值。 如果该操作项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该操作项资源类型列没有值(-),则表示条件键对整个操作项生效。 如果此列没有值(-),表示此操作不支持指定条件键。 关于LakeFormation定义的条件键的详细信息请参见条件(Condition)。 LakeFormation支持的操作项、API与操作项的关系请参见以下详细介绍: LakeFormation Console API LakeFormation LakeCat API LakeFormation支持企业项目授权的API: GET /v1/{project_id}/instances API请求中包含“instance_id”的API,例如:GET /v1/{project_id}/instances/{instance_id}
  • URI GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 catalog_name 是 String catalog名称。只能包含字母、数字和下划线,且长度为1~256个字符。 database_name 是 String 数据库名称。只能包含中文、字母、数字、下划线、中划线,且长度为1~128个字符。
  • 响应示例 状态码: 200 OK { "catalog_name" : "hive", "database_name" : "policy_test", "owner" : "lakeformation", "owner_type" : "USER", "owner_auth_source_type" : " IAM ", "description" : "", "location" : "obs://lakeformation/test", "parameters" : { "transient_lastDdlTime" : "120", "comment" : "comment message", "classification" : "other" }, "table_location_list" : [ ], "function_location_list" : [ ] } 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException" } 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed' } 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden" } 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404" } 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred" } 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 租户token。 表3 请求Body参数 参数 是否必选 参数类型 描述 [数组元素] 是 Array of AccessRequestInfo objects 申请接入信息。 表4 AccessRequestInfo 参数 是否必选 参数类型 描述 vpcep_id 是 String 虚拟私有云终端节点ID。在 接入管理-创建客户端-前往VPC创建- VPC终端节点 创建和查看。 domain 是 String 分组独立 域名
  • 响应示例 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException" } 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed' } 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden" } 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404" } 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred" } 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error" }
  • 响应参数 状态码: 200 表5 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,定位辅助信息。 状态码: 204 表6 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,定位辅助信息。 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。
  • URI POST /v1/{project_id}/instances/{instance_id}/access 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。
  • 响应示例 状态码: 200 OK { "function_name" : "1456", "function_type" : "JAVA", "owner" : "owner_2", "owner_type" : "USER", "owner_auth_source_type" : "IAM", "class_name" : "34", "create_time" : "2022-12-09T01:50:56.000+00:00", "resource_uris" : [ { "type" : "JAR", "uri" : "obs://lakeformation-test/" }, { "type" : "FILE", "uri" : "obs://lakeformation-test/test3/" } ] } 状态码: 400 Bad Request { "error_code" : "common.01000001", "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException" } 状态码: 401 Unauthorized { "error_code": 'APIG.1002', "error_msg": 'Incorrect token or token resolution failed' } 状态码: 403 Forbidden { "error" : { "code" : "403", "message" : "X-Auth-Token is invalid in the request", "error_code" : null, "error_msg" : null, "title" : "Forbidden" }, "error_code" : "403", "error_msg" : "X-Auth-Token is invalid in the request", "title" : "Forbidden" } 状态码: 404 Not Found { "error_code" : "common.01000001", "error_msg" : "response status exception, code: 404" } 状态码: 408 Request Timeout { "error_code" : "common.00000408", "error_msg" : "timeout exception occurred" } 状态码: 500 Internal Server Error { "error_code" : "common.00000500", "error_msg" : "internal error" }
  • URI GET /v1/{project_id}/instances/{instance_id}/catalogs/{catalog_name}/databases/{database_name}/functions/{function_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 catalog_name 是 String catalog名称。只能包含字母、数字和下划线,且长度为1~256个字符。 database_name 是 String 数据库名称。只能包含中文、字母、数字、下划线、中划线,且长度为1~128个字符。 function_name 是 String 函数名称。只能包含字母、数字和下划线,且长度为1~256个字符。
  • 响应参数 状态码: 200 表3 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID,定位辅助信息。 表4 响应Body参数 参数 参数类型 描述 catalog_name String catalog名称。 catalog_id String catalogID。 database_name String 数据库名称。 database_id String 数据库ID。 function_name String 函数名称。只能包含字母、数字和下划线,且长度为1~256个字符。 function_type String 函数类型,JAVA。 枚举值: JAVA function_id String 函数ID。 owner String 函数所有者。只能包含字母、数字和下划线,且长度为1~256个字符。 owner_type String 所有者类型:USER-用户、GROUP-组、ROLE-角色。 枚举值: USER GROUP ROLE owner_auth_source_type String 所有者授权来源类型:IAM-云用户、SAML-联邦、LDAP-ld用户、LOCAL-本地用户、AGENTTENANT-委托、OTHER-其它。LakeFormation服务分为一期和二期,一期响应Body无该参数。 枚举值: IAM SAML LDAP LOCAL AGENTTENANT OTHER class_name String 函数类名。 create_time String 创建时间格式为yyyy-mm-ddThh:mm:sss。 update_time String 函数元数据最后一次修改时间。 resource_uris Array of FunctionResourceUri objects 函数地址信息。 表5 FunctionResourceUri 参数 参数类型 描述 type String 函数包类型:JAR,FILE,ARCHIVE。 枚举值: JAR FILE ARCHIVE uri String 函数包地址信息。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 solution_msg String 解决方案描述。
  • 答: 当前实例包含客户端时,将无法进行删除。请先删除所有接入管理客户端后再执行删除实例操作。详细操作如下: 登录LakeFormation管理控制台,在左侧导航栏单击“接入管理”。 依次单击列表中所有客户端“操作”列的“删除”,直到删除所有客户端。(删除前请确保客户端已不再使用) 在左侧导航栏单击“总览”,单击右上角“删除当前实例”,确认并勾选操作影响后,单击“确定”。 如果发生报错,请根据报错详情进行处理。 删除后,实例会放在回收站,并继续计费直到从回收站删除。 如果需要恢复已删除的实例,可在左侧导航栏单击“回收站”,单击“操作”列的“还原”,单击“确定”。 实例在回收站存放超过1天后,会自动删除,无法恢复。 为防止您的业务受到影响,实例在回收站中放置15分钟后,才能强制删除。
  • 如何获取AK/SK AK/SK(Access Key ID/Secret Access Key)即访问密钥,包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,系统通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。 登录华为云管理控制台。 将鼠标移动到右上角用户名,在下拉列表中单击“我的凭证”。 在“我的凭证”页面中选择“访问密钥”。 单击“新增访问密钥”,进入“新增访问密钥”页面。 根据提示输入对应信息,单击“确定”,在弹出的提示页面单击“立即下载”。 下载成功后,打开凭证文件,获取AK/SK信息。 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台界面获取。请在生成后妥善保管。
  • LakeFormation适用哪些场景 LakeFormation适用于以下场景: 数据湖 建设和持续运营:数据湖建设和持续运营,是指数据湖的初始化建设及后续日常的海量元数据及权限管理,因此客户需要便捷高效的建设和管理方式。 多计算引擎共享元数据:多计算引擎共享元数据,是指客户的多种计算引擎(Hive、Spark等)均使用统一的元数据,最大化实现数据的共享,避免不必要的重复数据,更大程度释放业务数据价值。
  • 什么是项目 云的每个区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以区域默认单位为项目进行授权,IAM用户可以访问您账号中该区域的所有资源。 如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得IAM用户仅能访问特定子项目中的资源,使得资源的权限控制更加精确。 项目中的资源不能转移。
  • 什么是区域和可用区 通常用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region)指物理的数据中心。每个区域完全独立,这样可以实现一定程度的容错能力和稳定性。资源创建成功后不能更换区域。 可用区(AZ,Availability Zone)是同一区域内,电力和网络互相隔离的物理区域,一个可用区不受其他可用区故障的影响。一个区域内可以有多个可用区,不同可用区之间物理隔离,但内网互通,既保障了可用区的独立性,又提供了低价、低时延的网络连接。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 什么是LakeFormation 湖仓构建 (DataArts Lake Formation,简称LakeFormation)是企业级数据湖一站式构建服务。 在存算分离架构基础上提供数据湖元数据统一管理的可视化界面及API,兼容Hive元数据模型以及Ranger权限模型,支持对接 MapReduce服务 MRS )、 数据仓库 服务 GaussDB (DWS)、 数据湖探索 DLI )、 AI开发平台 ModelArts、 数据治理中心 DataArts Studio 等多种计算引擎及大数据云服务,使用户可以便捷高效地构建数据湖和运营相关业务,加速释放业务数据价值。 LakeFormation产品通过底层资源实现跨AZ部署及高可靠、弹性伸缩、元数据统一管理、元数据与文件目录联动授权、对接多计算引擎等功能,是一个Serverless服务。
  • 产品生命周期 生命周期是指LakeFormation实例从创建到删除(或释放)历经的各种状态。LakeFormation各状态说明请参考表1。 表1 LakeFormation状态说明 状态 说明 资源准备中 创建LakeFormation实例后,LakeFormation实例状正在进行资源准备。 资源准备失败 创建LakeFormation实例后,LakeFormation实例准备资源失败。 运行中 LakeFormation实例正常运行状态。在这个状态的实例可以运行您的业务。 资源释放中 执行删除LakeFormation实例操作后,资源正在进行释放。 删除中 触发删除LakeFormation实例后,在LakeFormation实例在彻底被删除之前的状态。 已删除 LakeFormation实例已经删除成功。 恢复中 已删除的实例正在从回收站中恢复。 冻结 如果您的账号因为欠费或者违规,LakeFormation实例将被冻结。此时该实例处于只读状态,不能进行修改和删除操作。
  • LakeFormation服务权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 LakeFormation授权时,在全局级服务中设置权限,不需要切换区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对LakeFormation服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。 表1 LakeFormation细粒度权限 操作类型 操作项 描述 只读 lakeformation:instance:describe 查询LakeFormation实例的权限。 lakeformation:catalog:describe 查询LakeFormation元数据的数据目录的权限。 lakeformation:database:describe 查询LakeFormation元数据的数据库的权限。 lakeformation:table:describe 查询LakeFormation元数据的数据表的权限。 lakeformation:function:describe 查询LakeFormation元数据的函数的权限。 lakeformation:policy:describe 查询LakeFormation权限策略的权限。 lakeformation:policy:export 批量查询LakeFormation权限策略的权限。 lakeformation:agency:describe 查询LakeFormation委托的权限。 lakeformation:credential:describe 获取访问LakeFormation认证信息的权限。 lakeformation:group:describe 查询LakeFormation用户组以及关联角色关系的权限。 lakeformation:user:describe 查询LakeFormation用户以及关联角色关系的权限。 lakeformation:role:describe 查询LakeFormation角色的权限。 lakeformation:configuration:describe 查询用户配置的权限。 lakeformation:access:describe 查询LakeFormation接入客户端的权限。 lakeformation:job:describe 查询LakeFormation任务的权限。 写 lakeformation:instance:create 创建LakeFormation实例的权限。 lakeformation:role:create 创建LakeFormation角色的权限。 lakeformation:policy:create 创建LakeFormation权限策略的权限。 lakeformation:function:create 创建LakeFormation元数据的函数的权限。 lakeformation:catalog:create 创建LakeFormation元数据的数据目录的权限。 lakeformation:database:create 创建LakeFormation元数据的数据库的权限。 lakeformation:table:create 创建LakeFormation元数据的数据表的权限。 lakeformation:access:create 创建LakeFormation接入客户端的权限。 lakeformation:agency:create 创建LakeFormation委托的权限。 lakeformation:job:create 创建LakeFormation任务的权限。 lakeformation:instance:alter 修改LakeFormation实例的权限。 lakeformation:catalog:alter 修改LakeFormation元数据的数据目录的权限。 lakeformation:database:alter 修改LakeFormation元数据的数据库的权限。 lakeformation:table:alter 修改LakeFormation元数据的数据表的权限。 lakeformation:function:alter 修改LakeFormation元数据的函数的权限。 lakeformation:role:alter 修改LakeFormation角色以及关联用户组关系的权限。 lakeformation:group:alter 修改LakeFormation用户组以及关联角色关系的权限。 lakeformation:user:alter 修改LakeFormation用户以及关联角色关系的权限。 lakeformation:job:alter 修改LakeFormation任务的权限。 lakeformation:instance:drop 删除LakeFormation实例的权限。 lakeformation:role:drop 删除LakeFormation角色的权限。 lakeformation:policy:drop 删除LakeFormation权限策略权限。 lakeformation:function:drop 删除LakeFormation元数据的函数的权限。 lakeformation:catalog:drop 删除LakeFormation元数据的数据目录的权限。 lakeformation:database:drop 删除LakeFormation元数据的数据库的权限。 lakeformation:table:drop 删除LakeFormation元数据的数据表的权限。 lakeformation:access:delete 删除LakeFormation接入客户端的权限。 lakeformation:agency:drop 删除LakeFormation委托的权限。 lakeformation:job:drop 删除LakeFormation任务的权限。 lakeformation:transaction:operate 操作LakeFormation事务的权限。 lakeformation:instance:access 查询或申请接入LakeFormation实例的权限。 lakeformation:job:exec 执行LakeFormation任务的权限。 表2 LakeFormation系统权限 系统角色/策略名称 描述 类别 依赖关系 LakeFormation FullAccess LakeFormation管理员权限,拥有该权限的用户可以操作并使用所有LakeFormation服务功能。 系统策略 无 LakeFormation ReadOnlyAccess LakeFormation只读权限,拥有该权限的用户可以执行LakeFormation所有查询类功能。 系统策略 无 LakeFormation CommonAccess LakeFormation基础权限,包含LakeFormation服务协议查看/授权/取消,以及OBS、TMS等周边依赖服务的基础权限集合。 系统策略 无
  • 权限 使用户具备针对某数据资源的具体访问/操作权限,如“ALTER”、“DROP”、“ALL”等。每种资源允许被授予的权限如下: 数据目录(CATA LOG ):全部权限(ALL)、修改(ALTER)、创建数据库(CREATE_DATABASE)、删除(DROP) 数据库(DATABASE):全部权限(ALL)、修改(ALTER)、删除(DROP)、描述(DESCRIBE)、列举表(LIST_TABLE)、列举函数(LIST_FUNC)、创建表(CREATE_TABLE)、创建函数(CREATE_FUNC) 数据表(TABLE):全部权限(ALL)、修改(ALTER)、删除(DROP)、描述(DESCRIBE)、更新(UPDATE)、插入(INSERT)、查询(SELECT)、删除数据(DELETE) 列(COLUMN):查询(SELECT) 函数(FUNC):全部权限(ALL)、修改(ALTER)、删除(DROP)、描述(DESCRIBE)、执行(EXEC)
  • 授权对象 LakeFormation中管理的元数据对象,包含Catalog、Database、Table等数据资源,如某一数据库、某些数据表的列等。允许授权的资源类型包括“CATALOG”、“DATABASE”、“TABLE”、“COLUMN”、“FUNC”等。 数据目录(CATALOG):LakeFormation管理的数据目录,可以包含多个数据库。 数据库(DATABASE):LakeFormation管理的数据库,可以包含多个数据表或函数。 数据表(TABLE):LakeFormation管理的数据表,可以包含多个列。 列(COLUMN):LakeFormation管理的列。 函数(FUNC):LakeFormation管理的函数。
  • 计费项 华为云湖仓构建服务LakeFormation根据您选择的实例规格和使用时长计费。 详细的计费项及说明请参考表1。 您也可以通过LakeFormation提供的价格计算器,选择您需要的实例规格和使用时长等,来快速计算出购买LakeFormation实例的参考价格。 表1 计费项信息 实例规格 计费项 计费说明 独享型 元数据对象数量 按照元数据对象使用量收费,元数据对象数量为Catalog、数据库、表、分区、索引、函数数量之和。 按照万个/小时计费,不足万个按照万个计算。 每秒查询率(QPS) 按照用户购买时选择的QPS上限进行计费。当前支持购买1W至5W五种QPS规格。 共享型 元数据对象数量 按照元数据对象使用量收费,元数据对象数量为Catalog、数据库、表、分区、索引、函数数量之和。 前100万个不计费,后续按照万个/小时计费,不足万个按照万个计算。 API调用次数 按照元数据相关API的调用次数收费,每个月前100万次不收费,后续按每次计费。
  • 到期与欠费 用户欠费后,可以查看欠费详情。为防止相关资源被停止或者释放,需要用户及时进行充值。如果账户余额不足,账号将进入欠费状态,需要在约定时间内支付欠款,详细操作请参考欠费还款。 如果没有及时的进行续费或充值,将进入宽限期。如宽限期满仍未续费或充值,将进入保留期。在保留期内资源将停止服务。保留期满仍未续费或充值,存储在云服务中的数据将被删除、云服务资源将被释放。详细说明请参考“资源停止服务或逾期释放说明”。宽限期与保留期的具体规则请参考“宽限期保留期”。
  • 约束与限制 IAM用户组被删除后,LakeFormation云服务数据权限中的相关权限策略,需要用户手动清理删除。 建库时路径不能为所在Catalog父路径或相同路径,不能为同一Catalog下其他数据库(除default外)路径的父路径、子路径或相同路径。 创建数据库的存储位置必须在所属Catalog的存储位置之下。 用户自定义创建的Catalog对象及其子元数据对象,暂不支持授权和细粒度权限控制。 LakeFormation数据权限单次授权,授权主体不能超过20个,元数据对象不能超过10个。 LakeFormation中,总分区数量不超过1,000,000,000。 LakeFormation不支持跨Region的元数据和权限统一管理。 LakeFormation不支持跨实例的元数据和权限统一管理。 一个数据表中,每个分区所对应的Partition Value组合必须在全表唯一。 由Partition Keys和Partition Values组合构成的Partition Name,总长度不能超过1000字符。 元数据的参数描述中,1个中文字符对应3个字节。 LakeFormation依赖OBS服务的并行文件系统,OBS需要基于大数据存算分离场景进行分离部署;LakeFormation元数据的存储位置对应OBS路径,与存算分离架构的MRS等大数据集群对接。OBS并行文件系统需要支持AccessLabel特性。 LakeFormation中,不同实例的同名角色在授权时对应的OBS AccessLabel相同,不建议在同一个区域中的不同实例创建同名角色。
  • 与其他服务的关系 LakeFormation服务与其他服务的关系如下表所示。 表1 LakeFormation服务与其他服务的关系 服务名称 LakeFormation服务与其他服务的关系 统一身份认证 (Identity and Access Management,IAM) 通过IAM完成对IAM用户或委托的身份认证以及部分访问控制。 云审计 服务(Cloud Trace Service, CTS ) 云审计服务记录LakeFormation服务相关的操作事件,方便用户日后的查询、审计和回溯。 对象存储服务 (Object Storage Service,OBS) LakeFormation服务的元数据所映射的实际业务数据,存储在OBS并行文件系统的目录和文件。 MapReduce服务(MapReduce Service,MRS) LakeFormation与MRS集群中的Ranger、Hive、Spark对接,实现湖、仓元数据统一管理。 数据仓库服务 GaussDB(DWS) LakeFormation与DWS对接,实现湖、仓元数据统一管理。
  • 产品功能 表1列出了湖仓构建LakeFormation提供的常用功能特性。 在使用LakeFormation之前,建议您先了解湖仓构建服务LakeFormation的基本概念,以便更好地理解LakeFormation提供的各项功能。 表1 湖仓构建服务LakeFormation功能概览 功能名称 功能描述 实例类型 LakeFormation提供了不同实例类别,满足不同场景下客户对性能和成本的不同诉求。具体介绍请参考共享型与独享型LakeFormation对比。 实例管理 LakeFormation提供实例的创建、总览、删除等基本功能,帮助您便捷的进行实例管理,加速实现数据湖承载的业务的规划和部署。 元数据管理 LakeFormation提供数据湖元数据Catalog、数据库、数据表等的创建、修改、查看、删除等功能,并支持配置元数据生命周期。帮助您便捷的进行数据湖初始化构建以及持续运营,集中式的统一管理LakeFormation实例下所有的元数据,加速实现数据湖承载的业务的规划和部署。 数据权限管理 LakeFormation提供针对Catalog、Database、Table等数据资源的授权、取消、查看等功能。帮助您对数据湖实现便捷的统一的数据权限管理。 任务管理 LakeFormation支持将外部服务的元数据及其权限全量或增量迁移至当前LakeFormation实例中,对元数据及权限进行统一管理。 接入管理 LakeFormation提供统一的接入管理能力,用户可以通过创建接入客户端的方式为指定的客户端环境建立网络连接通道,同时可以在客户端详情中查看接入IP、接入域名等信息,用于其他云服务接入LakeFormation实例。
  • 产品优势 生态开放 遵循开源事实标准,支撑存量业务平滑演进。 提供兼容Hive/Spark/Flink/Trino社区的元数据接口,支持计算引擎平滑对接。 提供兼容Ranger的权限接口,一次授权,统一生效。 提供迁移工具,支持存量MRS集群相关元数据的平滑迁移。 数智融合 打通大数据的数据壁垒,实现真正数智融合。 支持数据库、表、函数、模型、非结构化数据集等统一管理。 实现统一的细粒度数据权限管理,支持跨服务/跨集群的数据共享。 大规格高可靠 支撑超大规模大数据业务的高可靠。 超大规模元数据管理能力。 统一权限管理能力,支持海量细粒度权限管理。 支持多AZ的容灾能力。 简单易用 提供基于元数据的增值管理能力。 Serverless架构,开箱即用。 提供数据湖管理、元数据统计等管理能力。
共100000条