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 数据工厂)的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助以在 SQL Server 上启用变更数据捕获 (CDC)