暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

无感数据集成(Zero-ETL)

芬芳 2024-09-18
271

AnalyticDB for MySQL提供无感集成(Zero-ETL)功能,支持创建PolarDB MySQL版集群至AnalyticDB for MySQL集群的数据同步链路,帮助您一站式完成数据同步和管理,实现事务处理和数据分析一体化。

方案概述

在大数据时代,企业面临着大量分散在不同的系统和平台上的业务数据,为了有效地管理和利用这些数据,企业往往需要依赖于ETL工具对数据进行集中式管理。

ETL是将上层业务系统的数据经过提取(Extract)、转换清洗(Transform)、加载(Load)到数据仓库的处理过程,目的是将上游分散的数据整合到目标端数仓,通过在数仓中做进一步的计算分析,来为业务做有效的商业决策。

传统的ETL流程通常会面临以下挑战:

  • 资源成本增加:不同的数据源可能需要不同的ETL工具,搭建ETL链路会产生额外的资源成本。

  • 系统复杂度增加:用户需要自行维护ETL工具,增加了运维难度,无法专注于业务应用的开发。

  • 数据实时性降低:部分ETL流程涉及周期性的批量更新,在近实时的应用场景中,无法快速产出分析结果。

为了解决这些问题,阿里云瑶池数据库提供了无感集成(Zero-ETL)功能,可以快速构建业务系统(OLTP)和数据仓库(OLAP)之间的数据同步链路,将业务系统(OLTP)的数据自动进行提取、转换清洗和加载到数据仓库(OLAP),从而一站式完成数据同步和管理,实现事务处理和数据分析一体化,帮助客户专注于数据分析业务。

方案优势

  • 简单易用:用户无需创建和维护执行ETL(提取、转换、加载操作)的复杂数据管道,仅需选择源端数据和目标端实例,自动创建实时数据同步链路,减少构建和管理数据管道所带来的挑战,专注于上层应用开发。

  • 零成本:Zero-ETL链路不额外收费,可免费实现在AnalyticDB for MySQL中对上游数据进行分析。

  • 多源汇聚:通过Zero-ETL链路将多个实例中的数据实时同步至一个AnalyticDB for MySQL集群中,构建全局分析视角。

支持的同步链路

PolarDB MySQL版集群至AnalyticDB for MySQL集群的同步链路。

前提条件

  • AnalyticDB for MySQL集群与PolarDB MySQL版集群位于同一地域。

  • 已为PolarDB MySQL版集群创建数据库账号。

  • PolarDB MySQL版集群已开启Binlog

使用限制

仅部分地域支持无感集成(Zero-ETL)功能:华北2(北京)、华东1(杭州)、华东2(上海)、华南1(深圳)。

费用说明

同步链路不收取费用。

准备工作

创建AnalyticDB for MySQL服务关联角色

  1. 前往RAM控制台角色列表。

  2. 检查角色列表中,是否已存在名为AliyunServiceRoleForAnalyticDBForMySQL的服务关联角色。若不存在,则需创建相关角色。

  3. 单击左侧创建角色

  4. 在弹出的创建角色对话框中,选择阿里云服务,并单击下一步

  5. 选择角色类型为服务关联角色,并选择AnalyticDB for MySQL。

  6. 单击完成,返回角色列表,确保已成功创建服务关联角色。

授予RAM用户管理权限

RAM用户创建和管理Zero-ETL链路需要下列两种权限。

授予RAM用户AnalyticDB for MySQL管理权限

RAM用户必须拥有AnalyticDB for MySQL的管理权限AliyunADBFullAccess,才可以创建和管理AnalyticDB for MySQL的Zero-ETL链路。

授予RAM用户Zero-ETL管理权限

RAM用户需要具备为数据源实例与目标实例(AnalyticDB for MySQL)创建链路的权限,才能创建和管理Zero-ETL链路。您可以自定义权限策略,允许为数据源和AnalyticDB for MySQL的所有实例创建链路或仅为指定实例创建链路,并将自定义权限策略授权给RAM用户。创建自定义权限策略与RAM用户授权的操作,请参见创建自定义权限策略

自定义权限策略的脚本如下:

  • 为所有PolarDB MySQL版集群和AnalyticDB for MySQL集群授权

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:*",
                "acs:polardb:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": [
                "acs:dts:*:*:*"
            ]
        }
    ]
}
  • 为指定PolarDB MySQL版集群和AnalyticDB for MySQL集群授权
    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "dts:*",
                "Resource": [
                    "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
                    "acs:polardb:*:*:dbcluster/pc-bp13jqn4a26b0****"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "dts:DescribeRegions",
                    "dts:DescribeConfigRelations",
                    "dts:DescribeSrcLinkConfig",
                    "dts:DescribeDestLinkConfig",
                    "dts:DescribeLinkConfig"
                ],
                "Resource": "acs:dts:*:*:*"
            }
        ]
    }
    说明
    请将am-2zeod8ax4b9a****pc-bp13jqn4a26b0****替换成您的集群ID。

操作步骤

  1. 登录PolarDB控制台

  2. 在左侧导航栏单击数据集成

  3. 数据集成页面中的无感数据集成 (Zero-ETL)页签,单击创建Zero-ETL任务

  4. 创建Zero-ETL任务页面配置源库及目标库
    配置源库信息

    源库信息

    说明

    任务名称

    Zero-ETL任务名称。

    数据库类型

    选择PolarDB for MySQL

    接入方式

    仅支持云实例

    实例地区

    PolarDB MySQL版集群所属地域。

    PolarDB实例ID

    PolarDB MySQL版集群ID。

    数据库账号

    PolarDB MySQL版集群数据库账号。

    数据库密码

    PolarDB MySQL版集群数据库账号的密码。

    连接方式

    连接PolarDB MySQL版集群的方式。包括非加密链接SSL安全链接

    说明

    如果设置为SSL安全连接,您需要提前开启PolarDB MySQL版集群的SSL加密功能,详情请参见设置SSL加密

    配置目标库信息

    目标库信息

    说明

    数据库类型

    当前目标库仅支持AnalyticDB MySQL 3.0

    接入方式

    仅支持云实例

    实例地区

    AnalyticDB for MySQL集群所属的地域。

    实例ID

    AnalyticDB for MySQL集群ID。

    数据库账号

    AnalyticDB for MySQL集群的数据库账号。

    数据库密码

    AnalyticDB for MySQL集群数据库账号的密码。

  5. 上述参数配置完成后,单击测试连接以进行下一步,进入配置Zero-ETL页面,配置如下参数:

    配置项目

    说明

    实例级别选择所需同步的DDL和DML

    勾选所需同步的DML操作(insertupdatedelete)和DDL操作(createalterdroptruncate),默认全部勾选。

    源库对象

    PolarDB MySQL版集群中需进行同步的对象。

    已选择对象

    PolarDB MySQL版集群中已选择需要进行同步的对象。

    说明

    您可以通过单击右上角的批量编辑来对同步对象进行重命名,或者配置DML和DDL操作,详情请参见库表列名映射

    高级配置(选填)

    设置源库、目标库无法连接后的重试时间源库、目标库出现其他问题后的重试时间

  6. 上述参数配置完成后,单击下一步配置库表字段,配置信息如下:

    库表字段配置

    说明

    数据库名称

    已选数据库。

    表名称

    已选数据表。

    主键列

    已选数据表中的主键所在字段。

    分布键

    已选数据表中的分布键所在字段。

    类型

    数据表类型,包括分区表维度表

    定义状态

    定义完库表字段配置状态后,即从未定义变为已定义

  7. 配置完上述所有参数后,请单击下一步保存任务并预检查

  8. 等待预检查通过,单击启动,启动Zero-ETL任务。

    说明

    您可以在数据集成-无感数据集成 (Zero-ETL)页面,查看目标Zero-ETL任务的名称源/目标运行状态等信息。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论