阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。

阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。


阿里云 DataWorks 是基于大数据引擎,为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。用户可通过 DataWorks 进行海量数据的离线加工分析,并能完成数据的汇聚集成、开发、生产调度与运维、离线与实时分析、数据质量治理与资产管理、安全审计、数据共享与服务、机器学习、应用搭建等工作。让数据从采集到展现、从分析到驱动应用得以解决,实现数据业务化、业务数据化。


近日,阿里云 DataWorks 正式支持 MySQL 整库实时同步至 SelectDB 或 Apache Doris

DataWorks 官方产品公告:https://help.aliyun.com/zh/dataworks/product-overview/function-release-record#49383872046wr


当用户面临 MySQL 源库数据量大、查询分析速度慢的问题时,可以通过 DataWorks 将单表或整库同步至 SelectDB 或 Apache Doris,该方案便捷易用、成本低、数据同步延迟可达秒级,源库 MySQL 的数据变化(包括 DML、DDL 记录)都能实时同步。目前,DataWorks 对 SelectDB 和 Apache Doris 数据源的支持情况如下表所示,用户可通过 DataWorks 配置数据源,连接源库 MySQL 和目标库 SelectDB 或 Apache Doris ,利用 DataWorks 资源组实现 MySQL 单表或整库的全量和增量数据实时同步至 SelectDB 或 Apache Doris。

同步方式

离线同步

实时同步

全增量同步

数据源

单表读

单表写

单表增量读

单表增量写

整库增量读

整库增量写

整库离线读

整库离线写

单表/整库全增量实时读

单表/整库全增量实时写

SelectDB/Doris 数据源

Y

Y

N

Y

N

Y

N

N

N

Y


本文将以阿里云数据库 SelectDB 版为例,为您全面介绍同步流程与步骤,助您快速使用 DataWorks 将 MySQL 整库数据同步至 SelectDB(由于 SelectDB 基于 Apache Doris 内核打造,两者在使用以及同步任务配置上几乎无差异,因此您也可以参考此方法将数据同步至 Apache Doris),轻松实现事务数据的实时同步与分析。


准备环境

准备数据库

本文将以阿里云数据库 RDS MySQL 版实例作为源端数据库。若您尚未创建,请点击如何创建阿里云数据库 RDS MySQL 实例参考完成具体设置。

本文将以阿里云数据库 SelectDB 版实例作为目标端数据库。若您尚未创建,请点击如何创建阿里云数据库 SelectDB 实例参考完成具体设置。

准备 DataWorks 工作空间

您需要准备阿里云 DataWorks 空间以完成后续步骤,若您尚未创建,请点击如何创建阿里云 DataWorks 工作空间参考完成具体设置。

准备资源组

在使用 DataWorks 前,您需要新建 Serverless 资源组,为 MySQL 整库实时同步至 SelectDB 提供计算资源以及周期调度资源。若您已创建 Serverless 资源组,或拥有独享数据集成资源组,即可跳过准备资源组环节。

  1. 登录 DataWorks 控制台,切换至目标地域后,单击左侧导航栏的资源组,进入资源组列表页面。
  2. 在资源组列表页面,单击左上角的新建资源组,新建 Serverless 通用型资源组,具体步骤请点击如何新建阿里云 DataWorks Serverless 资源组完成创建。
  1. 资源组创建完成后,您需要返回资源组列表页面,找到创建完毕的资源组,单击操作列内的绑定工作空间按钮,将新建的资源组与已有的 Dataworks 工作空间进行绑定
  1. 提醒
  2. 对于数据源存在白名单访问控制的情况,您需要将 Serverless 资源组绑定的交换机网段或者绑定 VPC 配置的 EIP 添加至其白名单中。
  • 通过内网访问:在 DataWorks 控制台资源组列表页面独享资源组页签下,单击目标 Serverless 资源组操作列的网络设置,查看数据集成内容区的交换机网段并将其添加至数据源的白名单列表中。
  • 通过公网访问:Serverless 资源组绑定的 VPC 需要有 NAT 网关实例(如无则请新建,具体步骤详见 如何创建 NAT 网关实例),并且绑定弹性公网 IP(EIP),Serverless 资源组才能通过 NAT 网关访问公网。如果已完成配置,您需要在公网 NAT 网关控制台,找到配置好的 SNAT 条目,获取对应交换机绑定的公网 IP 地址(EIP)并将其添加至数据源的白名单列表中。


步骤一:新建数据源

新建 MySQL 数据源

  1. 进入数据源页面
  1. 登录 DataWorks 控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心
  1. 进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。
  1. 单击左上角新增数据源按钮,在出现的新增数据源弹窗内寻找并单击 MySQL 数据库,进入创建 MySQL 数据源页面。
  1. 创建 MySQL 数据源页面内,您可依据下表对 MySQL 数据源进行配置,未提及配置项保持默认即可。

配置项

配置内容

数据源名称

自定义 MySQL 数据源名称。

数据源描述

自定义 MySQL 数据源描述。

配置模式

阿里云实例模式。

所属云账号

当前云账号。

地域

填下拉选择 MySQL 数据库所在地域。

实例

根据数据库实例名进行选择。

数据库名称

准备数据库环节的 MySQL 内创建的数据库名。

用户名

MySQL 数据库帐号。

密码

MySQL 数据库帐号密码

认证选项

无认证。

  1. 说明
  2. MySQL 数据源以阿里云上海地域当前账号下的 RDS MySQL 数据库为例,若您的 MySQL 为其他类型,可参考 阿里云 DataWorks 支持的 MySQL 数据源
  1. 在您填写完 MySQL 数据源的配置项后,请于连接配置处,找到先前步骤中准备好的资源组,单击连接状态列 > 测试连通性,验证 Serverless 资源组与 MySQL 数据库之间的连通性。如果您在此过程中遇到任何问题,请根据连通性诊断工具报错信息解决处理。

  1. 连通性测试通过后,单击完成创建,创建 MySQL 数据源。


新建 SelectDB 数据源

  1. 进入 DataWorks 工作空间管理中心 > 数据源页面后,单击左上角新增数据源按钮,在出现的新增数据源弹窗内寻找并单击 SelectDB 数据库,进入创建 SelectDB 数据源页面。

  1. 创建 SelectDB 数据源页面内,您可依据下表对 SelectDB 数据源进行配置,未提及配置项保持默认即可。

配置项

配置内容

数据源名称

自定义 SelectDB 数据源名称。

数据源描述

自定义 SelectDB 数据源描述。

JDBC 连接串预览

根据下面主机地址 / IP、端口、数据库名称配置项的内容,自动拼接生成。

主机地址 / IP

阿里云数据库 SelectDB 版实例地址,可使用公网或 VPC 地址。

端口

阿里云数据库 SelectDB 版实例 MySQL 协议端口,固定为 9030

数据库名称

准备数据库环节的 SelectDB 内创建的数据库名称。

HTTP 连接地址

${阿里云数据库 SelectDB 版实例公网或 VPC 地址}:8080

用户名

SelectDB 数据库帐号。

密码

SelectDB 数据库帐号密码

  1. 说明
  2. SelectDB 数据源以阿里云上海地域当前账号下的阿里云数据库 SelectDB 为例,若您的 SelectDB 为其他类型,可参考 阿里云 DataWorks 支持的 SelectDB 数据源
  3. 提醒
  4. 本文以私网连接阿里云数据库 阿里云 SelectDB 为例,您需要将 Serverless 资源组绑定的交换机网段添加至其白名单中。
  1. 在您填写完 SelectDB 数据源配置项后,您可在连接配置处,找到先前步骤中准备好的资源组,单击连接状态列 > 测试连通性,验证 Serverless 资源组与 SelectDB 数据库之间的连通性。如果您在此过程中遇到任何问题,请根据连通性诊断工具报错信息解决处理。

  1. 连通性测试通过后,单击完成创建,创建 SelectDB 数据源。


步骤二:创建同步任务

进入数据集成页面

登录 DataWorks 控制台,切换至目标地域,单击左侧导航栏的数据建模与开发 > 数据集成,在下拉框中选择对应工作空间后,单击进入数据集成页面。

配置来源与去向数据源

  1. 单击数据集成页面左侧导航栏中同步任务,选择来源为 MySQL 数据源,选择去向为 SelectDB 数据源
  1. 完成数据源选择后,单击开始创建,进入数据集成任务配置页面。

配置同步方式

  1. 在新建同步任务页面,您需要在基本配置与网络资源配置中分别配置以下内容:
  1. <!--br {mso-data-placement:same-cell;}--> td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}
模块 配置项 配置说明
基本配置 数据来源与去向 可对第二步配置的数据来源与去向重新配置,在本例中保持不变即可。
新任务名称 系统默认对 MySQL 整库实时同步至 SelectDB 集成任务进行自动命名,可手动修改。
同步类型 下拉选择整库实时。
同步步骤 在同步类型选择整库实时后,会出现对同步步骤的选择,默认包含:结构迁移、全量同步、增量同步,本例保持默认即可。
网络与资源配置 资源组 选择准备资源组阶段准备的 Serverless 通用型资源组。
数据来源 选择在新建数据源阶段新建的 MySQL 数据源。
数据去向 选择在新建数据源阶段新建的 SelectDB 数据源。
  1. 完成基本配置、网络与资源配置后,单击下一步进入下一阶段。

选择要同步的库表

源端库表内容区域勾选您想要同步的数据库和数据表,单击屏幕中央向右按钮(下图已标注),将数据库和表加载到已选库表内容区。

目标表映射

  1. 编辑数据读取与写入关系。
  1.  完成同步库表选择后,将自动在此页面展示当前待同步的表,目标表的相关属性默认为待映射状态,需要您定义并确认源表与目标表映射关系,即数据的读取与写入关系,确认并单击刷新映射以继续后续步骤。您可选择直接刷新映射,或自定义目标表规则后,再进行刷新。

说明

  1. 您可以选中待同步表后,单击批量刷新映射,未配置映射规则时,默认表名规则为${来源库名}_${源表名},若目标端不存在同名表时,将自动新建。
  2. 您可以自定义目标表名规则,在目标表名映射自定义列,单击编辑按钮。可以使用内置变量和手动输入的字符串拼接成为最终目标表名。例如,新建一个表名规则,将源表名增加后缀作为目标表名。
  3. 同步至 SelectDB 需要指定目标表的主键,默认会使用和源表一致的主键,需确保源表包含主键。目标表的主键是用于同步写入时做数据去重所使用,请根据自己的业务需求在建表时合理设置。
  4. 编辑字段类型映射。
  1.  同步任务存在默认源端字段类型与目标端字段类型映射,您可单击右上角编辑字段类型映射,自定义源端表与目标端表字段类型映射关系,配置完后单击应用并刷新映射
  1. 编辑目标表结构。
  1.  当目标 SelectDB 表为待建立状态时,您可以在原有表结构基础上为目标表新增字段。您可单击目标表名列的编辑图标以添加字段。

配置其他项

  1. 报警配置。
  1.  为避免任务出错导致业务数据同步延迟,您可以对实时同步子任务设置不同的报警策略。
  2. 单击页面右上方的报警配置,进入实时同步子任务报警设置页面。
  3. 单击新增报警,配置报警规则。
  4. 管理报警规则。您可以根据报警级别将报警发送给不同的人员。

  1. 高级参数配置。
  1.  数据集成提供读端最大连接数写端缓冲区大小运行时任务并发度等配置的默认值。如果您需要对任务做精细化配置,达到自定义同步需求,您可对参数值进行修改,例如通过最大连接数上限限制,避免当前同步方案对数据库造成过大压力从而影响生产。
  2. 单击界面右上方的高级参数配置,进入高级参数配置页面。
  3. 高级参数配置页面基于业务需要与资源组、数据库实际情况配置读端
  1.    源端最大连接数:通过该参数,您可以控制当前同步方案所能使用的源端数据库连接数,即同一时间内,当前同步解决方案任务读取数据库的并发数上限。

  1. DDL 能力配置。
  1.  来源数据源会包含许多 DDL 操作,您可根据业务需求,在界面右上方单击 DDL 能力配置,进入 DDL 能力配置页面,对不同的 DDL 消息设置同步至目标端的处理策略。

  1. 资源组配置。
  1.  您可单击界面右上方的资源组配置,查看并切换当前的任务所使用的资源组。


完成以上配置后,单击完成配置,完成数据集成的同步任务配置。


步骤三:运维同步任务

启动同步任务

完成配置后,跳转至任务列表,您可单击对应任务的启动按钮,启动同步任务。

查看同步任务运行状态

创建完成同步任务后,您可在同步任务页面,找到已创建的同步任务,单击任务名称执行概览,查看任务运行详情。任务运行详情分为以下五个部分:

  1. 基本信息:同步任务的数据源信息、绑定的资源组、同步方案等信息。
  2. 执行状态:分为结构迁移全量初始化以及实时数据同步三个状态,以下为执行状态的详细信息:
  1. 结构迁移:包含目标表的创建方式(已有表或自动建表),如果是自动建表,将会为您展示建表的 DDL。
  1. 全量初始化:包含对来源表与目标表数据的全量进度已写入数据条数全量启动时间全量完成时间展示。
  1. 实时同步:包含实时同步的统计信息,包含实时集成进度DDL 记录DML 记录报警信息的展示。
  •    源库表结构和数据:
  •    目标库表结构和数据:
  1. 运行日志:数据同步采取了主从架构(master-worker 架构),其中包含 Master Worker,一个同步解决方案任务对应一个 master 和一个或多个 worker,您可在对应日志中查看相关步骤详细信息。
  1. Master:任务初始化、数据分片、worker 的协调。
  2. Worker:具体数据分片的读写、转换。
  1. Failover:包含了数据同任务中出现的 Failover 事件的详细时间与报错信息,您可查看同步任务在最近一次启动以来的异常恢复记录。
  2. 资源利用率:对数据集成任务占用的资源状况进行监控及查看,可根据实际使用率对资源占用做调整。

任务重跑

  • 直接重跑
  •  在不修改任务配置的情况下,您可直接单击同步任务操作列更多 > 重跑,重新运行从结构迁移到启动实时同步的流程。
  • 结构迁移:使用已有表,不会再创建新表,因此没有建表的 DDL。
  • 全量初始化:对源库表目前的全量数据进行一次性同步,可以发现已写入数据条数全量启动时间全量完成时间与第一次同步时不同。
  • 实时同步:由于重跑任务后,源库表数据没有增量变化,因此实时同步没有数据。
  • 修改后重跑。
  •  编辑任务,进行修改操作后,单击完成。此时任务的操作会变为应用更新,点击应用更新会直接触发修改后的任务重跑,实时同步任务会按照新的配置运行。
  •  可选择重置位点的时间和时区:
  • 结构迁移:修改后重跑任务时,使用的仍为已有表,不会创建新表,但会按修改后的任务添加了字段,所以有 ALTER TABLE 的 DDL。
  • 全量初始化:由于选择了重置位点重跑,因此会将源库表的变更日志发送到目标库表重新执行,不需要进行全量数据同步。
  • 实时同步:由于选择了重置位点重跑,因此会将源库表的变更日志发送到目标库表重新执行。可以看到所设置位点时间后所有的 DML 都被执行了一遍。
  •    由于任务的 DDL 能力配置 对【修改列类型】设置了“忽略”同步至目标端的处理策略,因此可以看到修改列类型的 DDL 被忽略了,并未同步至目标端。


总结语

以上即为将 MySQL 整库实时同步至阿里云数据库 SelectDB 版的具体操作步骤。通过使用 Dataworks,您能够高效地将 MySQL 数据库同步至阿里云数据库 SelectDB 版中,确保业务连续性不受影响。同时,凭借阿里云 SelectDB 极速分析性能和灵活弹性优势,您能够加速决策过程,优化业务运营效率,推动业务持续稳健增长。

相关文章
|
23天前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
57 5
|
28天前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
32 1
|
2月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
34 2
|
2月前
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
40 0
|
4月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
46 1
|
2月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
671 13
Apache Flink 2.0-preview released
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
74 3
|
3月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。
|
4月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
246 2
|
4月前
|
消息中间件 分布式计算 Hadoop
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
Apache Flink 实践问题之Flume与Hadoop之间的物理墙问题如何解决
56 3

热门文章

最新文章

推荐镜像

更多