ADF V2 - ADLS到SQL Server在整个过程中,列顺序是否重要?

时间:2018-03-21 00:00:39

标签: azure-data-factory

我一直在尝试将数据从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

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

来源:File.tsv

ColA ColB

“codeA”1

“codeB”2

“codeC”3

目标:SQL Server表

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

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

“ErrorCode = UserErrorInvalidDataValue,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message = Column'ColB'包含无效值'codeA';。无法转换'codeA';要输入'Double';。,Source = Microsoft.DataTransfer.Common,''Type = System.FormatException,Message =输入字符串的格式不正确。,Source = mscorlib,'“

1 个答案:

答案 0 :(得分:1)

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

使用数据湖作为来源时,请查看文档:{​​{3}}

如果没有表格翻译,它应该可以正常工作。

希望这有帮助!!