Tapdata 技术博客
Tapdata 技术博客

Tapdata 肖贝贝:实时数据引擎系列(五)-关于 SQL Server 与 SQL Server CDC

2021-09-15 17:18Tapdata 技术合伙人肖贝贝

前言


上次发的关于 Oracle CDC 的文章反响不错, 而像这种类型的数据库还有好几个, 这里把三大闭源数据库先讲一遍: Oracle, SQL Server 和 DB2。


在企业客户里, SQL Server 的使用范围远远超过我之前的预期, 这个在互联网用户那边几乎见不到的数据库, 在传统的制造业, 企业客户里依然散发着持久的生命力, 在 DB Engine 的排名里, SQL Server 仅次于 Oracle 与 Mysql, 排在第三, 是TAPDATA 在客户场景落地的时候经常碰见的数据库之一。


实时数据引擎系列.png


两大门派


SQL Server 的 CDC 复杂度相比 Oracle 较低, 且官方从 08 版本就天然支持这个功能, 只是在 16 版本之前, 这个设置只有在企业版才有, 在 16 版本之后, 在社区版也可以开启功能, 因此标准的官方派做法就是直接使用这个 CDC 接口进行同步。


在开启 CDC 功能之后, SQL Server 会将变更的内容同步到一张表中, 有主键, 业务方通过轮询这张带主键的表拿到新的事务变更。


这是最好实现的方案之一, 问题有好几个:

  1. 08 版本之前不支持。

  2. 16 版本之前只支持企业版。

  3. 依靠轮询, 实时性较差, 且 CDC 表本身也存在延迟, 正常情况下的延迟往往超过秒级。

  4. 如果忘记从表中取走数据, 这张表会无限膨胀。

  5. 被取走的数据会被清理, 无法回放日志。

  6. 配置复杂, 需要考虑 ALWAYSON 的情况下, 可用节点切换的 CDC 作业恢复的触发等配置。


SQL Server 在进行事务操作时, 会将操作记录在以 ldf 结尾的文件中, 因此江湖中各路草莽瞄准了这一点, 也开发了属于自己的数据追踪套路。


有很多做操作审计, 或者数据同步的厂商开始尝试绕过 CDC, 通过裸解析 ldf 文件来直接读取数据库变更, 具有的优势是:

  1. 负载与数据库分开, 性能可单独优化, 速度很快, 瓶颈在 IO 上。

  2. 可屏蔽各种部署结构带来的差异, ldf 文件是永恒的。

  3. 事件触发, 相比轮询 CDC 表, 消息延迟很低, 可以在几十毫秒内。


劣势是增加了部署复杂度, 需要在数据库机器上部署一个单独的 Agent 用来做日志的采集, 且需要自行考虑高可用切换时 Agent 传输日志的问题。


相比 Oracle 多样的版本, 和完全无法捉摸的二进制格式, SQL Server 的解析较为简单, 业界实现的各种商业产品也非常多, 不过目前没有看到在 Linux 下可用的版本, 也没有看到开源的实现出现。


TAPDATA 的解法


在默认情况下, TAPDATA 使用了轮询 CDC 增量表的方式进行数据获取, 这种方式对用户使用比较友好, 不需要额外部署服务, 同时, 支持 ALWAYSON 的自动切换, CDC 任务的自动恢复等高可用特性, 方便易上手。


在数据量非常大, CDC Table 性能不足, 或者客户对 CDC 延时有极高要求时, TAPDATA 可以通过 Agent 传输 + 裸日志文件解析的形式, 在获得数倍于传统方式性能的同时, 有效降低了延迟。


一个小问题


Oracle 日志解析因为比较困难, 开源项目比较少, SQL Server 相对来说内容少很多, 而且 Google 一下有大量的商业软件在基于裸日志解析做一些审计, 观察, 同步的事情, 为什么依然看不到像样的开源项目呢?


进一步了解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 来快速构建一套企业级的实时数据融合平台。