首页 > 解决方案 > Azure DF - 从数据库中提取日期时间到 CSV 时,有时会被解释为 datetime2

问题描述

运行从 CSV 到 Synapse 表的 Azure 数据工厂副本时,我们会遇到间歇性截断错误。目标表模式(在 Synapse 中)是我们最初从中提取数据的模式的镜像。

我们发现发生的事情是原始提取将日期时间误解为 datetime2 并将相关字段呈现为:2019-10-07 11:22:31.4400000 当我们从 Azure Data Lake Storage Gen2 运行副本到镜像 Synapse 表时,架构将该字段作为日期时间。复制函数尝试将字符串(CSV 和所有)转换为日期时间(与原始表相同)但失败。(错误:从字符串转换日期和/或时间时转换失败。)有趣的是,这个问题是间歇性的 - 原始日期时间字段有时会正确呈现为 CSV:2019-10-07 11:22:31.440(如图) .

我们将所有 SQL Db 模式重构为 datetime2 数据类型的愿望有限(出于显而易见的原因)。任何人都知道我们是否在这里遗漏了什么?

标签: azureazure-data-factoryazure-data-factory-2azure-sql-data-warehouseazure-synapse

解决方案


尝试将源的映射更改为日期时间:

  • 指定日期格式“yyyy-MM-dd”
  • 运行管道

或者:

  • 将日期格式的映射更改为字符串
  • 使用存储过程方法插入/复制数据

推荐阅读