【问题标题】:How to implement change data capture (CDC) using Kafka Connect for Sybase ASE database?如何使用 Kafka Connect for Sybase ASE 数据库实现变更数据捕获 (CDC)?
【发布时间】:2021-03-07 13:15:35
【问题描述】:

我有一个要求,我必须将实时数据库更新流式传输到 KAFKA 主题中。所以基本上,每当在数据库中添加、更新或删除某些内容时,我都希望将该更新推送到 kafka 主题中。我看到了一些关于我们如何使用 debezium 为 mysql 和 postgresql 做到这一点的文章。但是我要监控的数据库是 Sybase ASE。 debezium 是否支持 sybase ASE?

如果是,有人可以给我很好的文档吗?我在互联网上找不到任何东西。

如果不是,我可以通过什么其他方式为 sybase ASE 数据库实现此更改数据捕获 (CDC) 功能?

【问题讨论】:

    标签: apache-kafka sybase sap-ase debezium cdc


    【解决方案1】:

    理想情况下,CDC 应该通过读取数据库日志(即 Oracle 的重做日志、MySQL 的 binlog、Cassandra 的 SSTable 等)来完成。

    对于专有数据库,通常供应商会提供 API 或工具来读取日志。例如甲骨文提供金门。我还没有从 Sybase 看到类似的东西。

    使用 Sybase 的一个可能选项是 JDBC。如果您使用的是 Kafka Connect,则可以查看 JDBC 连接器。但是,如果数据量很大,我认为这可能不是一个好的解决方案。

    另一种选择可能是写入数据库的进程也会向 Kafka 主题生成消息。这不是真正意义上的 CDC,但它可能是一个可行的解决方案。但是您需要处理写入 DB 成功但向 Kafka 生成消息失败的情况。

    【讨论】:

    • 是的。我已经研究过 JDBC Connect。但我面临的问题是更新的推送延迟很大(将单个更新推送到 KAFKA 主题大约需要 5-6 小时的延迟)。我为此使用了 jtds 驱动程序。不确定问题出在 deiver 还是我的 kafka 连接上。正如您所指出的,JDBC 连接不可扩展。所以我想尽可能地避免。
    【解决方案2】:

    注意:虽然我对Sybase(SAP) ASE and Repserver 产品有一些经验,但我对SQL Server 的经验很少,对debezium 没有经验,所以fwiw .. .

    根据debezium documentation: connectors,不支持Sybase (SAP) ASE

    虽然 ASE(MS)SQL Server 有共同的历史,但 2x 产品似乎并没有提供相同的日志读取能力(这并不奇怪,因为 2x 产品在 Sybase Repserver 产品成为可用的);根据debezium 文档:

    • SQL Server 提供debezium 从中读取的CDC“表”;跳转到SQL Server CDC explanation,看起来日志已被读取(在幕后),并且 DML 操作被转储到这些 CDC“表”中
    • ASE 有一个未记录的 API 用于读取日志;此 API 将日志条目转换为 Log Transfer Language (LTL) 记录,然后将其传递给 (Sybase/SAP) Repserver(或其他能够模仿 Repserver 的软件)

    没有联系debezium 支持团队并请求他们添加对Sybase (SAP) ASE 的支持,(在我看来)您可能需要寻找其他产品。


    虽然看看您是否可以模拟SQL Server's CDC 表可能是一个“有趣”的小项目,但这将是一项重大任务,例如,

    • 您会考虑必须向所有感兴趣的 (ASE) 表添加触发器
    • 触发器需要将大部分(全部?)DML 操作复制到新的“CDC”表中
    • 那些“CDC”表上的卷可能会变得非常大(与基础表的大小相比),这...
    • 需要良好的基础架构来管理(和修剪)上述“CDC”表
    • 您需要弄清楚如何模拟SQL Server 提供的用于管理“CDC”表的过程
    • 即使你走到了这一步,你是否可以让debezium 连接到ASE 也是个问题

    另一个想法是:推出自己的解决方案......

    Sybase(SAP) ASE SDK(在其上构建了ASERepserver 产品)可用于设计一个从Repserver 连接到Kafka 的模块,但这是一个完整的“另一个(冗长)讨论更适合喜欢SDK 编程的人...


    至于“其他产品”……谷歌先生在这一点上可能是一个好的开始。

    我熟悉的唯一使用(未记录的)API 来读取ASE's 日志并声称与Kafka 交互的产品是Qlik Replicate product

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      相关资源
      最近更新 更多