Azure Synapse 拒绝使用默认标头

问题描述 投票:0回答:1

对此仍然有点陌生,希望得到一些帮助。

我在 Azure Synapse Analytics 中有一个管道,它从 API 接收文件。该文件具有“Prop_0”、“Prop_1”等默认标题...而不是其第一行作为标题。

转到该集成数据集的设置,并且已选择第一行作为标题选项,但它继续使用默认列。

我该如何解决这个问题?

有什么方法可以手动映射列吗?

azure azure-synapse azure-data-lake
1个回答
0
投票

根据您的问题,您的文件源来自 API,上述数据集是您的目标数据集。

首先检查源文件的标头和架构是否包含正确的标头或

Prop_1
Prop_2
、.. 等来自源本身的标头。

要检查源文件的架构,请转到源数据集并单击架构。

enter image description here

如果您的标头类似于 Prop_1、Prop_2...,那么这意味着这些标头来自您的源本身。因此,如果需要,您可以更改 API 中的标头。

有什么方法可以手动映射列吗?

如果您想在管道运行期间更改标头,请使用复制活动中的映射。

注意:只有当您的源是静态的(其 URI 中没有任何动态参数)时,此方法才能正确工作。它不会给接收器动态参数带来任何问题。

转到复制活动映射 -> 单击导入架构。现在,在目标中,您可以根据您的要求更改标头名称。

enter image description here

现在,调试管道,将生成带有新标头的文件。

enter image description here

如果您处理多个源页面数据并且每个页面的源架构都是相同的

  • 首先给出您在数据集中的任何 URI。按照上面的 URI 架构在复制活动中设置映射。

  • 现在,转到 Pipeline JSON 并将

    translator
    键的对象复制到其中。

    enter image description here

  • 再次转到复制活动映射,然后单击动态内容并在

    @json('above copied JSON')
    中提供上述 JSON。

    我的样品:

    @json('{
                        "type": "TabularTranslator",
                        "mappings": [
                            {
                                "source": {
                                    "name": "Prop_0",
                                    "type": "String",
                                    "physicalType": "String"
                                },
                                "sink": {
                                    "name": "Id",
                                    "physicalType": "String"
                                }
                            },
                            {
                                "source": {
                                    "name": "Prop_1",
                                    "type": "String",
                                    "physicalType": "String"
                                },
                                "sink": {
                                    "name": "Name",
                                    "physicalType": "String"
                                }
                            },
                            {
                                "source": {
                                    "name": "Prop_2",
                                    "type": "String",
                                    "physicalType": "String"
                                },
                                "sink": {
                                    "name": "Age",
                                    "physicalType": "String"
                                }
                            },
                            {
                                "source": {
                                    "name": "Prop_3",
                                    "type": "String",
                                    "physicalType": "String"
                                },
                                "sink": {
                                    "name": "DOB",
                                    "physicalType": "String"
                                }
                            }
                        ],
                        "typeConversion": true,
                        "typeConversionSettings": {
                            "allowDataTruncation": true,
                            "treatBooleanAsNumber": false
                        }
                    }
                }')
    

    enter image description here

    这可以确保对于每个页面,即使 URI 是动态的,也会应用相同的目标架构。

© www.soinside.com 2019 - 2024. All rights reserved.