Отправьте два выходных значения действия GetMetadataDB в действие Foreach - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь получить выходные данные из двух разных операций GetMetadataDB и хочу передать их в качестве имен элементов для каждой операции.

enter image description here

Фрагмент кода конвейера

{
    "name": "V1",
    "properties": {
        "activities": [
            {
                "name": "Get Metadata From Source",
                "type": "GetMetadata",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "dataset": {
                        "referenceName": "DelimitedSourceFile",
                        "type": "DatasetReference"
                    },
                    "fieldList": [
                        "childItems",
                        "itemName"
                    ],
                    "storeSettings": {
                        "type": "AzureBlobStorageReadSettings",
                        "recursive": true
                    },
                    "formatSettings": {
                        "type": "DelimitedTextReadSettings"
                    }
                }
            },
            {
                "name": "ForEach source and target",
                "type": "ForEach",
                "dependsOn": [
                    {
                        "activity": "Get Metadata from Target",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    },
                    {
                        "activity": "Get Metadata From Source",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    }
                ],
                "userProperties": [],
                "typeProperties": {
                    "items": {
                        "value": "@union(activity('Get Metadata From Source').output.childItems, activity('Get Metadata From Target').output.childItems)",
                        "type": "Expression"
                    },
                    "activities": [
                        {
                            "name": "ValidationNotebook",
                            "type": "DatabricksNotebook",
                            "dependsOn": [],
                            "policy": {
                                "timeout": "7.00:00:00",
                                "retry": 0,
                                "retryIntervalInSeconds": 30,
                                "secureOutput": false,
                                "secureInput": false
                            },
                            "userProperties": [],
                            "typeProperties": {
                                "notebookPath": "/GetFilenames",
                                "baseParameters": {
                                    "sourcestgpath": {
                                        "value": "@concat('abfss://',activity('Get Metadata from Source').output.itemName,'@dqstg.dfs.core.windows.net/',item().name)",
                                        "type": "Expression"
                                    },
                                    "targetstgpath": {
                                        "value": "@concat('abfss://',activity('Get Metadata from Target').output.itemName,'@dqstg.dfs.core.windows.net/',item().name)",
                                        "type": "Expression"
                                    }
                                }
                            },
                            "linkedServiceName": {
                                "referenceName": "AzureDatabricks1",
                                "type": "LinkedServiceReference"
                            }
                        }
                    ]
                }
            },
            {
                "name": "Get Metadata from Target",
                "type": "GetMetadata",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "dataset": {
                        "referenceName": "DelimitedTargetFiles",
                        "type": "DatasetReference"
                    },
                    "fieldList": [
                        "childItems",
                        "itemName"
                    ],
                    "storeSettings": {
                        "type": "AzureBlobStorageReadSettings",
                        "recursive": true
                    },
                    "formatSettings": {
                        "type": "DelimitedTextReadSettings"
                    }
                }
            }
        ],
        "annotations": []
    },
    "type": "Microsoft.DataFactory/factories/pipelines"
}

Сбой конвейера с ошибкой:

{"error": {"code": "BadRequest", "message": "ErrorCode = InvalidTemplate, ErrorMessage = Выражение ' Activity ('Get Metadata From Source'). output @activity ('Get Metadata from Target'). output 'недопустим: строковый символ' @ 'в позиции' 44 'не ожидается. \ "", "target" : "pipe / V1 / runid / 1457", "details": null}}

Как этого достичь?

Спасибо.

1 Ответ

0 голосов
/ 02 марта 2020

Пожалуйста, попробуйте:

@union(activity('Get Metadata From Source').output.childItems, activity('Get Metadata From Target').output.childItems)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...