阿里云数据管理DMS对接使用全流程指南:从零搭建企业级数据管控平台
1. DMS:企业数据全生命周期管理的核心枢纽
在数字化转型的浪潮中,数据已成为企业最核心的资产之一。然而,随着业务系统的复杂化,数据库实例的数量和类型急剧增加——既有云原生的RDS、PolarDB,也有自建的MySQL、PostgreSQL,甚至还有NoSQL数据库如Redis、MongoDB以及表格存储Tablestore等。如何在同一平台上统一管理这些异构数据源,同时保障数据安全、提升研发效率,是每个企业都面临的现实挑战。
阿里云数据管理DMS(Data Management)正是为解决这一系列问题而生。DMS是一款支撑数据全生命周期的一站式数据管理平台,提供全域数据资产管理、数据治理、数据库设计开发、数据集成、数据开发和数据消费等功能。同时,DMS内置的数据灾备(DBS)还提供了低成本、高可靠的备份恢复能力。简而言之,DMS不仅是一个数据库客户端工具,更是一套覆盖“管、研、治、用”全链路的数据管控体系。
与传统的数据库管理工具相比,DMS的核心优势体现在多个层面:在全域数据资产管理方面,DMS支持企业全域数据资产的统一纳管,提供贯穿数据生命周期的质量治理与安全治理;在数据集成方面,DMS支持常见数据源的实时、离线数据集成,数据集成过程中支持灵活自定义数据的处理逻辑,帮助解决企业数据孤岛的痛点;在易用性方面,DMS提供覆盖数据全生命周期的数据流转及处理能力,通过图形化、向导式的开发模式,智能预警及自主诊断修复等能力,降低企业数据价值挖掘门槛;此外,DMS还提供覆盖数据全生命周期的DevOps能力,内置阿里巴巴大规模实践的数据管控体系,在保障数据安全的同时提升企业研发效率。
需要先登录阿里云控制台,点击:阿里云控制台
2. 前期准备:账号体系与权限规划
在使用DMS之前,首要任务是完成身份认证体系的准备。DMS基于阿里云统一的RAM(Resource Access Management)账号体系进行身份认证。
2.1 主账号与RAM用户的合理划分
阿里云官方明确建议:如非必要,应避免直接使用阿里云主账号来访问数据管理DMS。推荐的做法是使用RAM身份(即RAM用户和RAM角色)来访问数据管理DMS和数据灾备。这一建议的核心在于最小权限原则——即授予用户执行某项任务所需的权限,不授予其他无需用到的权限。最小授权可以避免用户操作权限过大,提高数据安全性,减少因权限滥用导致的安全风险。
对于RAM用户的创建和管理,建议遵循以下最佳实践:
- 使用阿里云账号创建一个RAM用户并授予管理员权限,后续使用有管理员权限的RAM用户创建并管理其他RAM用户
- 将人员用户和程序用户分离,控制台用户使用账号和密码访问云产品控制台,API用户使用访问密钥AK(AccessKey)调用API访问云资源
- 对于通过控制台访问的用户,推荐为其开启MFA多因素认证
- 不要把RAM用户的AccessKey泄露给任何人
2.2 DMS权限体系的层次结构
DMS的权限体系分为两个层次:一是RAM层面的云资源访问权限,二是DMS内部的数据资产操作权限。
在RAM层面,您需要为RAM用户授予操作DMS的权限。系统策略如AliyunDMSFullAccess(管理DMS的权限)和AliyunDMSReadOnlyAccess(只读访问DMS的权限)可以满足大部分场景。如果系统策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。例如,以下自定义权限策略仅允许RAM用户登录指定的RDS实例:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["dms:LoginDatabase"],
"Resource": ["acs:rds:*:*:dbinstance/[$RDS_ID]"]
}
]
}在DMS内部层面,您可以通过权限策略为不同粒度的数据资源(例如实例、数据库、逻辑库、数据表等)设置访问权限,包括查询和变更权限。DMS还支持通过用户管理功能为不同用户分配管理员、DBA、普通用户等角色。
3. 实例录入:将数据库接入DMS
完成账号准备后,下一步就是将需要管理的数据库实例录入到DMS中。DMS支持多种类型的数据库接入,包括阿里云数据库(RDS、PolarDB、Redis等)、自建数据库以及第三方云数据库。
3.1 录入阿里云数据库实例
对于阿里云上的数据库实例,录入过程最为简便。登录DMS控制台后,在页面左上角单击“新增实例”按钮。在新增实例对话框中,选择“阿里云”作为数据来源,系统会自动列出您账号下可用的数据库实例,选择目标实例并配置数据库账号和密码即可完成录入。
需要注意的是,首次使用DMS服务时,系统会提示创建DMS服务关联角色AliyunServiceRoleForDMS。该服务角色用于允许DMS访问您的ECS、VPC、RDS以及各类数据库/工具相关的资源。
3.2 通过数据库网关DG接入本地或第三方云数据库
将本地或第三方云的数据库接入阿里云时,传统方案存在明显的局限性:通过专线、VPN网关或智能网关接入成本较高;将数据库的服务端口暴露至公网存在被攻击的安全风险;自建代理转发服务稳定性较差且技术成本较高。
针对以上问题,数据管理DMS提供了通过数据库网关(Database Gateway,简称DG)录入本地机房或第三方云数据库的功能。数据库网关支持在不暴露公网IP的前提下,将本地自建或第三方云厂商的数据库与阿里云服务连接起来,并对数据传输进行安全加密。数据库网关目前免费使用。
使用数据库网关接入数据库的操作步骤如下:
- 登录数据库网关控制台,单击左上角选择数据库所处的地域,然后单击“新建网关”按钮
- 在弹出的对话框中填写网关名称和备注信息,单击“下一步”
- 安装网关。根据操作系统类型选择不同的安装包:Windows系统直接单击下载安装包;Linux/MacOS系统复制命令行到需要安装网关的机器上执行。网关程序所在的机器需要满足两个条件:可以连通待接入的数据库,以及可以访问公网(无需公网IP,无需暴露端口至公网)
- 在网关中添加数据库。选择手动添加方式,输入数据库地址(格式为“主机:端口”,例如172.168.200.152:3306)
- 登录DMS控制台,在页面左上角单击“新增实例”
- 在新增实例弹框中,选择“本地/他云数据库”作为数据来源,并选择具体的数据库类型。支持的数据库类型包括MySQL、SQLServer、PostgreSQL、Oracle、MongoDB、Redis、ClickHouse等
- 填写实例信息:选择数据库网关所在的地域、选择已创建的网关ID、输入数据库的内网地址和端口、配置数据库账号和密码
3.3 配置白名单与网络访问
对于自建数据库或第三方云数据库,如果采用公网接入方式而非数据库网关,需要在数据库的白名单中添加DMS的IP地址段。DMS的IP地址段因地域而异,您可以在DMS控制台的帮助文档中获取对应地域的IP地址段列表。
4. SQL开发与数据操作
完成实例录入后,您就可以在DMS中执行SQL查询、数据变更等操作了。
4.1 SQL查询与结果集操作
DMS提供了功能完整的SQL开发环境。您可以在控制台中选择目标数据库,打开SQL窗口编写并执行SQL语句。DMS支持语法高亮、自动补全、执行计划分析等开发辅助功能。
对于表格存储Tablestore这类NoSQL数据库,DMS同样支持通过SQL方式查询和分析数据。您可以在DMS中添加表格存储实例,然后使用SQL语句查询Tablestore中的数据,查询到符合条件的数据后还可以按需导出。
4.2 数据变更与无锁结构变更
DMS支持对数据库中的数据进行普通数据变更操作,用于数据初始化、历史数据清理、问题修复、功能测试等场景。对于大规模数据变更,DMS提供了无锁结构变更功能,可以将单个SQL拆分成多个批次执行,避免锁表问题,减小对数据库性能和存储空间的影响。
在DMS中提交数据变更工单的流程如下:登录数据管理DMS 5.0,在数据变更工单申请页面配置工单参数信息,包括数据库、变更SQL脚本、变更原因等,提交后由审批人审批通过后自动执行。
4.3 数据导入与导出
DMS支持将外部数据导入到数据库中,也支持将数据库中的数据导出到本地或其他系统中。在DMS控制台中,您可以通过数据导入导出功能完成数据的批量迁移操作。
5. 任务编排:构建自动化数据工作流
DMS的任务编排(Task Orchestration)功能是构建自动化数据工作流的核心能力,支持创建包含多个任务节点的调度流程。
5.1 创建任务流
登录DMS控制台V5.0后,在顶部导航栏中选择“数据开发” > “任务编排”进入任务流管理页面。如果您使用的是极简模式的控制台,需要单击控制台左上角的图标,选择“全部功能” > “数据开发” > “任务编排”。
创建任务流的步骤如下:
- 在任务编排页面中单击“新增任务流”按钮
- 配置任务流的基本信息(名称、描述等)
- 在任务流画布中拖拽添加任务节点(如SQL任务、数据同步任务、条件分支等)
- 配置各任务节点的参数和依赖关系
- 配置任务流的调度策略(定时调度或事件调度)
5.2 调度配置
任务流支持两种调度类型:定时调度(按指定的时间周期执行)和事件调度(由特定事件触发执行)。在任务流信息面板中打开“调度配置”开关,即可进行调度参数的详细配置。
5.3 典型应用场景
任务编排功能可以应用于多种数据管理场景:
- 周期性数据归档:将满足特定条件的历史数据自动归档到其他数据库或OSS等存储服务中
- T+1报表生成:通过定时调度实现每日数据同步与报表生成
- 数据质量校验:在数据流转过程中自动执行数据质量检查
6. OpenAPI与SDK集成:实现自动化运维
除了通过控制台进行图形化操作外,DMS还提供了丰富的OpenAPI和SDK,支持开发者通过编程方式管理DMS资源。
6.1 OpenAPI概览
DMS支持2018-11-01版本的OpenAPI。在OpenAPI门户的调试页面中,左侧导航树列出了ListInstances(获取实例信息列表)、AddInstance、ModifyInstance、GetInstance、DeleteInstance等核心API。选中接口后,您可以设置服务地域及请求参数(如Tid租户ID、SearchKey搜索关键字、DbType数据库类型等),填写完成后即可发起调用。
DMS的服务接入点根据资源所在地域有所不同。例如,华北3(张家口)的VPC接入地址为dms-enterprise-vpc.cn-zhangjiakou.aliyuncs.com。
6.2 使用阿里云CLI调用DMS API
阿里云CLI是基于OpenAPI构建的通用命令行工具,您可以通过CLI实现自动化管理和维护数据管理。以下是使用CLI调用DMS API的基本步骤:
- 安装阿里云CLI:云命令行(Cloud Shell)中预装了阿里云CLI,且自动为您配置身份凭证,无需手动安装
- 配置身份凭证:使用RAM用户的AccessKey配置AK类型身份凭证。强烈建议您创建RAM用户并依据最小化权限原则授予权限,不要使用主账号
- 生成CLI命令:在OpenAPI门户中找到目标API的调试页面,切换到CLI示例页签,系统会自动生成对应的CLI命令
以下是通过CLI调用UpdateUser接口更新用户系统角色的命令示例:
aliyun dms-enterprise UpdateUser --Tid 12345 --Uid 67890 --RoleNames '["DBA"]'6.3 使用Python SDK调用DMS OpenAPI
阿里云SDK是OpenAPI最好的调用方式,推荐开发者选择SDK进行集成。以下是一个使用Python SDK调用DMS API的完整示例:
import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkdms_enterprise.request.v20181101 import ListInstancesRequest
# 初始化客户端
client = AcsClient(
os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
'cn-hangzhou'
)
# 构造请求
request = ListInstancesRequest.ListInstancesRequest()
request.set_accept_format('json')
# 设置请求参数
request.set_Tid(12345) # 租户ID
request.set_SearchKey('test') # 搜索关键字
request.set_DbType('mysql') # 数据库类型
# 发起调用
response = client.do_action_with_exception(request)
print(response.decode('utf-8'))在使用SDK之前,您需要准备好身份账号及访问密钥(AccessKey)。对于自签名等特殊场景,建议优先咨询技术支持团队以确保高效接入。
7. 安全与合规配置
数据安全是DMS的核心能力之一。除了前文提到的RAM权限管控外,DMS还提供了多层次的安全防护机制。
7.1 敏感数据管理
DMS提供了敏感数据管理功能,可以对数据库中的敏感字段进行识别、脱敏和审计。在DMS控制台中,您可以通过“安全与规范” > “敏感数据管理” > “规则配置”来设置敏感数据的识别规则和处理策略。
7.2 操作审计与日志
DMS记录了所有用户的操作日志,包括SQL执行记录、数据变更工单、登录记录等。这些日志可以用于安全审计和问题排查。管理员可以在DMS控制台中查询和导出操作日志。
7.3 数据灾备
DMS内置的数据灾备(DBS)功能提供了数据全量备份、增量备份、异地备份以及数据恢复等能力。通过配置自动备份策略,您可以确保数据的安全性和可恢复性。
8. 成本优化与最佳实践
合理使用DMS可以帮助企业有效控制数据管理的成本。
8.1 选择合适的管控模式
DMS提供了多种管控模式(如自由操作、稳定变更、安全协同等),不同模式的计费标准不同。对于测试环境和非关键业务,可以选择基础模式以降低成本;对于生产环境,建议选择安全协同模式以获得更完善的安全管控和审批流程。
8.2 利用内网访问降低网络费用
如果您的数据库部署在阿里云ECS上,建议在DMS中通过内网地址访问数据库,避免产生公网流量费用。
8.3 数据生命周期管理
通过DMS的任务编排功能配置数据归档策略,将冷数据定期迁移到低成本存储(如OSS),可以有效降低在线存储的成本。
9. 常见问题解答
问:DMS支持哪些类型的数据库?
答:DMS支持广泛的数据库类型,包括阿里云数据库(RDS MySQL、RDS PostgreSQL、PolarDB、Redis、MongoDB等)、自建数据库(MySQL、SQLServer、PostgreSQL、Oracle等)以及第三方云数据库。通过数据库网关DG还可以接入本地IDC的数据库。
问:如何保证DMS访问数据库的安全性?
答:DMS从多个层面保障访问安全:在身份认证层面,基于RAM进行统一的身份认证和权限管控,建议使用RAM用户并遵循最小权限原则;在网络层面,支持通过数据库网关DG接入,无需暴露数据库公网地址;在数据层面,提供敏感数据识别与脱敏、操作审计日志等功能。
问:数据库网关DG是免费的吗?
答:是的,数据库网关DG目前免费使用。您只需要在能够连通目标数据库且能访问公网的机器上安装网关程序即可。
问:DMS和传统数据库客户端工具有什么区别?
答:传统数据库客户端工具(如Navicat、DBeaver)仅提供SQL执行和基本的数据库管理功能。而DMS是一站式数据管理平台,除了SQL开发功能外,还提供全域数据资产管理、数据集成、任务编排调度、数据灾备、安全审计等企业级功能,支持多用户协同和审批流程。
问:如何通过API管理DMS中的数据库实例?
答:DMS提供了完整的OpenAPI,包括AddInstance(新增实例)、ModifyInstance(修改实例)、DeleteInstance(删除实例)、ListInstances(查询实例列表)等接口。您可以使用阿里云SDK(Python、Java、Go等)或CLI工具调用这些API进行编程化管理。
问:DMS的任务编排可以实现哪些自动化场景?
答:DMS任务编排支持构建包含多个任务节点的调度流程,可以实现周期性数据归档、T+1报表自动生成、数据质量校验、跨库数据同步等自动化场景。任务流支持定时调度和事件调度两种触发方式。



