Создание этого конвейера на базе фабрики данных Azure V2

В настоящее время я пытаюсь настроить этот конвейер на фабрике данных Azure V2 (как вы можете видеть на прилагаемом рисунке). Таким образом, эта ERP-система будет ежемесячно экспортировать этот отчет (файл CSV с фактическими и прогнозными данными), и он будет сохранен в контейнере больших двоичных объектов. Как только этот файл CSV будет сохранен, триггер события должен активировать эту хранимую процедуру, которая, в свою очередь, удалит все фактические данные из моей таблицы фактов в Azure SQL, поскольку она заменяется каждый месяц.

После удаления фактических данных конвейер будет иметь впоследствии действие копирования, которое, в свою очередь, скопирует отчет CSV (фактические данные + прогноз) в ту же таблицу фактов в Azure SQL. После завершения операции копирования приложение логики HTTP удалит этот новый файл CSV из контейнера больших двоичных объектов. Этот рабочий процесс будет повторяющимся мероприятием, которое будет проводиться каждый месяц.

До сих пор мне удавалось выполнять эти 3 действия независимо друг от друга. Однако, когда я присоединяюсь к ним в одном конвейере, у меня возникали некоторые ошибки параметров при попытке «опубликовать все». Поэтому я не уверен, нужно ли мне иметь одинаковые параметры для каждого действия в конвейере?

Код JSON для моего конвейера следующий:

{
    "name": "TM1_pipeline",
    "properties": {
        "activities": [
            {
                "name": "Copy Data1",
                "type": "Copy",
                "dependsOn": [
                    {
                        "activity": "Stored Procedure1",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    }
                ],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false
                },
                "typeProperties": {
                    "source": {
                        "type": "BlobSource",
                        "recursive": false
                    },
                    "sink": {
                        "type": "SqlSink",
                        "writeBatchSize": 10000
                    },
                    "enableStaging": false,
                    "dataIntegrationUnits": 0
                },
                "inputs": [
                    {
                        "referenceName": "SourceDataset_e7y",
                        "type": "DatasetReference",
                        "parameters": {
                            "copyFolder": {
                                "value": "@pipeline().parameters.sourceFolder",
                                "type": "Expression"
                            },
                            "copyFile": {
                                "value": "@pipeline().parameters.sourceFile",
                                "type": "Expression"
                            }
                        }
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "DestinationDataset_e7y",
                        "type": "DatasetReference"
                    }
                ]
            },
            {
                "name": "Stored Procedure1",
                "type": "SqlServerStoredProcedure",
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "typeProperties": {
                    "storedProcedureName": "[dbo].[test_sp]"
                },
                "linkedServiceName": {
                    "referenceName": "AzureSqlDatabase",
                    "type": "LinkedServiceReference"
                }
            },
            {
                "name": "Web1",
                "type": "WebActivity",
                "dependsOn": [
                    {
                        "activity": "Copy Data1",
                        "dependencyConditions": [
                            "Succeeded"
                        ]
                    }
                ],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "typeProperties": {
                    "url": "...",
                    "method": "POST",
                    "body": {
                        "value": "@pipeline().parameters.BlobName",
                        "type": "Expression"
                    }
                }
            }
        ],
        "parameters": {
            "sourceFolder": {
                "type": "String",
                "defaultValue": "@pipeline().parameters.sourceFolder"
            },
            "sourceFile": {
                "type": "String",
                "defaultValue": "@pipeline().parameters.sourceFile"
            },
            "BlobName": {
                "type": "String",
                "defaultValue": {
                    "blobname": "source-csv/test.csv"
                }
            }
        }
    },
    "type": "Microsoft.DataFactory/factories/pipelines"
}

введите здесь описание изображения


person ERR    schedule 12.09.2018    source источник
comment
Что такое подробное сообщение об ошибке? Не могли бы вы поделиться json-кодом конвейера? Вы можете найти кнопку кода в верхнем левом углу пользовательского интерфейса.   -  person Fang Liu    schedule 12.09.2018
comment
Привет, @FangLiu. Сегодня днем ​​я провел несколько тестов и сумел исправить некоторые проблемы с параметрами. Однако триггер события, который должен активировать процедуру хранения (как показано выше), по какой-то причине не запускается, когда в монетоприемнике создается новый большой двоичный объект. Нужно ли мне добавлять какие-либо параметры в действие процедуры хранения, поскольку это первое действие в моем конвейере? Спасибо!   -  person ERR    schedule 12.09.2018
comment
Также я только что отредактировал сообщение с json-кодом конвейера. Спасибо!   -  person ERR    schedule 12.09.2018
comment
Чтобы узнать о событиях, связанных с BLOB-объектами, обратитесь к этому сообщению. stackoverflow.com/questions/51134475 /   -  person Fang Liu    schedule 12.09.2018
comment
И вы не можете поместить выражение в значение по умолчанию. Это не будет оцениваться. Вам нужно передать значение этим параметрам с помощью триггера. Вы можете редактировать триггер в пользовательском интерфейсе.   -  person Fang Liu    schedule 12.09.2018
comment
Как только я нажимаю кнопку Trigger, появляется окно, в котором я могу передавать значения этим параметрам на лету. Разве так не должно быть? Также в отношении события blob я выполнил все шаги, но по какой-то причине триггер не работает (он работает, когда в моем конвейере есть только действие копирования). Любые идеи? Спасибо!   -  person ERR    schedule 12.09.2018
comment
Триггер теперь используется для ручного запуска конвейера. Если вы просто хотите запустить конвейер один раз, этого достаточно. Но если вы хотите запустить конвейер на основе расписания или события, вам нужно использовать триггер по расписанию / триггер всплывающего окна или триггер события. В ваших случаях кажется, что вы хотите использовать триггер события.   -  person Fang Liu    schedule 13.09.2018


Ответы (1)


Следуйте этому документу чтобы настроить триггер события большого двоичного объекта и передать правильное значение вашим параметрам.

person Fang Liu    schedule 13.09.2018
comment
Привет, Фанг, спасибо за это! Теперь все работает, несмотря на то, что параметры триггера не менялись…. - person ERR; 14.09.2018