更新时间:2024-11-21 GMT+08:00

元数据迁移

操作场景

用户可以参考该章节将外部的元数据迁移至LakeFormation并将数据存储在OBS中进行统一管理。

在迁移hive元数据时,为避免迁移元数据时发生路径冲突,建议hive Catalog路径与default数据库路径保持一致。

前提条件

  • 当前实例已创建存储迁移元数据的Catalog。
  • 待操作用户具有OBS相关操作权限、具有已创建存储迁移元数据的Catalog的操作权限。
  • 已创建了用于存储迁移数据的OBS并行文件系统。
  • 表的Owner只能包含字母、数字和下划线(_),且长度为1~49个字符。不能包含中划线(-)等其他字符。
  • 如果需要迁移多个MRS集群中的元数据到同一个LakeFormation实例,MRS集群之间的Database名称不能重复。
  • 如果需要进行多次迁移,表的列更新需要满足列排序和列类型一致的兼容性要求。

操作步骤

  1. 登录管理控制台。
  2. 在左上角单击“”,选择“大数据 > 湖仓构建 LakeFormation”进入LakeFormation控制台。
  3. 在左侧下拉框中选择待操作的LakeFormation实例,在左侧导航栏选择“任务管理 > 元数据迁移”。
  4. 单击“创建迁移任务”,配置相关参数后,单击“提交”。

    表1 创建元数据迁移任务

    参数

    参数说明

    任务名称

    填写待创建元数据迁移任务名称。

    描述

    所创建迁移任务的描述信息。

    数据源类型

    选择待迁移数据的数据源类型。

    • DLF:第三方数据湖构建(Data Lake Formation,DLF)
    • MRS云数据库RDS(for MySQL)
    • 开源HiveMetastore(for MySQL)
    • MRS云数据库RDS(for PostgreSQL)
    • MRS本地数据库

    JDBC URL

    待迁移元数据JDBC链接的URL。“数据源类型”不为“DLF”时配置该参数。

    说明:

    例如:

    • MySQL数据源类型JDBC URL为:jdbc:mysql://IP地址:端口/数据库名称?useSSL=false&permitMysqlScheme
    • PostgreSQL数据源类型JDBC URL为:jdbc:postgresql://IP地址:端口/数据库名称?socketTimeout=600

      socketTimeout为迁移客户端和数据库连接的socket超时时长。

    • 迁移除MRS本地数据库以外的数据源类型时,URL中的IP为数据源绑定的弹性公网IP。

    此外还需配置以下参数:

    • 用户名:访问数据源所使用的用户。
    • 密码:访问数据源所使用的用户密码。

      如果所使用用户存在密码,则必须填写;如果用户无密码,则为空即可。

    服务接入点

    配置待迁移元数据服务接入点。

    “数据源类型”为“DLF”时配置该参数。此外还需配置以下参数:

    • Access Key:联系DLF服务运维人员获取AK信息。
    • Secret Key:联系DLF服务运维人员获取SK信息。

    源Catalog

    待迁移元数据所属Catalog名称。

    迁移至Catalog

    元数据迁移至LakeFormation中Catalog的名称。

    冲突解决策略

    迁移过程中发生冲突的解决策略。

    当前仅支持“创建并更新元数据”。

    默认缺省Owner

    迁移后元数据的默认Owner。“数据源类型”为“DLF”时配置该参数。

    • 如果配置的默认Owner没有对应的元数据操作权限,迁移后的元数据将无法进行增删改查等操作,此时可以手动给Owner授权或者进行权限迁移。
    • 如果迁移前所有元数据都能正常使用,则不需要配置该参数。

    日志存储位置

    运行迁移任务时,产生的日志存储位置。可单击进行选择。

    该路径必须已在OBS中存在,如果为自定义路径将会导致迁移任务失败。

    是否强制建表

    勾选此项将会跳过建立内表时对OBS路径的限制。

    元数据过滤策略

    迁移过程中元数据的过滤策略。

    • 按元数据类型
    • 按自定义规则

    过滤策略存储位置

    迁移的自定义元数据过滤策略文件在OBS并行文件系统中的存储位置。

    “元数据过滤策略”选择“按自定义规则”时配置该参数。

    过滤策略文件名

    迁移的自定义元数据过滤策略文件名。

    “元数据过滤策略”选择“按自定义规则”时配置该参数。

    迁移元数据对象

    勾选待迁移的元数据对象。“元数据过滤策略”选择“按元数据类型”时配置该参数。

    • 全选:迁移数据库、函数、数据表、分区
    • Database:数据库
    • Function:函数
    • Table:数据表
    • Partition:分区
      说明:
      • 如果为首次迁移,建议选择“全部”,迁移全部元数据。
      • 如果仅勾选函数、数据表、分区的一种或几种时,需确保勾选元数据的上层目录存在。例如,只勾选了Table,则需要确保迁移目标Catalog中已包含该Table所在的数据库(例如DB_1)。否则会导致Table迁移成功的数量将为零个。
      • 如果勾选函数,需要确认函数类名存在,否则会导致函数迁移失败。

    添加location规则

    • 如果迁移的数据来源中,元数据的存储路径前缀不为“obs://”,则需要单击“添加location规则”配置规则将前缀替换为“obs://”,并且确保存在对应的OBS存储路径。

      例如,当前元数据的存储路径为“file:/a/b”,则“路径”填写“file:/”,“替换成”填写“obs://”,并确保OBS并行文件系统中存在“obs://a/b”路径,则生成元数据时新的元数据存储路径为“obs://a/b”。

    • 可以同时创建多条规则,当规则发生冲突时,以排在界面最上方的规则为准。

    网络连接

    选择网络连接方案。

    推荐选择“EIP”,使用EIP方式连接网络。

    同时需要选择“安全组ID”,即数据源所在VPC的安全组ID,用于打通网络。

    事件通知策略

    (当前该功能为公测阶段)

    (可选)配置该选项后,发生特定事件(例如任务成功、任务失败等)后会发送通知(短信、邮件等)。

    • 事件通知开关:开启后表示启用事件通知。
    • 事件通知主题:选择需要通知的主题,可以在管理控制台选择“消息通知服务 SMN”进行配置。
    • 事件:需要通知的主题状态,可选择“任务成功”、“任务失败”。

  5. 创建完成后,单击“操作”列的“运行”即可运行当前迁移任务。

    • 在运行迁移任务前,需要已对用户进行任务授权,详情请参考任务授权
    • 迁移任务开始运行后,源数据库如果有新增的元数据,则新增的元数据将不会被迁移,需要再次运行迁移任务。也可以使用元数据发现功能,迁移新增的元数据,具体请参考元数据发现
    • 如果任务运行失败,在修复故障后可再次单击“操作”列的“运行”进行重试。

    迁移任务完成后,可以在对应的元数据界面进行查看。例如进入“元数据 > 数据库”页面查看迁移完成的数据库。

    单击操作列的“编辑”或“删除”,可以修改或者删除当前任务。

  6. 单击“操作”列“查看日志”可以查看任务运行产生的日志。

    默认显示最近的50行日志。

    可单击日志最下方超链接查看完整日志,具体配置请参考下载对象章节。

    日志中常见报错信息及对应原因如下:

    日志报错信息

    报错原因

    field 'storageDescriptor.location' must match '^(obs|har)://.+/.+$'

    请配置正确的location规则,确保元数据路径以“obs://”开头。

    Invalid input parameter

    元数据的入参非法,或者LakeFormation暂时不支持此类元数据。

    Incorrect type of column xxx.

    列类型非法,或者LakeFormation不兼容此列类型。

    No permission to perform this operation on resources.

    请检查默认缺省Owner是否配置正确,以及是否有元数据操作权限。

    Error creating transactional connection factory

    LakeFormation服务端与数据源连接不通。解决思路如下:

    1. 数据源的用户名/密码或AK/SK是否正常。
    2. JDBC URL中填写的数据库是否准确。
    3. JDBC URL中填写的IP是否准确。

      如果数据源类型为MRS本地元数据,DBServer可能发生主备倒换,需要重新绑定弹性IP到主节点。

    4. 数据库连接端口安全组是否放开。
      • 如果选择EIP连接方式,任务运行前,数据源的安全组规则需要把0.0.0.0/0全部放开。
      • 如果选择VPC对等连接方式,任务运行前,数据源的安全组规则需要把对等连接中对端访问IP放开。

    输入的vpc网段与lakeformtion网段冲突

    选择VPC对等连接时,数据源所在的VPC网段和LakeFormation服务端所在网段冲突。此时可以选择EIP方式进行迁移。

    无日志内容

    请确认日志路径是否存在。

    • 日志路径已存在,请联系LakeFormation运维人员协助处理。
    • 日志路径不存在,请修改任务配置中的日志路径,确保日志路径在OBS中存在。

    The path should be a sub path of the catalog storage location or database location list

    路径应为Catalog存储位置或者数据库存储位置列表的子路径。

    Incorrect Partition Value

    输入的分区值错误, 请检查输入的表的分区键列表与输入的分区值列表数量和类型是否匹配。

    Database does not exist

    数据库不存在,请检查数据库是否存在。

    Location doesn't exist in the OBS Parallel File Systems

    路径在OBS并行文件系统中不存在。

    Folder obs://xxxx/yyyy/ is not empty in the OBS

    建表时OBS目录不能非空,迁移时需要勾选强制建表选项跳过该建表限制。