Как я могу получить доступ к параметрам конвейера из потока данных? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть конвейер с параметром (тип int). Внутри конвейера, в одной точке, у меня есть поток данных. Этот поток данных должен ссылаться на этот параметр, чтобы фильтровать данные по нему и добавлять его в качестве нового производного столбца. Однако из потока данных я не могу получить доступ к параметру, определенному в конвейере, в котором находится сам поток данных.

Pipeline:

    {
    "name": "TestPipeline",
    "properties": {
        "activities": [
            {
                "name": "TestDataFlow",
                "type": "ExecuteDataFlow",
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "typeProperties": {
                    "dataflow": {
                        "referenceName": "TestDataFlow",
                        "type": "DataFlowReference"
                    }
                }
            }
        ],
        "parameters": {
            "CompanyId": {
                "type": "int",
                "defaultValue": 1
            }
        }
    }
}

Поток данных:

    {
    "name": "TestDataFlow",
    "properties": {
        "type": "MappingDataFlow",
        "typeProperties": {
            "sources": [
                {
                    "dataset": {
                        "referenceName": "DBEmployee",
                        "type": "DatasetReference"
                    },
                    "name": "Employees",
                    "script": "source(output(\n\t\tId as long,\n\t\tName as string,\n\t\tSurname as string,\n\t\tEmail as string,\n\t\tPosition as string\n\t),\n\tallowSchemaDrift: true,\n\tvalidateSchema: false,\n\tformat: 'table') ~> Employees"
                }
            ],
            "transformations": [
                {
                    "name": "AddColumnId",
                    "script": "Employees derive(ColumnId = ERROR_FUNCTION('@pipeline(__SINGLE_QUOTE__TestPipeline__SINGLE_QUOTE__).parameters.CompanyId')) ~> AddColumnId"
                }
            ]
        }
    }
}

Мой запрос прост. Как я могу получить доступ к параметру конвейера "CompanyId" из преобразований внутри потока данных?

Спасибо!

1 Ответ

0 голосов
/ 07 июня 2019

Я использовал параметр для фильтрации входящих данных из набора данных в потоке данных, но не видел, как ссылаться на параметр в потоке данных для выполнения манипуляций в потоке (т.е. не отображается в списке, доступном для «фильтров»).блоки например).Не могли бы вы взять параметр, отправить его источнику как часть запроса, а затем отфильтровать и / или вернуть значение в виде столбца в наборе результатов и сделать это таким образом?Не пробовал это.

Ссылка на параметр конвейера:

Если у вас есть набор данных с параметром, тогда поток данных сможет предоставить этот параметр в потоке данных.панель настроек (отображается под «параметрами источника»).Это значение может быть предоставлено из параметра конвейера. Без параметра набора данных - опция «исходные параметры» не появляется.

В приведенном ниже примере source1 является моей ссылкой на набор данных в потоке данных data1.Он принимает параметр с именем «test».

В моем конвейере есть параметр с именем Test1.Это передается потоку данных.

Обратите внимание на предупреждение в пользовательском интерфейсе о том, как отлаживать.

{
"name": "pipeline1",
"properties": {
    "activities": [
        {
            "name": "dataflow1",
            "type": "ExecuteDataFlow",
            "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false,
                "secureInput": false
            },
            "typeProperties": {
                "dataflow": {
                    "referenceName": "dataflow1",
                    "type": "DataFlowReference",
                    "datasetParameters": {
                        "source1": {
                            "test": {
                                "value": "@pipeline().parameters.Test1",
                                "type": "Expression"
                            }
                        }
                    }
                }
            }
        }
    ],
    "parameters": {
        "Test1": {
            "type": "string"
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...