mysql 使用ADF管道的增量加载复制活动

wnavrhmk  于 2023-08-02  发布在  Mysql
关注(0)|答案(1)|浏览(101)

我在ADF中实现了一个摄取框架,我的源代码是mySQL Server。对于增量,我指的列是“lastUpdate:timestamp”。因此,在初始加载之后,我将取max(lastUpdate)并将其作为字符串写入文件中,对于增量,我的管道从查找活动开始,在该活动中阅读该值,然后在复制活动中进行比较。下面是我在复制活动的ADF管道查询中使用的SQL查询的代码示例

select * from dbo.mfgoperationdata where lastUpdate > to_timestamp('@{activity('MaxDate').output.firstRow.Prop_0}','yyyy-MM-ddTHH:mm:ss.fffZ');

字符串
存储的最大值的格式为“2022-09- 22 T21:02:38.000+0000”
但与此我得到一个错误粘贴在下面
x1c 0d1x的数据
有人能帮我纠正我正在使用的格式作为表达。

r6l8ljro

r6l8ljro1#

该错误消息表明,MySQL服务器(源)无法识别SQL查询中的时间戳值的格式。MySQL服务器没有to_timestamp()功能。x1c 0d1x的数据
您可以使用formatDateTime() ADF函数将时间戳值转换为此格式,而不是使用to_timestamp()函数。查询修改如下:

select * from dbo.mfgoperationdata where lastUpdate > '@{formatDateTime(activity('MaxDate').output.firstRow.Prop_0, 'yyyy-MM-dd HH:mm:ss.fff')}';

字符串



在这个修改后的SQL查询中,formatDateTime()函数用于将时间戳值转换为格式'yyyy-MM-dd HH:mm:ss. fff'。这解决了错误,并且流水线在没有任何错误的情况下执行。

相关问题