阿里云数据管理DMS对接使用全流程:从入门到生产级数据管控实践
1. DMS:企业数据全生命周期管理的核心枢纽
在数字化转型的浪潮中,数据已成为企业最核心的资产之一。然而,随着业务系统的复杂化,数据库实例的数量和类型急剧增加——既有云原生的RDS、PolarDB,也有自建的MySQL、PostgreSQL,甚至还有NoSQL数据库如Redis、MongoDB以及表格存储Tablestore等。如何在同一平台上统一管理这些异构数据源,同时保障数据安全、提升研发效率,是每个企业都面临的现实挑战。
阿里云数据管理DMS(Data Management)正是为解决这一系列问题而生。DMS是一款支撑数据全生命周期的一站式数据管理平台,提供全域数据资产管理、数据治理、数据库设计开发、数据集成、数据开发和数据消费等功能。同时,DMS内置的数据灾备(DBS)还提供了低成本、高可靠的备份恢复能力。简而言之,DMS不仅是一个数据库客户端工具,更是一套覆盖“管、研、治、用”全链路的数据管控体系。
与传统的数据库管理工具相比,DMS的核心优势体现在多个层面。在全域数据资产管理方面,DMS支持企业全域数据资产的统一纳管,提供贯穿数据生命周期的质量治理与安全治理,帮助企业快速地查找数据、高效地使用数据。在数据集成方面,DMS支持常见数据源的实时、离线数据集成,数据集成过程中支持灵活自定义数据的处理逻辑,帮助解决企业数据孤岛的痛点。在易用性方面,DMS提供覆盖数据全生命周期的数据流转及处理能力,通过图形化、向导式的开发模式,智能预警及自主诊断修复等能力,降低企业数据价值挖掘门槛。此外,DMS还提供覆盖数据全生命周期的DevOps能力,内置阿里巴巴大规模实践的数据管控体系,在保障数据安全的同时提升企业研发效率。
本文将以实战为导向,从零开始详细介绍DMS的对接与使用全流程。无论您是数据库管理员、数据开发工程师,还是架构师,都能从本文中找到可落地的操作指引。
需要先登录阿里云控制台,点击:阿里云控制台
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 ID和AccessKey Secret明文保存在工程代码中,应使用环境变量或密钥管理服务来存储。
2.2 DMS系统权限策略
阿里云访问控制(RAM)产品提供了两种类型的权限策略:系统策略和自定义策略。系统策略统一由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。DMS提供的常用系统策略包括:AliyunDMSFullAccess(管理DMS的完全权限)、AliyunDMSReadOnlyAccess(只读访问DMS的权限)以及AliyunDMSDataAgentFullAccess(DMS DataAgent的完全授权策略)。自定义策略由用户管理,策略的版本更新由用户维护,用户可以自主创建、更新和删除自定义策略。为保证资源的数据安全,建议您遵循最小授权原则为允许访问云资源的身份授予恰好够用的权限。
2.3 创建RAM用户并完成授权
创建RAM用户的具体操作如下:访问RAM用户列表,单击创建用户;设置登录名称(如dms-operator),选择访问方式为“使用永久AccessKey访问”或“控制台访问”;单击确定,创建RAM用户并保存AccessKey ID与AccessKey Secret信息。完成授权时,访问RAM用户列表,单击目标RAM用户操作列的添加权限,在文本框中搜索AliyunDMS,选择AliyunDMSFullAccess或AliyunDMSReadOnlyAccess策略,单击确认新增授权。
3. 数据库实例录入
完成账号体系准备后,下一步是将需要管理的数据库实例录入DMS。DMS支持录入多种类型的数据库,包括云数据库(如RDS、PolarDB、Redis、MongoDB等)、他云/自建数据库(通过公网、VPC专线、数据库网关、ECS等方式接入)。
3.1 云数据库录入
对于阿里云上的数据库实例(如RDS、PolarDB等),录入过程相对简便。登录DMS控制台后,在左侧导航栏中点击“数据库实例”,然后点击“新增实例”按钮。在弹出的对话框中,选择数据库实例的来源(如“阿里云”),然后选择具体的数据库类型(如MySQL、SQL Server、PostgreSQL等)。系统会自动拉取您当前账号下有权限的云数据库实例列表,您只需选择目标实例并填写数据库账号和密码即可完成录入。
3.2 他云或自建数据库录入
对于非阿里云环境下的数据库(如本地机房自建数据库、其他云厂商的数据库等),DMS提供了多种接入方式。如果数据库有公网地址,可以直接选择“他云/自建”并填写数据库的公网地址、端口、账号和密码进行录入。如果数据库没有公网地址,或者您希望避免暴露公网IP带来的安全风险,则推荐使用数据库网关DG方式进行接入。
3.3 实例配置与管控模式
实例录入DMS后,可以配置实例的基本信息,包含数据库账号、安全规则等,以及高级信息,包含实例的环境类型(如开发环境、测试环境、生产环境)、开启无锁结构变更、查询和导出超时时间等。DMS提供了三种管控模式:自由操作(适用于个人开发测试)、稳定变更(适用于日常数据变更和查询)、安全协同(适用于企业级生产环境,提供完整的审批流程和权限管控)。生产环境的数据库建议选择“安全协同”模式,以确保所有数据操作都经过合规审批。
4. 数据库网关DG:安全接入本地及第三方云数据库
对于许多企业而言,核心业务数据库可能部署在本地机房或第三方云平台上。将这些数据库接入DMS进行统一管理,传统方式面临诸多挑战:通过专线或VPN网关接入成本较高;将数据库服务端口暴露至公网存在被攻击的安全风险;自建代理转发服务稳定性较差且技术成本较高。
针对以上问题,阿里云提供了数据库网关DG(Database Gateway)解决方案。DG支持在不暴露公网IP的前提下,将本地自建或第三方云厂商的数据库与阿里云服务连接起来,避免使用公网IP连接的安全风险。您可以通过数据库网关将本地或第三方云数据库录入DMS进行管理。数据库网关目前免费使用。
4.1 数据库网关的部署流程
使用数据库网关接入数据库的操作步骤如下:在DMS控制台顶部菜单栏中选择“数据资产 > 数据库网关”;在页面上方选择数据库所属的地域,单击“创建网关”按钮;在弹出的对话框中填写网关名称和备注信息。安装网关时,您可以根据操作系统类型选择不同的安装包——Windows系统直接单击下载安装包,其他操作系统直接复制命令行到需要安装网关的机器上执行即可。本地网关启动成功后,会自动跳转到添加数据库页面。
网关程序所在的机器需要满足以下要求:可以连通待接入的数据库(处于同一内网时可获得更低的网络延迟);可以访问公网(无需公网IP,无需暴露端口至公网,无需被公网访问,只要能主动访问公网即可)。
4.2 通过DG向DMS添加数据库
在DMS控制台左侧单击“新增实例”,在弹出的对话框中选择“他云/自建”,并选择具体的数据库类型。在新增实例对话框中填写以下信息:数据库类型、实例地域(选择数据库网关所在的地域)、网关ID(选择已创建的数据库网关)、数据库地址(输入目标数据库的内网地址,格式为“主机:端口”,例如172.168.200.152:3306)、数据库账号和密码。完成配置后,即可通过DMS安全地管理本地或第三方云上的数据库。
5. SQL窗口:核心数据开发与查询工具
DMS的SQL窗口是其最核心的功能模块之一,提供了便捷的SQL语句执行环境,同时支持以可视化的方式对目标数据库进行增、删、改、查等操作,适用于数据查询、数据开发等场景。
5.1 打开SQL窗口
登录数据管理DMS 5.0后,可以通过以下方式打开SQL窗口:单击控制台左上角的图标,选择“全部功能 > SQL窗口 > SQL窗口”;若您使用的是非极简模式的控制台,也可以在顶部菜单栏中选择“SQL窗口 > SQL窗口”。在“请先选择数据库”对话框中,搜索并选择目标数据库,单击确认即可进入SQL窗口。
5.2 SQL语句的执行与优化
在SQL窗口中,用户可以输入并执行各类SQL语句,包括数据查询(SELECT)、数据操作(INSERT、UPDATE、DELETE)、数据定义(CREATE、ALTER、DROP)等。DMS还提供了SQL语句优化建议功能,可以在SQL窗口中诊断SQL语句并查看优化建议。用户还可以查看执行计划,分析性能瓶颈,从而提高查询效率和数据库性能。
5.3 Data Copilot:智能数据助手
DMS还提供了Data Copilot功能,这是一个基于大模型能力的智能数据助手。数据开发人员可以使用Copilot进行数据查询、补充知识、调优NL2SQL等操作。通过自然语言描述需求,Copilot可以自动生成对应的SQL语句,大大降低了数据查询的门槛,提升了开发效率。
6. 数据导入与导出
DMS提供了完善的数据导入导出功能,支持将大批量数据以附件(SQL、CSV、Excel)形式快速导入数据库,也支持将数据库中的数据导出为SQL、CSV或Excel文件。
6.1 数据导入
当您需要将大批量数据导入数据库时,可以使用DMS的数据导入功能。操作步骤如下:登录数据管理DMS 5.0,单击控制台左上角的图标,选择“全部功能 > 数据导入”。选择目标数据库(管控模式为自由操作或稳定变更的实例数据库需要登录后方可选择),上传数据文件(支持SQL、CSV、Excel格式),系统会对上传的SQL语句进行审核并提供优化建议,避免无索引或不规范的SQL语句影响线上服务,降低SQL注入风险。确认无误后提交导入任务即可。
6.2 数据导出
当您需要进行数据库备份、导出数据库表进行数据分析等操作时,可使用DMS的数据导出功能。操作步骤如下:在DMS顶部菜单栏中选择“数据库开发 > 数据导出 > 数据库导出”。勾选需要导出的表,设置好文件类型(SQL、CSV、Excel)、字符集等参数,单击提交申请。导出内容需要勾选“数据”和“结构”。提交后,系统会根据管控模式触发审批流程(生产环境通常需要审批),审批通过后即可下载导出文件。
7. 任务编排:自动化数据工作流
DMS的任务编排功能是构建自动化数据工作流的核心工具。任务编排主要用于编排各类任务节点并进行周期或事件调度执行。您可以通过创建一个或多个任务节点组成的任务流,实现复杂的任务调度,提高数据开发效率。
7.1 创建任务流
创建任务流的基本步骤如下:登录数据管理DMS 5.0,在顶部菜单栏中选择“全部功能 > 数据开发 > 任务编排”。在任务流页面单击“新增任务流”,填写任务流名称和描述信息。然后向任务流中添加任务节点,DMS支持多种类型的任务节点,包括单实例SQL节点、数据同步节点、数据加工节点、脚本节点等。通过拖拽和连线的方式,可以配置任务节点之间的依赖关系。
7.2 配置调度策略
任务流创建完成后,需要进行调度配置。在任务流编辑页面,单击页面下方的“任务流信息”,打开调度配置开关。DMS支持两种调度类型:时间调度(定时执行)和事件调度(触发条件执行)。时间调度可以按分钟、小时、天、周、月等周期执行;事件调度则可以根据特定条件(如数据到达、文件生成等)触发执行。任务编排最多包含200个业务场景,单个DMS租户最多可创建5000个任务流,每个任务流中最多包含1000个任务节点。
7.3 典型应用场景:历史数据归档
一个典型的任务编排应用场景是历史数据归档——将源表中6个月前的数据迁移(归档)至目标表中,并删除源表中已迁移的数据。通过任务编排的单实例SQL节点,可以编写归档SQL语句,配合调度策略实现定期自动执行。这种方式可帮助企业实现数据管理的自动化和标准化,提高数据管理的效率与质量。
8. 安全管控与权限管理
数据安全是企业使用DMS时最关注的问题之一。DMS提供了全方位细粒度的数据安全管理功能,支持对实例、数据库、表、行、敏感列等进行权限管理。
8.1 权限申请与审批
DMS中的普通用户(除开启了用户访问控制的用户)可以通过权限工单申请某个资源的权限。具体操作如下:在DMS控制台首页,单击“权限申请”进入权限申请工单列表页面;选择需要申请权限的资源类型(实例、数据库、表等)和权限类型(查询、导出、变更等);填写申请理由后提交。具有审批权限的管理员或DBA会收到审批通知,审批通过后用户即可获得相应权限。
8.2 权限策略与精细化管控
DMS权限策略功能可以帮助您对DMS功能以及托管在DMS的数据资源进行细粒度的管控。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。
例如,为RAM用户授予通过DMS登录指定RDS实例的权限,可以创建如下自定义权限策略:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["dms:LoginDatabase"],
"Resource": ["acs:rds:*:*:dbinstance/[$RDS_ID]"]
}
]
}其中[$RDS_ID]需要替换为实际的RDS实例ID。
如果希望授予RAM用户登录账号下所有RDS实例的权限,可以将Resource配置为["acs:rds:*:*:*"]。
8.3 敏感数据保护与数据水印
DMS的敏感数据保护能力能根据所选的敏感数据扫描模板、敏感数据识别模型以及脱敏算法对数据进行脱敏处理,以避免敏感数据滥用,有效保护企业的敏感数据资产。数据水印功能则可用于数据的散布或分发过程中追溯源头,包含水印嵌入和水印提取。此外,实例开启安全访问代理后,您可以使用标准的MySQL、HTTPS协议,通过命令行、数据库管理工具或程序代码直接连接安全访问代理生成的地址,安全地访问目标实例。
9. OpenAPI与SDK集成:实现自动化运维
除了通过控制台进行可视化操作外,DMS还提供了完整的OpenAPI和SDK,支持开发者通过编程方式管理DMS资源,实现自动化运维。
9.1 OpenAPI概览
DMS目前支持2018-11-01版本的API。OpenAPI门户提供了API智能搜索、文档、在线调试、SDK获取、CodeSample、调用出错诊断、调用统计等功能。在OpenAPI门户调试页面,左侧导航树列出了ListInstances(获取实例信息列表)、AddInstance、ModifyInstance、GetInstance、DeleteInstance等API。
9.2 Python SDK调用示例
以下以Python语言为例,演示如何调用DMS的ListInstances接口获取实例信息列表。
步骤一:准备Python环境
下载并安装Python 3。
步骤二:配置环境变量
配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。Linux和macOS系统执行以下命令:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Windows系统需要新建环境变量文件,添加环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET,并写入已准备好的AccessKey ID和AccessKey Secret,然后重启Windows系统。
步骤三:安装依赖
在终端设备中逐条运行以下命令安装环境依赖:
pip install alibabacloud_credentials
pip install alibabacloud_dms_enterprise20181101
pip install alibabacloud_tea_console步骤四:编写并运行代码
创建Python文件(如list_instances.py),编写以下代码:
import os
from alibabacloud_credentials.client import Client as CredentialsClient
from alibabacloud_dms_enterprise20181101.client import Client as DmsClient
from alibabacloud_dms_enterprise20181101.models import ListInstancesRequest
from alibabacloud_tea_console.client import Client as ConsoleClient
# 初始化Credentials客户端
credentials = CredentialsClient()
# 初始化DMS客户端
client = DmsClient(credentials)
# 构建请求
request = ListInstancesRequest()
request.tid = 123456 # 替换为您的租户ID
# 发起调用
try:
response = client.list_instances(request)
ConsoleClient.log(response.body)
except Exception as e:
ConsoleClient.log('Error:', e)运行代码:
python list_instances.py9.3 阿里云CLI调用示例
除了SDK,DMS也支持通过阿里云CLI进行调用。以调用UpdateUser接口更新用户系统角色为例,执行以下命令:
aliyun dms-enterprise UpdateUser --Uid 21400447956867**** --RoleNames '["ADMIN","DBA"]'10. 总结
阿里云数据管理DMS为企业提供了一站式的数据全生命周期管理能力,覆盖了从数据库实例纳管、SQL开发、数据导入导出、任务编排调度到安全权限管控的完整链路。通过合理规划RAM账号体系、选择合适的数据库接入方式、善用任务编排实现自动化运维,企业可以有效提升数据管理效率、保障数据安全、降低运维成本。同时,DMS提供的OpenAPI和SDK为开发者提供了灵活的编程接口,支持将DMS的能力深度集成到企业的自动化运维体系中。
常见问题解答
Q1:DMS支持管理哪些类型的数据库?
A1:DMS支持录入多种类型的数据库,包括云数据库(RDS、PolarDB、Redis、MongoDB、Tablestore等)、他云数据库以及自建数据库(MySQL、PostgreSQL、Oracle、SQL Server等)。接入方式支持公网、VPC专线、数据库网关、ECS等多种途径。
Q2:如何正确地填写登录DMS的数据库账号与密码?
A2:数据库账号指数据库的用户账号(如在RDS实例中创建的账号),密码指该账号对应的密码。如果登录失败,请检查数据库账号是否有足够的权限,以及是否已将DMS的IP地址段加入数据库的白名单中。
Q3:本地自建数据库如何安全地接入DMS?
A3:推荐使用数据库网关DG方式接入。DG支持在不暴露公网IP的前提下,将本地自建数据库与阿里云服务连接起来。您只需在本地网络内部署DG网关程序,通过内网连接数据库,再由DG与DMS建立加密通道即可。这种方式无需开放数据库的公网地址,避免安全风险。
Q4:DMS的三种管控模式有什么区别?
A4:自由操作模式适用于个人开发测试场景,功能较为基础;稳定变更模式适用于日常数据变更和查询,提供基本的审批流程;安全协同模式适用于企业级生产环境,提供完整的审批流程、权限管控和操作审计能力。生产环境强烈建议选择安全协同模式。
Q5:通过DMS执行SQL语句时,如何避免影响线上业务?
A5:DMS提供了多项保护机制:SQL语句审核功能会对即将执行的SQL进行安全检查,提示潜在风险;无锁结构变更功能可以在不锁表的情况下执行DDL操作;生产环境的数据库在安全协同模式下,所有变更操作都需要经过审批流程。此外,建议在执行大批量数据操作前先在测试环境验证。
Q6:DMS如何实现数据操作的审计与追溯?
A6:DMS支持按需查找目标时间段内在DMS的SQL窗口中对数据库进行变更操作的相关信息,并生成回滚脚本。通过安全协同模式,所有数据操作都有完整的操作日志和审批记录,便于事后审计和问题追溯。数据水印功能还可用于在数据分发过程中追溯数据泄露源头。




