Azure 数据工厂数据流静默清空日期列

Azure data factory data flow silently NULLing date column

我正在尝试使用 Azure 数据工厂将 CSV 更新插入 Azure SQL table。在我检查结果之前,一切似乎都很好。其中一列是可为空的日期。 CSV 包含一个像 1/2/2020 12:00:00 AM 这样的值。数据流静默插入 NULL 而不是抛出错误,因为它不喜欢输入。那么我怎样才能让我的数据流正确地将字符串转换为日期时间,然后在以后出现这样的问题时出错呢?我真的不想要无声的故障和坏数据。

空值是由于 ADF 中的日期格式不兼容造成的。您需要进行日期格式转换。

你的源日期格式是这样的吗MM/dd/yyyyHH:mm:ss?
如果是这样,您可以使用 Derived column 并添加表达式 toString(toTimestamp(<Your_Column_Name>,'MM/dd/yyyy HH:mm:ss'),'yyyy-MM-dd HH:mm:SS') 将此列格式化为字符串。它解决了 NULL 值。当然你可以选择你想要的日期格式。

我做了如下测试:

  1. 我的数据源来自一个 csv 文件,EmpDate 是一个与您类似的日期类型,最后一行包含一个空值。

  2. 然后我在派生列 activity 中添加表达式 toString(toTimestamp(EmpDate,'MM/dd/yyyy HH:mm:ss'),'yyyy-MM-dd HH:mm:SS')。在这里你可以选择你想要的日期格式。

3.According 根据 Mark Kromer 的建议,我直接在派生列之后添加条件拆分并检查 isNull(EmpDate)。这里我使用 not(isNull(EmpDate)) 表达式。

  1. 最后,如果EmpDate包含null值,则转到sink2,否则转到sink1。 该行包含空值: