timestamp - Azure 数据工厂、复制数据、Teradata ODBC、日期时间时间戳映射
问题描述
我们正在使用 ODBC 连接器将 Azure Sql Server 的 ADF 复制活动实现到本地 Teradata。我们无法为 DateTime > Timestamp6 列进行映射,并且在测试时会出现各种错误。(由于更改了源格式)源查询已被转换/转换为各种格式到中间 Blob 文件中。
演员/转换是:
* convert(varchar(26), EventUtcTimeStamp,121) EventUtcTimeStamp //"2020-11-03 12:01:21.928294"
* convert(varchar(19), EventUtcTimeStamp,121) EventUtcTimeStamp //"2020-11-03 12:01:21"
* cast(DATEDIFF(s, '1970-01-01 00:00:00.000', eventUtcTimeStamp) as bigint) * 1000 eventUtcTimeStamp //1604404881000
Blob 文件是第二个复制活动的源,其中目标是 teradata 表。这会生成各种 ErrorCode=TypeConversionFailure's 。
我们怀疑原因是接收器映射到 teradata,因为它不能从 DateTime 更改。Blob 文件看起来没问题。如果可能的话,任何人都遇到过这种情况并知道如何对其进行调整以使其正常工作?
解决方案
因此,似乎不完全支持以 Teradata 作为目标的 ODBC 接收器。
我们通过创建一个仅包含 varchar 列和一些存储过程/触发器的 ODBC Teradata“暂存”表来解决这个问题,以将其移动到实际列中。
从这里引用
我从产品团队得到确认,数据工厂可以识别本文档中的日期格式。今天,数据流不支持将 Teradata 作为接收器,但要在加载到接收器之前将其转换为日期时间。所以,不幸的是,今天如果不修改接收器,这是不可能的。
我建议在反馈论坛中提交一个想法,该想法受到数据工厂产品团队的密切关注,并将在未来的版本中实施。
推荐阅读
- javascript - 延迟反应 onMouseOver 事件
- jenkins - 使用 Jenkinsfile 填充 yaml 时变量格式错误
- php - 正则表达式 slug 在另一个词之前
- android - 约束布局 v1.1.0:layout_constraintHorizontal_weight = 0 不再工作
- android - 我们应该为每个 Activity 创建单独的存储库还是为整个应用创建单个存储库
- macos - 如何获得 Ctrl+Click 到核素
- azure - Set-AzureRmDiagnosticSetting:异常类型:CloudException,消息:不支持度量类别“AllMetrics”
- c# - 当前上下文中不存在名称“”
- spring - Spring-rest api中的编码
- mysql - 在 MySQL 中使用 SELECT 和 SUB SELECT