首页 > 解决方案 > 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

标签: timestampodbcteradataazure-data-factory

解决方案


因此,似乎不完全支持以 Teradata 作为目标的 ODBC 接收器。

我们通过创建一个仅包含 varchar 列和一些存储过程/触发器的 ODBC Teradata“暂存”表来解决这个问题,以将其移动到实际列中。

从这里引用

我从产品团队得到确认,数据工厂可以识别本文档中的日期格式。今天,数据流不支持将 Teradata 作为接收器,但要在加载到接收器之前将其转换为日期时间。所以,不幸的是,今天如果不修改接收器,这是不可能的。

我建议在反馈论坛中提交一个想法,该想法受到数据工厂产品团队的密切关注,并将在未来的版本中实施。


推荐阅读