Azure data factory 无法使用运行时参数执行数据集

Azure data factory 无法使用运行时参数执行数据集,azure-data-factory,Azure Data Factory,我们正在Azure Datafactory V2中创建一些管道,并希望尽可能多地重用这些元素。目前,我们在使用具有运行时参数的数据集的管道方面面临一个问题。我们收到的错误消息是: 模板验证失败:“位置“41”处的字符串“P”不应出现..” 我们遵循了中的指令,但仍然抛出错误。 下面是管道和数据集JSON: Dataset: { "name": "DS-PARAM", "properties": {

我们正在Azure Datafactory V2中创建一些管道,并希望尽可能多地重用这些元素。目前,我们在使用具有运行时参数的数据集的管道方面面临一个问题。我们收到的错误消息是:

  • 模板验证失败:“位置“41”处的字符串“P”不应出现..”
我们遵循了中的指令,但仍然抛出错误。 下面是管道和数据集JSON:

Dataset:

    {
    "name": "DS-PARAM",
    "properties": {
        "linkedServiceName": {
            "referenceName": "LS-ADLS",
            "type": "LinkedServiceReference"
        },
        "type": "AzureDataLakeStoreFile",
        "typeProperties": {
            "fileName": {
                "value": "@dataset().file",
                "type": "Expression"
            },
            "folderPath": {
                "value": "@dataset().directory",
                "type": "Expression"
            }
        }
    },
    "parameters": {
        "directory": {
            "type": "String"
        },
        "file": {
            "type": "String"
        }
    }}
    

Pipeline:
    {
        "name": "pipeline2",
        "properties": {
            "activities": [
                {
                    "name": "Copy1",
                    "type": "Copy",
                    "dependsOn": [],
                    "policy": {
                        "timeout": "7.00:00:00",
                        "retry": 0,
                        "retryIntervalInSeconds": 20
                    },
                    "typeProperties": {
                        "source": {
                            "type": "AzureDataLakeStoreSource",
                            "recursive": true
                        },
                        "sink": {
                            "type": "AzureDataLakeStoreSink"
                        },
                        "enableStaging": false,
                        "cloudDataMovementUnits": 0
                    },
                    "inputs": [
                        {
                            "referenceName": "DS-PARAM",
                            "type": "DatasetReference",
                            "parameters": {
                                "directory": "/",
                                "file": "readme.txt"
                            }
                        }
                    ],
                    "outputs": [
                        {
                            "referenceName": "DS-PARAM",
                            "type": "DatasetReference",
                            "parameters": {
                                "directory": "/",
                                "file": "readme2.txt"
                            }
                        }
                    ]
                }
            ]
        }
    }
链接服务用于Datalake存储。我们在ARM模板上尝试了相同的代码,并从2018年1月16日发布的新接口MS构建了数据集和管道

任何帮助都将不胜感激


谢谢您解决方案:从数据集名称中删除所有破折号。

我花了一整天的时间试图解决同一个问题,结果把我逼疯了。好消息是我找到了问题的原因。坏消息是,在Azure团队解决问题之前,我们将不得不采用不同的命名约定。我通过反馈选项向他们发送了我的观察结果

它抱怨的意外字符总是第一次破折号之后的字符。因此,请调用数据集DSPARAM或DSPARAM或任何仅包含字母的内容。我还没有尝试使用下划线和数字


关于解决方案:从数据集名称中删除所有破折号。

我花了一整天的时间试图解决同一个问题,结果把我逼疯了。好消息是我找到了问题的原因。坏消息是,在Azure团队解决问题之前,我们将不得不采用不同的命名约定。我通过反馈选项向他们发送了我的观察结果

它抱怨的意外字符总是第一次破折号之后的字符。因此,请调用数据集DSPARAM或DSPARAM或任何仅包含字母的内容。我还没有尝试使用下划线和数字


关于

我通过UI注意到的另一件事是,在对这些元素进行任何更改后,您在advance中插入的json将被删除。很好地抓住了这个@g_brahimaj你能详细说明一下吗?在哪些元素上有什么样的变化?您必须发布更改才能使其生效。在我更改了数据集的名称后,我在“高级”选项卡中对参数的声明被删除。@g_brahimaj您可以在“参数”选项卡下添加/删除/更新数据集参数。有一个“创建/更新参数”部分。无需为此使用“高级”选项卡。尽管你所描述的令人不安。我没有因为重命名而失去任何东西,但我没有使用“高级”选项卡。我想我可以分享一些更多的细节:使用下划线似乎很好。可能是破折号的一个很好的替代品。我通过UI注意到的另一件事是,在对这些元素进行任何更改之后,您在advance中插入的json将被删除。很好地抓住了这个@g_brahimaj你能详细说明一下吗?在哪些元素上有什么样的变化?您必须发布更改才能使其生效。在我更改了数据集的名称后,我在“高级”选项卡中对参数的声明被删除。@g_brahimaj您可以在“参数”选项卡下添加/删除/更新数据集参数。有一个“创建/更新参数”部分。无需为此使用“高级”选项卡。尽管你所描述的令人不安。我没有因为重命名而失去任何东西,但我没有使用“高级”选项卡。我想我可以分享一些更多的细节:使用下划线似乎很好。可能是破折号的好替代品。