MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)

Posted

技术标签:

【中文标题】MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)【英文标题】:MYSQL Change Data Capture(CDC) - Azure Services (Azure data factory) 【发布时间】:2017-10-16 08:52:02 【问题描述】:

我想对mysql数据库的数据表进行ETL操作,并将数据存储在Azure数据仓库中。我没有 更新日期 列来识别该期间的修改记录。我如何知道修改了哪条记录。 MYSQL数据库是否支持CDC?

是否可以使用 Azure 服务(Azure 数据工厂)读取 MYSQL 二进制日志或二进制日志?

【问题讨论】:

【参考方案1】:

如果您可以将单个语句查询放在一起,该查询将使用您可用的任何函数和连接返回您想要的内容,那么您可以将其放入 ADF 的 sqlReaderQuery 部分。

否则你也许可以使用存储过程活动(抱歉我不是 ADF 那样熟悉 mySQL)

【讨论】:

【参考方案2】:

你有任何增加整数的列吗?如果是这样,您仍然可以使用查找活动 + 复制活动 + 存储过程活动来获得增量负载。更多详情如下:https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-powershell

ADF 还没有对 CDC 的内置支持。您可以使用您的代码通过 ADF 中的自定义活动来做到这一点。

【讨论】:

我认为存储过程不支持 MySQL 或 MariaDB。 docs.microsoft.com/en-us/azure/data-factory/…【参考方案3】:

在 MySQL 中,您可以选择添加时间戳列,默认情况下该列在行级更新时更新。 CDC 不可用,但是当您可以看到差异时,您可以比较 MySQL 上的 MAX(updatedate) 与 (>=) 您自己的 MAX(ETLDate) 以获取所有修改的记录。

【讨论】:

以上是关于MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)的主要内容,如果未能解决你的问题,请参考以下文章

CDC变更数据捕获

需要帮助以在 SQL Server 上启用变更数据捕获 (CDC)

SQL Server 2008 CDC增量变更捕获详解

通过FlinkCDC将MySQL中变更的数据写入到kafka

Flink 使用之 MySQL CDC

如何使用 Kafka Connect for Sybase ASE 数据库实现变更数据捕获 (CDC)?