无缝集成 MongoDB Relational Migrator,Tapdata 提供关系型到 MongoDB 实时迁移优化方案

在去年的 MongoDB 用户大会纽约站上,MongoDB 正式宣布全面推出新工具 MongoDB Relational Migrator(MongoDB RM),用以简化应用程序迁移和转换——即从传统关系型数据模型到现代的文档数据模型,助力组织快速提升运营效率,充分发挥数据价值。
在这里插入图片描述
今年年初,同样密切关注数据价值深层挖掘的 Tapdata,针对这一工具,新增支持导入 MongoDB relmig 文件生成任务的能力,用户可以将在 MongoDB RM 上设计好的数据流转流程导出后,直接导入 Tapdata 数据管道,进一步提升数据管道设计便利性。

眼下,生成式 AI 和大语言模型(LLM)等新风口正在掀起又一波创新浪潮,为基于软件和数据的业务运营优化、终端用户体验提升开启了新的可能性。各类型和规模的企业都希望利用这些新技术实现业务转型。然而,很多企业仍然在使用传统的关系型数据库作为应用程序后端。这类传统数据库往往适应性不足,难以为现代化应用程序提供支持;并且当应用程序的需求发生变化时,数据之间的映射关系也变得复杂。此外,传统数据库的诞生早于云计算技术,在扩展性方面表现不佳,往往要耗费大量资金。受此影响,企业很难去采用新技术、快速适应不断变化的市场,这在某种程度上也限制了企业实现现代化升级的能力。

因此,越来越多的企业开始考虑面向现代化数据库的数据迁移。其中,MongoDB (Atlas) 便是一个广受青睐的选择 。灵活的文档模型和横向扩展功能,为新兴技术的应用提供肥沃的土壤,帮助企业在重塑业务运营的同时,提升终端用户体验。这时,如何实现低成本、低风险、低耗时的数据迁移,就成了企业需要考虑的新问题。而这也正是 MongoDB Relational Migrator 真正的“用武之地”。

什么是 MongoDB Relational Migrator?

将遗留应用程序从关系数据库迁移到 MongoDB 可能是一项艰巨的任务,迁移过程充斥着高风险、高成本和高耗时,甚至有时让人无从下手。

MongoDB Relational Migrator 可以对传统数据库进行分析,自动生成新数据模型和代码,并在不停机的情况下无缝迁移至 MongoDB (Atlas)。客户只需将 MongoDB Relational Migrator 连接到现有的应用程序数据库(如 Oracle、Microsoft SQL Server、MySQL 和 PostgreSQL 等)进行评估,即可快速上手。有了这个工具,各行业的企业都可以轻松快速、经济高效、近乎无风险地从传统数据库迁移至 MongoDB。

分析应用程序数据后,MongoDB RM 会建议一个新的数据模型,将数据转换和迁移至 MongoDB (Atlas),并通过运行连续同步作业实现零停机迁移;生成的优化代码,还可在新的现代化应用程序中处理数据。从而得以在测试环境中运行现代化应用程序,确保其在部署到生产环境之前能够按预期运行。有了 MongoDB RM,任何类型与规模的组织在进行应用程序迁移与现代化时,都无需承受迁移过程中的技术阻碍与繁琐工作,可以更好地构建下一代高度参与的任务关键型应用程序,轻松拥抱未来科技。

鉴于 MongoDB 作为文档型数据库独特的无模式属性,RM 充分考虑到了关系型数据库向 MongoDB 迁移过程中的模式设计难点,支持自动映射和嵌入式文档/数组,拥有代码生成能力,以及完整的模型构建功能。这也使得 RM 顺利成为企业在选择关系型数据库到 MongoDB 数据迁移工具时的完美选择。然而,除却类似的“一次性”数据库迁移需求,面对企业内部持续扩展的新业务,在原有业务系统的基础上,持续消费各业务系统数据,故而需要实现持续数据同步的业务场景也非常常见,例如:

  • 数据分析:构建现代化、基于分析的应用程序。许多交易数据存储在其他系统中,我们如何将它们集成到 MongoDB 并加以分析。
  • 单一视图:用以实时查看所有最重要的数据。这也是 MongoDB 的经典用例之一,像是同步企业来自 SaaS CRM 的数据,构建客户单一视图,理解并跟进客户需求。
  • 传统现代化:更新传统应用程序组合,应用最新的开发方法。像是将数据从 Oracle 迁移至 MongoDB 来构建新的应用程序,但很多时候企业会仍然想要保留旧系统运行,这就需要在不影响原有业务系统的前提下,保持面向新系统的数据同步。
  • 数据即服务:将企业数据作为资产而不是障碍物。基于既有数据资源开发新的应用程序并生成关键业务见解。现代化数据平台需要实时收集并同步来自各运营系统的数据,同时保障数据完整性。
  • ……

MongoDB RM + Tapdata = ?

作为 Tapdata 第一批支持的 Connector,MongoDB 的更新动态也一直是是 Tapdata 持续关注的对象。在面对【关系型数据库→ MongoDB】的数据同步任务中,Tapdata 与 MongoDB RM 各具优势且能力互补,其中:

  • **Tapdata:**优势在于连续数据同步,在包括电信和金融在内的 60 多家企业客户中得到验证。专注于数据
  • **MongoDB:**关系型迁移工具的模式映射、设计、Atlas 流处理。专注于模式

因此,MongoDB RM + Tapdata = 更适合 MongoDB 用户的持续数据同步解决方案,支持增量同步,兼具实时性优势。

基于这一考量,为了保障 MongoDB 用户在使用 Tapdata 过程中的体验,我们针对 MongoDB RM 的上线进行了自身优化——利用数据复制/转换任务支持的导入能力,用户可以在 MongoDB RM 上设计好数据流转流程并将其导出,随后在 Tapdata 数据管道右上角直接导入,更加便捷的数据管道设计使用户无需手动重复操作,节省时间和精力。

与此同时,借助 Tapdata 的可视化界面与监控反馈能力,用户可以更方便地对流向 MongoDB 的数据迁移任务进行统一管理和监控,随时监测任务进度和状态,并且及时获得任何可能出现的问题或错误的通知,助力迁移过程的顺利进行。

如何选择
在这里插入图片描述
如上图所示,当新项目无需持续复制时,仅需借助 RM 进行模式自动映射并完成迁移工作。而作为 MongoDB RM 的功能延展,Tapdata 全量+增量的实时数据同步同步能力将在需要实现持续复制的场景中发挥其应有的“功效”。

版本指路:
点击登录 Tapdata Cloud
申请试用 Tapdata 本地部署版

如何集成 MongoDB Relational Migrator 和 Tapdata?

以 MySQL 是数据源为例,下面是如何利用 Tapdata 这一功能的操作教程,我们将从如何从 MongoDB Relational Migrator 导出项目文件开始,进行 Step-by-Step 的详细介绍:

*提示:如果想要参照教程上手体验,欢迎通过文末方式联系我们

  1. 在 MongoDB Relational Migrator 上新建一个项目

在这里插入图片描述
2. 配置要连接的数据库
在这里插入图片描述
3. 根据需要选择要使用的数据库,这里我们选择使用 MySQL
在这里插入图片描述
4. 配置好 MySQL 的连接信息,测试连接通过后直接点击 connect 连接。
5. 选择要使用的表,这里我们使用 car_claim,car_policy,car_customer 三张表,以 car_claim 为主表来构建一张出险记录详细信息的款表
6. 选择 Start with an empty MongoDB schema
在这里插入图片描述
7. 设置项目名称,点击 Done
在这里插入图片描述
8. 配置表之间的关联关系,生成一个宽表
9. 配置完成后,点击 export,导出项目文件
在这里插入图片描述
在这里插入图片描述
10. 找到导出生成的 relmig 文件在这里插入图片描述
11. 访问 Tapdata Cloud
12. 因为目前导出 relmig 文件时,暂时还无法获取到对应连接的相关配置信息,所以在向 Tapdata 导入 relmig 任务时,需要先创建要使用的源和目标连接
13. 先创建要使用的 MySQL 连接在这里插入图片描述
14. 配置要使用的 MongoDB 连接在这里插入图片描述
15. 源和目标连接配置完成后,点击 Data Transformation 菜单,点击列表右上方的 Import 按钮
在这里插入图片描述16. 选择我们刚才从 MongoDB Relational Migrator 里导出的 relmig 文件
在这里插入图片描述
在这里插入图片描述
17. Source Database 选择刚创建的 MySQL,Target Database 选择刚创建的 MongoDB
18. 点击 OK 完成导入,可以看到导入成功,任务出现在任务列表
在这里插入图片描述
19. 点击启动可以直接启动已导入的任务,启动后任务变成运行中
在这里插入图片描述
20. 点击监控,可以看到任务的配置 DAG 信息和运行指标信息。
21. 通过该导入能力,可以将 MongoDB Relational Migrator 的项目快速导入到 Tapdata 系统
22. 启动并运行任务,待任务全量同步完成后,查看目标 MongoDB,可以看到数据已经按照在 RM 里定义的数据结构同步到目标 Mongo 表中。
在这里插入图片描述
联系我们

发送邮件或加入 Tapdata Slack,即可丝滑体验该功能:

  • 邮箱:team@tapdata.io
  • Slack:点击加入

关于 Tapdata

Tapdata Inc.「深圳钛铂数据有限公司」,成立于2019年9月,核心员工来自 MongoDB、Oracle、百度、阿里、腾讯等,研发人员占比超90%,至今已获五源资本等多家头部风投数千万美元融资。已服务周生生、中国移动、中国联通、南方电网、中国一汽、富邦银行、罗辑思维等数十家行业标杆企业。Tapdata 坚持“开放+开源”战略,推出 Tapdata Cloud,将无代码数据实时同步的能力以 SaaS 的形式免费开放,目前已积累 12,000+ 注册用户,覆盖电商、金融、制造等多个行业。此外,Tapdata 社区版也已发布,正在面向开发者逐步共享其核心功能。

Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,支持将企业核心数据实时集中到中央化数据平台,并通过 API 或反向同步方式, 为下游的交互式应用、微服务或交互式分析提供新鲜实时的数据。典型用例包括数据库到数据库的复制、将数据引入数据仓库或数据湖,以及通用 ETL 处理。

产品优势:

  • 开箱即用与低代码可视化操作
  • 内置 100+ 数据连接器,稳定的实时采集和传输能力
  • 秒级响应的数据实时计算能力
  • 稳定易用的数据实时服务能力

【相关阅读】

  • Tapdata Connector 实用指南:云原生数仓场景之数据实时同步到 Databend
  • Tapdata Connector 实用指南:如何将 CRM 数据从 Salesforce 实时同步到 MongoDB 等其他库
  • Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse
  • Tapdata Connector 实用指南:数据入仓场景之数据实时同步到 BigQuery

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#控制台应用程序

C#控制台应用程序时基于文本的,在命令行中运行。它们通常执行需要编写的脚本的简单任务,例如编译文件或加密配置文件的一部分。 一、向用户显示输出 控制台应用程序执行的两个最常见的任务是写入和读取数据,前者使用WriteLine、Write方法来…

数字图像处理 使用C#进行图像处理九 实现傅里叶变换

一、简述 傅立叶变换将图像分解为其正弦和余弦分量。换句话说,它将图像从空间域变换到频率域。这个想法是任何函数都可以用无限正弦函数和余弦函数之和来精确近似。傅里叶变换是实现此目的的一种方法。 网上有很多关于傅里叶变换的文章,这里就不进行赘述了,这里主要结合代码…

java中xml概述

1.xml 1.1概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为…

山东省各地市“专精特新”补贴奖励政策汇总

“专精特新”已成为我国经济领域的热词。国家高度重视中小企业发展,对“专精特新”企业的支持更是上升至国家层面。在国家政策引导下,各地各部门为加快培育“专精特新”企业,推动产业链创新链协同发展,采取了一系列举措&#xff0…

java中常见的设计模式以及常见的面试题

在Java中,常见的设计模式同样包括创建型模式、结构型模式和行为型模式。下面是一些在Java中特别常见的设计模式及其简要描述: 创建型模式: 单例模式(Singleton Pattern):确保一个类只有一个实例&#xff…

element ui 中文离线文档(百度云盘下载)

一般内网开发上不了网,用离线版本比较方便,下载地址: https://download.csdn.net/download/li836779537/88355878?spm1001.2014.3001.5503 下载后里面有个 index.hrml 双击打开就可以用 效果如下:

Python程序设计基础——代码习题

1 __name__属性 import demodef main():if __name__ __main__:print(这个程序被直接运行。)elif __name__demo:print(这个程序作为模块被使用。) main()3.3 编写程序,生成包含1000个0~100之间的随机整数,并统计每个元素出现的次数。 import randomx[r…

[word[::-1] for word in s.split()] 得到的是一个列表

你可以将上述的列表推导式代码拆分为更明确的几个步骤,如下所示: # 原始字符串 s "hello world" # 使用 split() 方法将字符串分割成单词列表 words s.split() # 创建一个空列表,用于存储反转后的单词 reversed_words [] # 遍历…

HTTP协议相关面试知识

文章目录 浏览器输入一个网址侯,具体发生什么?GET和POST请求的区别cookies机制和session机制的区别HTTP和HTTPS区别什么是http无状态协议?怎么解决?请求报文和响应报文 浏览器输入一个网址侯,具体发生什么?…

助贷系统crm:帮助助贷机构实现高效的客户关系管理

助贷系统CRM(客户关系管理系统)是一种能够帮助助贷企业实现高效客户关系管理的工具,通过助贷系统CRM,助贷企业可以更好地管理企业客户信息,跟踪客户互动、提高客户满意度,从而促进业务增长。 1. 客户信息集…

TCP并发模型 || select || poll || epoll

TCP并发模型: 1.TCP多线程模型: 缺点: 1.创建线程会带来资源开销,能够实现的并发量比较有限 2.IO模型: 1.阻塞IO: 没有数据到来时,可以让任务挂起,节省CPU资源开销,提高系统效率 2.非阻塞IO: 程序未接收到数据时一直执行,效率很低 3…

vMware WorkStation创建虚拟机安装CentOS7,NAT模式配置网络

一、安装虚拟机 1、选择典型(推荐)配置 2、选择稍后安装操作系统 3、操作系统选择CentOS7 64位 4、虚拟机命名、选择安装位置 6、指定磁盘容量 7、指定磁盘容量 步骤: (1)、系统内存2GB (2)、…

linux-MDK can电机带导轨

确保接线正确,这个带导轨的电机需要24V的电压 $ ls /dev //查看端口是什么$ sudo slcand -o -s6 /dev/ttyACM0 can0 //将端口封装为can0 $ sudo ip link set can0 up //打开端口 按照电机说明书,按照需要的指令计算检验和&#xf…

FreeRTOS 的任务挂起和恢复

1. 任务挂起和恢复的 API 函数 API函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 挂起:挂起任务类似暂停,可恢复; 删除任务,堆栈都给释放掉了,无法恢复…

rt-thread之sal+lwip的tcp客户端示例记录

示例 // // Created by shchl on 2024/3/13. //#include "lwip_test.h" #include "lwip/sockets.h" #include "netdev.h"#define DBG_ENABLE #define DBG_TAG "lwip.tst" #define DBG_LVL DBG_LOG#include <rtdbg.h>#define SE…

Spring MVC HandlerMethodReturnValueHandler原理解析

在Spring MVC框架中&#xff0c;HandlerMethodReturnValueHandler是一个非常重要的组件&#xff0c;它负责处理Controller方法执行后的返回值。这个接口定义了一种机制&#xff0c;允许开发者根据不同的返回值类型&#xff0c;定制自己的返回值处理逻辑。本文将深入解析Handler…

计算机网络-第7章 网络安全(2)

7.5 密钥分配 7.6 互联网使用的安全协议 7.7 系统安全&#xff1a;防火墙与入侵检测

【故障电弧探测器 方案介绍】安科瑞电气火灾监控系统

什么是电弧&#xff1f; 电弧俗称‘电火花’ &#xff0c;又叫‘打火’ &#xff0c;本质是一种绝缘体被电压击穿后&#xff0c;由不导电变的导电&#xff0c;且发光发热的自然现象。 什么是故障电弧&#xff1f; 由于电气线路或设备中绝缘老化破损、电气连接松动、空气潮湿…

利用 AI 延长自己的编程寿命

“AIGC 将在 3 年内终结编程&#xff0c;程序员成了自己的掘墓人”程序员可能会发现自己的角色被自动化的代码生成所取代&#xff0c;他们可能会面临失业的风险&#xff0c;因为他们的技能和工作职责可能会变得过时。 你是不是也听到过这样的言论&#xff0c;甚至最近百度大佬李…

递归算法掌握

递归算法是一种自我调用的算法&#xff0c;在算法中&#xff0c;函数会调用自身来解决子问题&#xff0c;直到达到基本情况。递归算法通常将问题分解为更小的子问题&#xff0c;然后通过解决这些子问题来解决原始问题。 递归算法有以下几个特点&#xff1a; 自我调用&#xf…