MYSQL更改数据捕获(CDC) - Azure服务(Azure数据工厂)
问题描述:
我想对MYSQL数据库的数据表执行ETL操作并将数据存储在azure数据仓库中。我没有更新日期列以标识期间的修改记录。我如何才能知道哪条记录被修改。 MYSQL数据库是否支持CDC?MYSQL更改数据捕获(CDC) - Azure服务(Azure数据工厂)
使用Azure服务(Azure数据工厂)可以读取MYSQL二进制日志或二进制日志?
答
如果你可以放在一起使用任何函数和连接都可以返回你想要的单个语句查询,那么你可以把它放到ADF的sqlReaderQuery部分。
否则,你可能能够使用存储过程的活动(抱歉不那么熟悉的MySQL,因为我ADF)
答
你有任何列这是递增的整数?如果是这样,您仍然可以使用查找活动+复制活动+存储过程活动来获取增量负载。更多细节如下:https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-powershell
ADF还没有内置的CDC支持。您可以通过ADF中的自定义活动与您的代码一起执行此操作。
答
在MySQL中,您可以选择添加时间戳列,该列在默认情况下更新rowlevel上的更新。 CDC不可用,但是当您可以看到差异时,您可以将MySQL上的MAX(已更新)与(> =)您自己的MAX(ETLDate)进行比较,以获取所有已修改的记录。