Tapdata 技术博客
Tapdata 技术博客

Tapdata Real Time DaaS 技术详解 PART I :实时数据同步

2021-09-09 21:39Tapdata 创始人 TJ 唐建法

随着信息化的日渐成熟,企业构建的相对孤立的数据系统也逐渐增多,从数十到数百,在大中型企业已经比比皆是。在这种情况下,想要使用企业的一些关键数据来做一些新业务,无论是可视化运营面板,还是建立一个新的CRM,都面临着企业数据难以获取的难题。


Tapdata 就致力于解决企业日趋严重的数据孤岛问题。我们的愿景是让这些企业可以像自来水(Tap Water)一样简单的使用数据。


那我们如何实现简单使用数据呢?


Tapdata DaaS 架构

类似与 IaaS,PaaS 或者 SaaS,Tapdata 给你提供一个 DaaS (Data as a Service),把你想要的数据作为一个服务提供出来。Tapdata 将企业各个业务系统的数据汇总到一个中央化平台,经过低代码方式治理以后,形成可复用的企业数据资产,通过无代码数据接口方式提供给业务使用方。


那 Tapdata 和其他数据平台的核心区别点和创新点是什么呢?Tapdata 做的是一个实时同步+实时处理+实时服务三位一体的全链路实时数据处理及服务平台。在Tapdata,我们坚信,实时的数据,才更有价值(查看Tapdata 产品理念)。

数据架构.png


举个栗子:保险公司如何解决数据孤岛问题?

想象一下你在一家保险公司做研发。这家保险公司有若干套业务系统,寿险,财产险,特殊险等等。因历史原因系统是由不同业务部门分别建设的,所以各个业务系统都在各自管理自己业务的客户和保单数据。领导说为了提高客户体验,希望做一个微信小程序来让公司的客户可以通过小程序端来管理他们的所有保单,包括基本信息维护,保单一览表,保单付费管理等功能。基本的诉求就是要能够在一个地方看到不同保险业务系统的数据。为了做到这一点,你需要一个聚合表CombinedPolicyTable,需要将来自Life, Property 和 Specialty系统内的保单数据全部集中放到一个中央的表里,然后让小程序来访问。

数据孤岛用户需求.png

如何将不同业务系统的数据抽取到合并的CombinedPolicyTable?


方法有不少。


脚本方式

数据库导出脚本,ETL工具,自己写个SQL脚本。

数据孤岛-脚本方式.png

通常这种脚本或者ETL都是定期执行的,比如说每天晚上会去各个业务系统库里运行这条命令:

SELECT * FROM POLICY;

将每个业务库的全量结果取出来写到CombinedPolicyTable里。


上面主流的模式香不香?

不香。


为什么?


其一,如果源库数据量大的话,这个是非常消耗资源的。每天晚上要对全量数据读一遍(源库),写一遍(目标库),哪怕白天只有100个保单更新。


其二,数据不及时。想象下如果小明同学在寿险系统里交了保费,但是要到第二天他才能在小程序中看到更新的状态(已支付),这个体验不连贯。


有没有体验好一点,源库的数据可以更加及时一点的方式?有。


双写方案

找业务同学改下代码,来个双写方案呗!当用户在源业务系统提交一个更新,先写原业务系统的表,紧接着把数据写到聚合表。

数据孤岛-双写方案.png

这种方式无疑是可以做到第一时间就把业务库的数据更新写入到目标表,然后给小程序提供最及时最新的客户及保单数据。


但也让人头疼:你要找原来的业务团队更新原有业务代码,并且这种方案对源系统有很大的侵入性。对于老大关注的顶级项目,没问题可以调动资源。但是如果类似的需求多了,就会出现不可管理,风险极高的后果。


有什么更好的解决方案呢?


认识更好的方案:Tapdata Real Time DaaS

Tapdata 的 Real Time DaaS 架构可以比较理想的解决上述问题。


CDC模式

从本质上,Tapdata的第一步就是将批量、滞后的ETL换成了CDC方式。

数据孤岛-双写方案.png


什么是CDC?

CDC 全称 Change Data Capture, 是基于数据库 Write Ahead Log 日志同步监听的方式来进行在不同系统之间的数据复制。 和传统ETL方式批量抽数不同,它能够在源库事件产生时候第一时间获知到相应的数据库增删改,并通过日志文件获取到该次更新的具体命令,然后在将这些改动通过一些处理后应用到目标库,目的是保持目标库和源库的高度一致。如下图,如果有一条写入,比如新增保单,首先这个写入操作就会以追加些模式写到WAL日志文件,然后才是写到数据文件。Log Collector 在无时不刻的监听日志文件(类似与linux 的tail命令一样),一旦发现日志文件有写入,马上将新改动的日志部分读取出来,解析成为可理解的SQL,然后写到目标库。

如何理解CDC.png


CDC模式的优势

CDC模式的优势很明显:

  1. 对源库性能影响小。取决于实现方式,有可能在单独读取日志文件,对源库主进程无影响。

  2. 只需要读取、处理数据库的变更事件(增删改),所需要资源消耗远小于全量跑批需要的资源

  3. 最重要的是,从事务在源端提交开始到更新写入同步的目标库,延迟可以小于1秒。这种准实时数据复制可以解锁大量对实时性要求较高的业务场景。

CDC 同步是一个有技术壁垒的活:

  • 缺乏标准。大部分数据库都会提供标准的访问操作接口,如SQL。但是WAL日志属于各家内部实现,99.99%的程序员也不需要了解这个机制。

  • 分布式下处理复杂。新一点的数据库都是分布式,如何在集群存在多个写节点的情况下保证WAL日志的顺序一致性和事务性?

  • 日志的格式都会比较复杂,特别是涉及到事务提交及回滚的情况。


应对数据挑战不止于此

这听上去就是一个数据库实时同步的工作,那我是不是找一个同步工具就可以了呢?非也非也。

确实到目前为止,我们只是把需要的数据从源库里面无侵入,准实时的抽取了出来。这个也是Tapdata 数据平台的第一个核心部分:实时数据同步。 数据抽出来后,接下来的工作还包括:

  • 如果数据来自多个库,往往需要对这些数据进行合并;

  • 如果数据来自一个很老很复杂的关系型设计,往往需要对不太容易理解的表结构进行重构,组成新的模型;

  • 如果数据来自一个主表(比如Policy),但是我们希望借这个动作,把Policy里面的客户信息也补齐进去。

这就涉及到一些实时的数据处理技术。欢迎继续关注 Tapdata 实时数据平台的第二环节:实时流数据处理。下期见!


本文作者:TJ 唐建法


2010-2019年 TJ 先后任职联邦快递首席架构师和MongoDB大中华区首席架构师,2019年至今于深圳创立Tapdata 并获数千万美元融资。TJ 是具有丰富海内外工作经验的大数据领域专家,获得了阿里云 MVP、 腾讯云 TVP、极客时间 MongoDB 高手课金牌讲师等荣誉,创建了全球最大的MongoDB 技术社区,并引领国内实时数据服务技术发展。


也许你还想了解:

Tapdata 数据库实时同步的技术要点

实时数据服务平台 Tapdata 产品简介

关系型数据库到MongoDB实时数据同步解决方案

-------------------------


招人小广告:我们现在迫切需要更多的工程师来加入我们一起,把 Tapdata 打造成一个世界级的实时数据处理平台,欢迎各位朋友一起过来撸代码,冲浪和定义平台未来。


我们亟需这些岗位的朋友加入我们:研发Leader,Java 中间件研发工程师,测试Leader,产品经理/总监,MongoDB数据库研发工程师,MongoDB 高级DBA,Oracle 高级DBA   查看详细岗位介绍


进一步了解Tapdata 实时数据服务平台,更多技术文章可前往 Tapdata 技术博客。Tapdata 自研的异构数据库实时同步工具—— Tapdata Cloud ,现已免费开放给技术开发者使用,目前支持 Oracle、MySQL、PostgreSQL、SQL Server、MongoDB、Elasticsearch 、达梦、Kafka等主流库之间的数据迁移和同步,即将支持 DB2、Sybase ASE、Redis、GBase、GaussDB 等。


扫描下方二维码,订阅最新 Tapdata 技术博客 ↓↓

Tapdata 微信服务号二维码



推荐阅读

DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构

2021年10月20日,Tapdata 创始人唐建法(TJ)受邀出席 DTCC 2021(中国数据库技术大会),并在企业数据中台设计与实践专场上,发表主旨演讲“Real Time DaaS :打造面向 TP+AP 业务的数据平台架构”,从 AP 业务场景 vs. TP 业务场景、常见数据平台优劣势、如何打造面向 TP+AP 业务的数据平台等角度,全面分享了 Tapdata 在全链路实时数据融...

Tapdata 在数字化防疫场景的最佳实践

在“动态清零”总方针的指导下,国内疫情防控工作渐趋规范化、常态化,各类防疫应用和手段层出不穷,防疫战也是数据战。Tapdata 基于数据虚拟化和主数据管理能力的防疫专项解决方案,助力张家港市卫健委高效落地疫情防控数字化,实现精准防疫。

Tapdata 在线研讨会:DaaS vs 大数据平台,是竞争还是共处?

我们为什么需要一个Real Time DaaS?它和大数据平台技术上有什么区别?如果企业还没有构建数据平台,我是应该考虑DaaS还是Big Data?如果已经有了大数据平台,我是否还需要DaaS?如果你想了解更多,请参加本次的在线研讨会。

下一个十年,你还在用 Big Data 搭建数据中台吗?

数据中台的存在是有合理性的,企业需要中台帮助他们来有效管理企业的数据资产,为业务所用。但在经历过大数据时代的热度之后,你在为企业构建数据中台的时候可以考虑另外一种比较务实的 DaaS 架构。DaaS 更加专注于数据层面:打通企业内部的孤岛数据,在中台构建共享模型,以API方式快速发布数据服务...

解锁5大应用场景,最新实时同步实现方案分享

数字化时代的到来,企业业务敏捷度的提升,对传统的数据处理和可用性带来更高的要求,实时数据同步技术的发展,给基于数据的业务创新带来了更多的可能。 Tapdata 产品合伙人徐亮带来实时数据同步的5大典型场景以及4种主流的技术模式分享,并一起了解作为新生代实时数据同步的 Tapdata Cloud 如何更轻松灵活的满足各种实时数据场景。

Tapdata 钛铂数据的产品理念

Tapdata 是全球首个基于数据即服务架构理念、面向 TP 场景的企业实时主数据服务平台,可以帮助企业快速实现主数据的统一管理和发布,并为所有数据库、数仓、大数据平台提供最实时的源数据,让数据随时可用。

Tapdata 数据库实时同步的技术要点

Tapdata 专注于实时数据的处理技术,在数据库迁移和同步方面,Tapdata 的表现非常优秀,实时、多元、异构,尤其在关系数据库到非关系数据库之间的双向同步方面,无论是从操作上,还是效率上,都体现了业界领先的水平。本文重点阐述 Tapdata 在数据库实时同步方面的技术要点。

教育中台与第三方系统对接整合数据案例

最近, 南京秦淮区教育中台系统,成功地和市系统进行了一次圆满对接。通过教育中台提供的统一数据能力和低代码API对接能力,实现了对市系统数据的实时推送和拉取,以及各类业务逻辑上的处理。这次对接为南京市中小学生创客大赛的成功举办提供了及时可靠的数据支撑, 体现了中台系统在快速响应业务方面的优越性。

周生生 | 全渠道商品中心建设

通过Tapdata 构建全渠道商品中心,实现: - 支持中国大陆港澳台的上千家门店的生产环境; - 使用JS脚本来进行流处理计算,业务需求从开发到上线过程快至 1 天以内; - 任务配置与执行监测全程可视化操作,不懂技术也能完成操作,极大降低维护成本; - 一套产品可满足不同需求,根据业务需求产出不同类型的业务模型节省大量人力物力。

关系型数据库到MongoDB实时数据同步解决方案

使用MongoDB作为主机下行或新一代数据库的选择,将业务数据从已有主机或Oracle等关系型数据库复制到MongoDB; 使用Tapdata Replicator的CDC技术,实时监听现有业务库的数据变动并同步至MongoDB; 使用Tapdata 的RDM技术将关系型表合并转型到MongoDB JSON数据结构,并保持和源库的高度数据一致; 在MongoDB上进行新业务的开发。

Tapdata肖贝贝:实时数据引擎系列(一)-新鲜的数据流

前言2006 年诞生的 hadoop 和 她周边的生态, 在过去的这些年里为大数据的火热提供了足够的能量, 十几年过去了, 场景在变化, 技术在演变, 大家对数据的认知已经不再局限于 T+1 与 高吞吐高延迟 为主要特征的上一代框架理念, 在真实的场景里, 实时, 准确, 多变 的数据也发挥着越来越重要的作用为满足这些新的需求, 各种框架和中间件如雨后春笋般不断涌出hive 的出现让这头大象...

Tapdata 肖贝贝:实时数据引擎系列(六)-从 PostgreSQL 实时数据集成看增量数据缓存层的必要性

对于 PostgreSQL 的实时数据采集, 业界经常遇到了包括:对源库性能/存储影响较大, 采集性能受限, 时间回退重新同步不支持, 数据类型较复杂等等问题。Tapdata 在解决 PostgreSQL 增量复制问题过程中,获得了一些不错的经验和思考,本文将分享 Tapdata 自研的 TAP-CDC-CACHE,和其他几种市面常见的解决方案的优势和特性。

搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定

如何打造一套企业级的实时数据融合平台?Tapdata 已经找到了最佳实践,下文将以 Tapdata 的零售行业客户为例,与您分享:基于 ES 和 MongoDB 来快速构建一套企业级的实时数据融合平台。