ADF V2 - ADLS to SQL Server 在本地,列顺序是否重要?



我一直在尝试将数据从ADLS(Azure Data Lake Store)中的平面文件移动到SQL Server On Prem,使用纯粹的ADLS和SQL Server数据集,我认为TabularTranslator属性将有助于映射列并忽略它们在平面文件中的顺序。 做这样的事情

{
"source": {
"type": "AzureDataLakeStoreSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 10000
},
"enableStaging": false,
"cloudDataMovementUnits": 0,
"translator": {
"type": "TabularTranslator",
"columnMappings": "ColA: ColA, ColB:ColB"
}
}

但是,看起来顺序很重要,并且TabularTranslator可能仅适用于SQL Server和Azure SQL数据库,是否可以在不更改目标的列顺序的情况下映射这些列?

我收到的错误是截断错误,因为它试图将 ColB 数据插入到我的目的地的 ColA 中

更多细节换句话说,我有以下来源和目标...

来源: 文件.tsv

可乐 ColB

"代码 A" 1

"代码B" 2

"codeC" 3

目标:SQL 服务器表

|---------------------|------------------|
|      ColB           |     ColB         |
|---------------------|------------------|
|                     |                  |
|---------------------|------------------|

看起来来自 ColA 的数据试图插入到 ColB 中,然后我得到了以下内容:

"ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column 'ColB' 包含无效值 'codeA';。无法转换"代码 A";键入'Double';.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=Input string格式不正确,Source=mscorlib,'">

不需要使用表格转换器,我仅在使用 Polybase 将数据从 ADLS 移动到仓库时才使用它,但我认为本地数据库不支持此功能。

使用数据湖作为源时,请查看文档:https://learn.microsoft.com/en-us/azure/data-factory/connector-azure-data-lake-store#copy-activity-properties

在您的情况下,如果没有表格翻译器,它应该完全可以正常工作。

希望这有帮助!!

相关内容

  • 没有找到相关文章

最新更新