更新时间:2026-08-17 GMT+08:00
分享

管理LakeFormation数据源

LakeFormation是企业级数据湖一站式构建服务,提供数据湖元数据统一管理的可视化界面及API,兼容Hive元数据模型以及Ranger权限模型,支持对接MapReduce服务(MRS)、数据仓库服务 DWS等多种计算引擎及大数据云服务,使客户便捷高效地构建数据湖和运营相关业务,加速释放业务数据价值。

用户可以将海量业务数据,存储在MRS的分析集群,即使用Hive/Spark组件保存,Hive/Spark的数据文件则保存在OBS中。然后使用DWS通过LakeFormation服务来读取MRS集群上的数据。

DWS支持使用LakeFormation管理元数据,通过在控制台上创建LakeFormation数据源连接。在相同网络中,配置DWS集群连接到LakeFormation实例,通过Lakeformation获取表的元数据及权限信息,随后将OBS中的文件数据读取到DWS。

应用场景

相比于直接在DWS中管理外表元数据,使用LakeFormation管理元数据更适合以下业务场景:

  • 场景1:企业已有基于LakeFormation构建的湖仓一体数据目录,希望DWS直接复用已有元数据,避免重复维护。
  • 场景2:多个计算引擎(DWS、Spark、Flink等)需要共享同一套元数据,通过LakeFormation实现统一元数据管理。
  • 场景3:需要统一的权限管控体系,通过LakeFormation集中管理数据访问权限。

约束与限制

  • 该特性受限商用(需联系技术支持人员),仅支持以下集群版本:
    • 存算分离集群仅支持9.0.1及以上集群版本。
    • 存算一体集群仅支持8.2.1.300及以上集群版本。
  • 删除LakeFormation数据源后,依赖该数据源的外表将无法正常使用,且操作不可逆,请谨慎操作。
  • 更新数据源配置期间,相关查询可能短暂失败,请在业务低峰期执行。

前提条件

  • 有可用的LakeFormation实例。详情请参见创建LakeFormation实例
  • 在LakeFormation控制台中的“接入管理”页面创建DWS集群所在VPC下的客户端,详情请参见管理接入客户端
  • 创建包含LakeFormation权限的委托(需包含最小权限),可参见创建LakeFormation委托配置,如果不配置在使用时将会报错。
  • DWS调用LakeFormation管理面API时,账号如果为子账号则需要包含LakeFormation权限(至少包含lakeformation:instance:access、lakeformation:instance:describe、lakeformation:credential:describe)。

创建LakeFormation委托

创建LakeFormation数据源前需要提前创建好授权给DWS的委托,该委托具有“LakeFormation FullAccess”“LakeFormationObsAccess”权限。

  1. 鼠标移动至页面右上角账号,单击“统一身份认证”,进入统一身份认证服务页面。
  2. 在左侧导航栏选择“权限管理 > 权限”,在权限页面右上角单击“创建自定义策略”
  3. 创建LakeFormationObsAccess自定义策略(如果已包含相同策略则忽略),相关参数配置如下,配置完成后单击“确定”

    • 策略名称:LakeFormationObsAccess
    • 策略配置方式:JSON视图
    • 策略内容:
      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:ListAllMyBuckets"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:GetLifecycleConfiguration",
                      "obs:bucket:GetBucketLocation",
                      "obs:bucket:PutLifecycleConfiguration",
                      "obs:bucket:PutBucketAcl",
                      "obs:bucket:HeadBucket",
                      "obs:bucket:GetBucketAcl",
                      "obs:bucket:ListBucket"
                  ],
                  "Resource": [
                      "OBS:*:*:bucket:*"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:object:GetAccessLabel",
                      "obs:object:PutObjectVersionAcl",
                      "obs:object:DeleteAccessLabel",
                      "obs:object:PutObjectAcl",
                      "obs:object:PutAccessLabel",
                      "obs:object:GetObjectVersion",
                      "obs:object:GetObject",
                      "obs:object:GetObjectVersionAcl",
                      "obs:object:DeleteObject",
                      "obs:object:DeleteObjectVersion",
                      "obs:object:GetObjectAcl",
                      "obs:object:PutObject"
                  ],
                  "Resource": [
                      "OBS:*:*:object:*"
                  ]
              }
          ]
      }
    • 策略描述:Permissions required for LakeFormation to access OBS(LakeFormation访问OBS所需的权限)
    • 作用范围:全局级服务

  4. 在左侧导航栏单击“委托”,在委托页面右上角单击“创建委托”
  5. 创建委托时委托类型选择“云服务”,云服务选择“数据仓库服务 DWS”
  6. 单击“完成”,在弹窗中单击“立即授权”对委托授予已创建的“LakeFormationObsAccess”自定义策略和“LakeFormation FullAccess”系统策略权限。

    如果最终DWS外表报错“ERROR: LakeFormation respond error, Http Code: 401, Error Code: lakeformation.00000016, Error Message: Insufficient IAM permission.”则说明权限不足,需要检查对LakeFormation委托权限正确。

  7. 单击“下一步”,选择授权资源范围为“所有资源”或需要访问的资源,确认无误后单击“确定”提交。

创建LakeFormation数据源

  1. 登录DWS管理控制台
  2. 在左侧导航栏,选择“集群 > 集群列表”
  3. 在集群列表,单击指定集群的名称,进入“集群详情”页面。
  4. 在上侧导航栏单击“数据源”,切换至LakeFormation数据源”页签。
  5. 在LakeFormation数据源页面,单击“创建LakeFormation数据源连接”,填写配置参数。

    图1 创建LakeFormation数据源连接
    表1 LakeFormation数据源连接参数说明

    参数名称

    说明

    数据源名称

    要创建的LakeFormation数据源连接名称。

    LakeFormation实例

    绑定的LakeFormation集群实例。在下拉列表中选择已创建的LakeFormation实例。

    数据库

    LakeFormation数据源连接所在的数据库。在下拉列表中选择LakeFormation实例中已存在的数据库。

    委托

    拥有LakeFormation授权的委托,用于DWS系统通过委托Token和LakeFormation交互以获取元数据。在下拉列表中选择已创建的委托。

    描述

    要创建的LakeFormation数据源连接的描述信息便于后续管理和识别

  6. 确认无误后,单击“确认”,弹出确认检查VPC终端节点的对话框,单击“是”提交创建操作,创建过程大约需要1分钟左右。
  7. 创建完成后,在LakeFormation数据源列表中查看新创建的数据源连接,配置状态显示为“可用”即表示创建成功。

更新LakeFormation数据源

用户如果需要更新LakeFormation数据源连接,可参考以下指导进行操作。

操作场景

  • 委托变更。
  • 当创建连接后删了VPC终端节点,导致无法正常使用数据源。
  • 由于特殊原因导致Token未能正常更新,确认问题修复后需要立即更新Token。

操作步骤

  1. 登录DWS管理控制台
  2. 在左侧导航栏,选择“集群 > 集群列表”
  3. 在集群列表,单击指定集群的名称,进入“集群详情”页面。
  4. 在上侧导航栏单击“数据源”,切换至LakeFormation数据源”页签。
  5. “LakeFormation数据源”列表中选择要更新的LakeFormation数据源,单击所在行“操作”列的“更新配置”
  6. 更新时仅支持更改委托,选择新的委托后,单击“确认”

    图2 更新LakeFormation数据源连接

  7. 弹出检查VPC终端节点的弹窗,确认无误后,单击“是”提交更新操作,更新过程大概需要1分钟左右。
  8. 更新完成后,在LakeFormation数据源列表中查看该数据源配置状态是否恢复为“可用”。如果之前因VPC终端节点删除导致数据源不可用,更新后状态应恢复正常。

删除LakeFormation数据源

  1. 登录DWS管理控制台
  2. 在左侧导航栏,选择“集群 > 集群列表”
  3. 在集群列表,单击指定集群的名称,进入“集群详情”页面。
  4. 在上侧导航栏单击“数据源”,切换至LakeFormation数据源”页签。
  5. “LakeFormation数据源”列表中选择要删除的LakeFormation数据源,单击所在行“操作”列的“删除”
  6. 弹出对话框,确认无误后输入“DELETE”或者单击“一键输入”,单击“确,提交删除操作,删除操作过程大概需要10秒钟左右。
  7. 删除完成后,在LakeFormation数据源列表中确认该数据源连接已从列表中消失,即表示删除成功。

使用LakeFormation数据源

使用LakeFormation数据源操作详情请参见使用LakeFormation数据源导入数据

相关文档

相关文档