云服务器内容精选

  • 前提条件 当前实例已创建存储迁移元数据的Catalog。 待操作用户具有OBS相关操作权限、具有已创建存储迁移元数据的Catalog的操作权限。 已创建了用于存储迁移数据的OBS并行文件系统。 表的Owner只能包含字母、数字和下划线(_),且长度为1~49个字符。不能包含中划线(-)等其他字符。 如果需要迁移多个 MRS 集群中的元数据到同一个LakeFormation实例,MRS集群之间的Database名称不能重复。 如果需要进行多次迁移,表的列更新需要满足列排序和列类型一致的兼容性要求。
  • LakeFormation服务权限 默认情况下,管理员创建的 IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 IAM项目只读授权指导:当租户管理员需要给某个子用户分配LakeFormation服务在某个IAM项目下的只读权限。可以给该用户创建一个用户组,同时在用户组将LakeFormation ReadOnlyAccess系统策略授权给指定IAM项目即可。 企业项目授权指导:当租户管理员需要给某个子用户分配LakeFormation服务在某个企业项目下的所有操作权限。可以给该用户创建一个用户组,同时在用户组中将LakeFormation CommonAccess授权给全局,将LakeFormation FullAccess授权给指定企业项目即可。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。多数细粒度策略以API接口为粒度进行权限拆分,LakeFormation的自定义IAM策略操作可参考创建LakeFormation自定义IAM策略。 表1 LakeFormation系统策略 系统角色/策略名称 描述 类别 依赖关系 LakeFormation FullAccess LakeFormation管理员权限,拥有该权限的用户可以操作并使用所有LakeFormation服务功能。 系统策略 IAM AgencyFullAccess OBS OperateAccess VPC FullAccess VPCEndpoint FullAccess LakeFormation ReadOnlyAccess LakeFormation只读权限,拥有该权限的用户可以执行LakeFormation所有查询类功能。 系统策略 IAM ReadOnlyAccess OBS ReadOnlyAccess VPC ReadOnlyAccess VPCEndpoint ReadOnlyAccess LakeFormation CommonOperations LakeFormation基础权限,包含LakeFormation服务协议查看/授权/取消,以及OBS、TMS等周边依赖服务的基础权限集合。 系统策略 IAM ReadOnlyAccess OBS ReadOnlyAccess VPC FullAccess VPCEndpoint FullAccess 表2 LakeFormation的IAM权限列表 操作类型 操作项 描述 只读 lakeformation:access:describe 查询接入客户端。 lakeformation:accessAgency:describe 查询接入委托信息。 lakeformation:accessService:describe 查看接入服务。 lakeformation:agency:describe 查询委托。 lakeformation:agreement:describe 查询服务协议授权。 lakeformation:catalog:describe 查询Catalog元数据。 lakeformation:configuration:describe 查询配置。 lakeformation:credential:describe 查询认证信息。 lakeformation:database:describe 查询数据库元数据。 lakeformation:dataset:describe 查询数据集元数据。 lakeformation:dataset:describeFile 查询数据集文件元数据。 lakeformation:dataset:describeFileGroup 查询数据集文件组元数据。 lakeformation:function:describe 查询函数元数据。 lakeformation:group:describe 查询用户组信息。 lakeformation:instance:describe 查询实例。 lakeformation:instance:listAuthorizedLocation 查询授权资源。 lakeformation:instanceJob:describe 查询任务。 lakeformation:model:describe 查询模型元数据。 lakeformation:model:describeFile 查询模型文件元数据。 lakeformation:obs:describe 查询OBS桶列表。 lakeformation:policy:describe 查询权限策略。 lakeformation:policy:export 批量查询权限策略。 lakeformation:role:describe 查询角色。 lakeformation:table:describe 查询表元数据。 lakeformation:tableFileGroup:describe 查询表文件组元数据。 lakeformation:tag:describe 查询资源标签。 lakeformation:user:describe 查询用户以及关联角色关系。 写 lakeformation:access:create 创建接入客户端。 lakeformation:access:delete 删除接入客户端。 lakeformation:agency:create 创建委托。 lakeformation:agency:drop 删除委托。 lakeformation:catalog:alter 修改Catalog元数据。 lakeformation:catalog:create 创建Catalog元数据。 lakeformation:catalog:drop 删除Catalog元数据。 lakeformation:database:alter 修改数据库元数据。 lakeformation:database:create 创建数据库元数据。 lakeformation:database:drop 删除数据库元数据。 lakeformation:dataset:alter 修改数据集元数据。 lakeformation:dataset:alterFile 修改数据集文件元数据。 lakeformation:dataset:alterFileGroup 修改数据集文件组元数据。 lakeformation:dataset:create 创建数据集元数据。 lakeformation:dataset:createFile 创建数据集文件元数据。 lakeformation:dataset:createFileGroup 创建数据集文件组元数据。 lakeformation:dataset:drop 删除数据集元数据。 lakeformation:dataset:dropFile 删除数据集文件元数据。 lakeformation:dataset:dropFileGroup 删除数据集文件组元数据。 lakeformation:function:alter 修改函数元数据。 lakeformation:function:create 创建函数元数据 lakeformation:function:drop 删除函数元数据。 lakeformation:group:alter 修改用户组信息。 lakeformation:instance:access 申请接入服务。 lakeformation:instance:alter 修改实例。 lakeformation:instance:create 创建实例。 lakeformation:instance:drop 删除实例。 lakeformation:instanceJob:alter 修改任务。 lakeformation:instanceJob:create 创建任务。 lakeformation:instanceJob:drop 删除任务。 lakeformation:instanceJob:exec 执行任务。 lakeformation:model:alter 修改模型元数据。 lakeformation:model:alterFile 修改模型文件元数据。 lakeformation:model:create 创建模型元数据。 lakeformation:model:createFile 创建模型文件元数据。 lakeformation:model:drop 删除模型元数据。 lakeformation:model:dropFile 删除模型文件元数据。 lakeformation:policy:create 创建权限策略。 lakeformation:policy:drop 删除权限策略。 lakeformation:role:alter 修改角色。 lakeformation:role:create 创建角色。 lakeformation:role:drop 删除角色。 lakeformation:table:alter 修改表元数据。 lakeformation:table:create 创建表元数据。 lakeformation:table:drop 删除表元数据。 lakeformation:tableFileGroup:create 创建表文件组元数据。 lakeformation:tableFileGroup:drop 删除表文件组元数据。 lakeformation:transaction:operate 操作事务。 lakeformation:user:alter 修改用户以及关联角色关系。 权限管理 lakeformation:accessService:grant 授权接入服务。 lakeformation:accessTenant:grant 授权接入租户。 lakeformation:agreement:cancel 取消服务协议授权。 lakeformation:agreement:grant 授权服务协议授权。 lakeformation:instance:authorizeLocation 授权OBS路径。 lakeformation:instance:cancelAuthorizeLocation 取消授权OBS路径。
  • 操作流程 图1 给用户授权LakeFormation权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予LakeFormation服务对应权限。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1.创建用户组并授权中创建的用户组。 用户登录并验证权限 以新创建的用户登录云服务控制台,切换至授权区域,验证权限是否生效。 例如: 在“服务列表”中选择LakeFormation服务,进入总览界面,单击右上角“购买实例”,实例创建界面正常展示,表示“lakeformation:role:create”权限已生效。
  • 前提条件 已参考元数据迁移完成元数据迁移。 当前用户具有OBS相关操作权限,且已创建用于存储数据的OBS并行文件系统。 需将待迁移的权限策略文件导出,并上传至OBS并行文件系统中。权限导出操作可联系对应服务支持人员。 权限策略中授权主体(除角色外)需要提前创建,且名称需保持一致;权限策略中包含的元数据已存在,且名称一致。 如果迁移类型为DLF,其对应关系及迁移策略如下: RAM 用户:IAM用户(如果对应的IAM用户不存在,该权限策略不进行迁移) RAM角色:IAM用户组(如果对应的IAM用户组不存在,该权限策略不进行迁移) DLF角色:LakeFormation角色(不存在会自动创建) 如果迁移类型为Ranger,则仅支持Ranger的allow权限迁移,不支持deny权限迁移。
  • 准备开发环境 在进行LakeFormation Java SDK开发程序前,要准备的开发环境如表1所示。 表1 开发环境 准备项 说明 安装Java和JDK环境 已安装Java环境,Java版本要求使用JDK1.8或更高版本。 安装和配置IntelliJ IDEA 用于开发应用程序的工具,版本要求:2019.1或其他兼容版本。 说明: 若使用IBM JDK,请确保IntelliJ IDEA中的JDK配置为IBM JDK。 若使用Oracle JDK,请确保IntelliJ IDEA中的JDK配置为Oracle JDK。 若使用Open JDK,请确保IntelliJ IDEA中的JDK配置为Open JDK。 不同的IntelliJ IDEA不要使用相同的workspace和相同路径下的示例工程。 安装Maven 开发环境的基本配置。用于项目管理,贯穿软件开发生命周期。 7-zip 用于解压“*.zip”和“*.rar”文件。 支持7-Zip 16.04版本。
  • 简介 在进行 湖仓构建 应用开发时,要准备的环境如表1所示。 同时需要准备运行调测的环境,用于验证应用程序运行正常。 表1 准备项 准备项 说明 准备LakeFormation实例 在LakeFormation控制台创建实例,或者使用已有LakeFormation实例。 创建客户端 在LakeFormation控制台接入管理界面创建客户端。 修改DNS信息 在云解析服务中,修改linux环境所在子网的内网 域名 信息。 父主题: 环境准备
  • 应用开发简介 湖仓构建(DataArts Lake Formation,简称LakeFormation)是企业级 数据湖 一站式构建服务。 在存算分离架构基础上提供数据湖元数据统一管理的可视化界面及API,兼容Hive元数据模型以及Ranger权限模型,支持对接多种计算引擎及大数据云服务 本文档提供LakeFormation服务应用开发流程、环境准备及程序编写介绍,供需要进行业务应用开发的开发人员使用。 父主题: 服务介绍
  • URI GET /v1/{project_id}/instances/{instance_id}/access-clients 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 表2 Query参数 参数 是否必选 参数类型 描述 id 否 String ID搜索。根据ID进行搜索。 name 否 String 名称关键字搜索。只能包含字母、数字、下划线和中划线,且最大长度为32个字符。 offset 是 Integer 分页查询时的偏移量。默认值为0。最小值为0,最大值为1000。 limit 否 Integer 分页一页显示数。默认值为10。最小值为1,最大值为1000。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 access_client_infos Array of AccessClientInfo objects 接入客户端信息列表。 total Integer 接入客户端信息总数。 表5 AccessClientInfo 参数 参数类型 描述 id String 客户端ID。 name String 客户端名称。 access_mode String 接入模式:YSTEM、CUSTOM、AUTO。 枚举值: SYSTEM CUSTOM AUTO status String 客户端状态:CREATING、RUNNING、DELETING、DELETED、CREATE_FAIL、DELETE_FAIL。 枚举值: CREATING RUNNING DELETING DELETED CREATE_FAIL DELETE_FAIL vpc_id String VPC ID。 subnet_id String 子网ID。 access_connections Array of AccessConnectionInfo objects 接入连接列表。 create_time String 实例创建时间戳。 表6 AccessConnectionInfo 参数 参数类型 描述 vpcep_id String 虚拟私有云终端节点ID。在接入管理-创建客户端-前往VPC创建- VPC终端节点 创建和查看。 ip String 接入IP。 owner String 拥有者。 domain String 接入域名,通过IP接入访问Lakeformation API时,需在请求头中添加HOST参数并传入该域名。
  • 响应示例 状态码: 200 OK { "total" : 1, "access_client_infos" : [ { "id" : "gs23xxxxxxxxxxxxxxxxxxxxxxxxxxxxfgs2", "name" : "lakeformation_client", "access_mode" : "SYSTEM", "vpc_id" : "d3fcxxxxxxxxxxxxxxxxxxxxxxxxxxxx8f1e", "subnet_id" : "d3fcxxxxxxxxxxxxxxxxxxxxxxxxxxxx8f1e", "status" : "RUNNING", "access_connections" : [ { "vpcep_id" : "0612xxxxxxxxxxxxxxxxxxxxxxxxxxxxa8fb", "ip" : "10.1.0.1", "domain" : "example.com" }, { "vpcep_id" : "0612xxxxxxxxxxxxxxxxxxxxxxxxxxxxa8fb", "ip" : "10.1.0.2", "domain" : "example.com" } ] } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 access_infos Array of AccessInfo objects accessinfo列表。 total Integer accessinfo总数。 表5 AccessInfo 参数 参数类型 描述 vpcep_service_name String 服务名称。 domain String 分组独立域名。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。 common_error_code String CBC公共错误码。 solution_msg String 解决方案描述。
  • URI GET /v1/{project_id}/instances/{instance_id}/access 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目ID。 instance_id 是 String LakeFormation实例ID。创建实例时自动生成。例如:2180518f-42b8-4947-b20b-adfc53981a25。 表2 Query参数 参数 是否必选 参数类型 描述 offset 是 Integer 分页查询时的偏移量。默认值为0。最小值为0,最大值为1000。 limit 否 Integer 分页一页显示数。默认值为10,最大值为1000。
  • 响应示例 状态码: 200 OK { "total" : 1, "access_infos" : [ { "vpcep_service_name" : "xxxxxx.apig.3ab1xxxxxxxxxxxxxxxxxxxxxxxxxxxxf524", "domain" : "example.com" } ] } 状态码: 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 响应Body参数 参数 参数类型 描述 [数组元素] Array of Catalog objects OK 表5 Catalog 参数 参数类型 描述 catalog_name String catalog名称。 catalog_id String catalogID。 description String 描述信息。 location String 路径地址。例如obs://location/uri/。 database_location_list Array of strings 数据库路径列表。当值为null时,响应Body无该参数。 owner String catalog所有者。LakeFormation服务分为一期和二期,一期响应Body无该参数。 owner_type String 所有者类型,USER-用户,GROUP-组,ROLE-角色。LakeFormation服务分为一期和二期,一期响应Body无该参数。 枚举值: USER ROLE GROUP owner_source String 所有者来源:IAM-云用户、SAML-联邦、LDAP-ld用户、LOCAL-本地用户、AGENTTENANT-委托、OTHER-其它。LakeFormation服务分为一期和二期,一期响应Body无该参数。 枚举值: IAM SAML LDAP LOCAL AGENTTENANT OTHER type String catalog类型,可选值为DEFAULT(代表默认的元数据类型)、CLICKHOUSE(代表CH类型),不设置时默认为DEFAULT。 创建时指定,不可修改。 枚举值: DEFAULT CLICKHOUSE update_time String catalog元数据最后一次修改时间。 状态码: 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 解决方案描述。
  • 响应示例 状态码: 200 OK [ { "catalog_name" : "hive", "description" : "Default catalog, for Hive", "location" : "obs://lakeformation/test", "database_location_list" : null, "owner" : "admin", "owner_type" : "USER", "owner_source" : "IAM" } ] 状态码: 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" }