Azure 数据工厂中的接收器生成的日期格式不正确
Incorrect date format generated in sink in Azure data factory
我正在使用 Azure 数据工厂中的复制数据实用程序将数据从 REST 源复制到 CSV 文件。当我在 ADF 中预览该源数据时,日期格式是正确的 ISO 格式,但是当它被写入 csv 文件或数据库时 table 格式更改为看起来有点像 unix 时间戳的格式,例如'/日期(340502400000)/'.
来源:
Preview data from the source in ADF
目的地:
Actual data written to the csv file
我一直在试图找出如何更改它以将日期写入 ISO 格式的文件,但我一无所获。任何帮助将不胜感激
我用你的来源测试了相同的字符串日期,在我这边一切正常。
您可以手动设置接收器数据类型,例如 String 或 Datatime
Csv 输出(日期时间):
做完这些之后,如果问题依然存在,最好的办法就是向Azure support求助。只有他们可以告诉您管道中发生了什么。
HTH.
感谢您的回答,但仍然不高兴,我得到的只是类型转换错误。
错误
对目标 Copy_Lake_CSV 的操作失败:失败发生在 'Sink' 端。 ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column 'lastModifiedDateTime' 包含无效值'/Date(1615206773000+0000)/'。无法将“/Date(1615206773000+0000)/”转换为类型 'DateTime'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String was not recognized as a valid DateTime.,Source=mscorlib,'
更新:
我与 Microsoft 进行了通话,Microsoft 最初也不知道如何解决此问题。最终,它一直升级到 ADF 产品团队(开发人员),他们返回了一个用于数据流的公式。
要转换日期格式,您必须先使用数据复制任务将数据转储到“原始”数据集中,然后使用数据流任务,您可以使用派生列转换日期值.在派生列中,使用以下公式将 JSON 日期格式转换为 ISO 日期格式,然后将其写入目标数据集。
toTimestamp("1970-01-01 00:00:00") + seconds(toInteger((ltrim(rtrim([SourceColumn], "+0000)/"),"/Date("))))
我正在使用 Azure 数据工厂中的复制数据实用程序将数据从 REST 源复制到 CSV 文件。当我在 ADF 中预览该源数据时,日期格式是正确的 ISO 格式,但是当它被写入 csv 文件或数据库时 table 格式更改为看起来有点像 unix 时间戳的格式,例如'/日期(340502400000)/'.
来源: Preview data from the source in ADF
目的地: Actual data written to the csv file
我一直在试图找出如何更改它以将日期写入 ISO 格式的文件,但我一无所获。任何帮助将不胜感激
我用你的来源测试了相同的字符串日期,在我这边一切正常。
您可以手动设置接收器数据类型,例如 String 或 Datatime
Csv 输出(日期时间):
做完这些之后,如果问题依然存在,最好的办法就是向Azure support求助。只有他们可以告诉您管道中发生了什么。
HTH.
感谢您的回答,但仍然不高兴,我得到的只是类型转换错误。
错误 对目标 Copy_Lake_CSV 的操作失败:失败发生在 'Sink' 端。 ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column 'lastModifiedDateTime' 包含无效值'/Date(1615206773000+0000)/'。无法将“/Date(1615206773000+0000)/”转换为类型 'DateTime'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String was not recognized as a valid DateTime.,Source=mscorlib,'
更新: 我与 Microsoft 进行了通话,Microsoft 最初也不知道如何解决此问题。最终,它一直升级到 ADF 产品团队(开发人员),他们返回了一个用于数据流的公式。
要转换日期格式,您必须先使用数据复制任务将数据转储到“原始”数据集中,然后使用数据流任务,您可以使用派生列转换日期值.在派生列中,使用以下公式将 JSON 日期格式转换为 ISO 日期格式,然后将其写入目标数据集。
toTimestamp("1970-01-01 00:00:00") + seconds(toInteger((ltrim(rtrim([SourceColumn], "+0000)/"),"/Date("))))