azure - 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 数据类型的愿望有限(出于显而易见的原因)。任何人都知道我们是否在这里遗漏了什么?
解决方案
尝试将源的映射更改为日期时间:
- 指定日期格式“yyyy-MM-dd”
- 运行管道
或者:
- 将日期格式的映射更改为字符串
- 使用存储过程方法插入/复制数据
推荐阅读
- gitlab-ci - 如何配置 Gitlab-CI 服务?
- google-cloud-platform - 使用 Cypress 测试网站,但无法通过 google 2 因素身份验证
- c# - 如何在 WPF 应用程序中使用来自 ole32.dll 的游标?
- powershell - 如果结果与字符串匹配,如何从 PowerShell 获得真/假结果?
- python - ValueError:形状必须为 4 级,但对于 '{{node Conv2D_5}} 为 0 级,tf.nn.conv2d
- mysql - 从连接的 mysql 5.X 表中的每一行中至少获取最后 2 行
- web - twitter.com 如何使 JPEG 个人资料图像透明?
- javascript - 创建一个函数来打印带有 Jprompt 的答案
- gitlab - MR 打开时只运行一次 Gitlab CI 作业
- bash - 从 bash 脚本中删除所有注释