文档

无感数据集成(Zero-ETL)

更新时间:

AnalyticDB for MySQL提供无感集成(Zero-ETL)功能,可以帮助您一站式完成数据同步和管理,实现事务处理和数据分析一体化,专注于数据分析业务。

公测时间

2024年4月22号到6月30。

公测地域

华北2(北京)、华东1(杭州)、华东2(上海)、华南1(深圳)、中国(香港)、新加坡。

方案概述

在大数据时代,企业面临着大量分散在不同的系统和平台上的业务数据,为了有效地管理和利用这些数据,企业往往需要依赖于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集群中,构建全局分析视角。

支持的同步链路

RDS for MySQLAnalyticDB for MySQL的同步链路。

费用说明

同步链路不收取费用。

前提条件

准备工作

创建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用户授权

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

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

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

为所有RDS for MySQL实例和AnalyticDB for MySQL集群授权

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:*",
                "acs:rds:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": [
                "acs:dts:*:*:*"
            ]
        }
    ]
}

为指定RDS for MySQL实例和AnalyticDB for MySQL集群授权

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
                "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": "acs:dts:*:*:*"
        }
    ]
}

操作步骤

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在数仓版(3.0)页签,单击目标集群ID。

  2. 在左侧导航栏,选择数据传输服务 > 免费数据同步

  3. 单击创建Zero-ETL任务,在创建Zero-ETL任务页面配置源库信息和目标库信息

    • 配置源库信息:

      源库信息

      说明

      任务名称

      Zero-ETL任务名称。

      数据库类型

      当前源库仅支持RDS for MySQL

      接入方式

      仅支持云实例接入

      实例地区

      选择RDS for MySQL实例所属地域。

      实例ID

      RDS for MySQL实例ID。

      数据库名称

      RDS for MySQL实例的数据库名称。

      数据库账号

      RDS for MySQL实例的数据库账号。

      数据库密码

      RDS for MySQL实例数据库账号的密码。

      连接方式

      连接RDS for MySQL的方式。包括非加密链接和SSL安全链接。

      说明

      如果设置为SSL安全连接,您需要提前开启RDS for MySQL实例的SSL加密功能,详情请参见设置SSL加密

    • 配置目标库信息:

      目标库信息

      说明

      数据库类型

      当前目标库仅支持AnalyticDB MySQL 3.0

      接入方式

      仅支持云实例接入

      实例地区

      AnalyticDB for MySQL集群所属的地域。

      实例ID

      AnalyticDB for MySQL的集群ID。

      数据库账号

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

      数据库密码

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

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

    配置项目

    说明

    同步类型

    实现数据源之间的数据实时同步。

    同步类型分为:库表结构同步、全量同步、增量同步。

    说明

    同步任务固定勾选增量数据同步,将源库产生的增量数据实时同步至目标库。

    不需要增量同步时,请使用数据迁移

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

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

    源库对象和已选择对象

    数据库中源库对象和同步对象。

    高级配置(选填)

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

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

    库表字段配置

    说明

    数据库名称

    选择已有的数据库。

    表名称

    选择已有的数据表。

    主键列

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

    分布键

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

    类型

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

    定义状态

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

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

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

    您可以在免费数据同步页面,查看目标Zero-ETL任务的名称源/目标运行状态等信息。

  • 本页导读
文档反馈