我的天蓝色数据工厂有两项活动。
活动A1 = sql db上的存储过程。输入=无,输出= DB(输出1)。存储过程以输出数据集为目标。
活动A2 =从blob复制到相同sql db的azure复制活动(“type”:“Copy”)。输入= blob,输出= DB(输出2)
我需要在A2之前运行活动A1,我不能让世界弄清楚它们之间存在什么依赖关系。
我试图将A2标记为有两个输入 - blob + DB(output1)。如果我这样做,复制活动不会抛出错误,但它不会将blob复制到db(我认为它默默地使用DB作为复制源,而不是blob作为复制源,并以某种方式什么都不做)。
如果我删除了A2上的数据库输入(output1),它可以成功地将blob复制到数据库,但我不再拥有A1需要在A2之前运行的依赖链
谢谢!
答案 0 :(得分:1)
我想出来了 - 我能够在A2上保留两个依赖关系,但只需要确保2个输入的顺序。奇怪的。看起来像Copy活动只是作用于FIRST输入 - 所以当我移动blob作为第一个输入时它工作! :)(之前我将DB output1作为第一个输入,它默默地做了什么)
"activities": [
{
"type": "Copy",
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 0,
"writeBatchTimeout": "00:00:00"
}
},
"inputs": [
{
"name": "MyBlobInput"
},
{
"name": "MyDBOutput1"
}
],
"outputs": [
{
"name": "MyDBOutput2"
}
],
"policy": {
"timeout": "01:00:00",
"concurrency": 3,
"retry": 3
},
"scheduler": {
"frequency": "Day",
"interval": 1
},
"name": "AzureBlobtoSQL",
"description": "Copy Activity"
}
],