Redshift到Azure数据仓库CopyActivity问题 - HybridDeliveryException

时间:2016-12-01 08:59:38

标签: azure amazon-redshift azure-data-factory

事实:

- 我在AWS Redshift之间运行Azure数据工厂管道 - > Azure数据仓库(因为Power BI Online Service自此发布日期起不支持Redshift)

- 我正在使用Polybase进行复制,因为我需要跳过一些有问题的行。 我使用" rejectValue"键并给它一个整数。

- 我进行了两次Activity运行,每次运行都出现了不同的错误

问题:

运行号码:1错误

  

数据库操作失败。来自数据库执行的错误消息:ErrorCode = FailedDbOperation,' Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =将数据加载到SQL数据仓库时发生错误。,Source = Microsoft.DataTransfer.ClientLibrary,&#39 ;' Type = System.Data.SqlClient.SqlException,Message = org.apache.hadoop.io.Text无法强制转换为org.apache.hadoop.io.BooleanWritable,Source = .Net SqlClient Data Provider,SqlErrorNumber = 106000,Class = 16,ErrorCode = -2146232060,State = 1,Errors = [{Class = 16,Number = 106000,State = 1,Message = org.apache.hadoop.io.Text无法强制转换为org.apache。 hadoop.io.BooleanWritable,},]'

运行No:2错误

  

数据库操作失败。来自数据库执行的错误消息:ErrorCode = FailedDbOperation,' Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =将数据加载到SQL数据仓库时发生错误。,Source = Microsoft.DataTransfer.ClientLibrary,&#39 ;' Type = System.Data.SqlClient.SqlException,Message =,Source = .Net SqlClient Data Provider,SqlErrorNumber = 106000,Class = 16,ErrorCode = -2146232060,State = 1,Errors = [{Class = 16 ,Number = 106000,State = 1,Message =,},],'。

2 个答案:

答案 0 :(得分:1)

以下是Azure Data Factory产品团队的回复:

与Alexandre提到的一样,错误#1意味着您在源Redshift上有一个文本值列,其中SQL DW中的相应列具有类型位。您应该能够通过使两个列类型彼此兼容来解决错误。

错误#2是Polybase反序列化的另一个错误。不幸的是,错误消息不够清楚,无法找出根本原因。但是,最近产品团队对Polybase加载的暂存格式进行了一些更改,因此您不应再看到此类错误。您是否拥有失败作业的Azure数据工厂runID?产品团队可以看看。

答案 1 :(得分:0)

Power BI Online Service通过ODBC和内部部署数据网关(https://powerbi.microsoft.com/en-us/blog/on-premises-data-gateway-august-update/)支持Redshift。您可以在Azure或AWS中的Windows VM上安装后者。

Redshift ODBC驱动程序位于:http://docs.aws.amazon.com/redshift/latest/mgmt/install-odbc-driver-windows.html

否则,您的错误表明您的SQL DW表的一列没有预期的数据类型(您可能有一个CHAR或VARCHAR应该是的BIT。