В настоящее время я пытаюсь настроить этот конвейер на фабрике данных 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"
}