Azure Data Factory V2:如何将文件名传递给存储过程变量

问题描述 投票:2回答:1

我有一个重要的Azure SQL表,具有以下结构:

Company     Revenue
-------------------
A              100
B              200
C              100
.               .
.               .
.               .

我现在正在Azure Data Factory V2上构建一个存储过程,该过程将每月从Azure SQL事实表中删除特殊公司的所有记录。在本练习中,该特殊公司应由变量@company标识。存储过程的结构创建为:

@company NVARCHAR(5)

DELETE FROM table 
WHERE [company] = @company

由于我将从每个公司获得不同的Excel文件,每月将数据插入此表(使用复制活动),我想在添加最新更新之前使用上面的存储过程删除该公司的旧数据一。

我希望然后将变量“@company”传递给该Excel文件的名称(存储在blob容器中),以便存储过程知道要从事实表中删除的相关数据是什么。例如:如果Excel文件是“A”,则存储过程应为“从公司= A的表中删除”。

有关如何将Excel文件名传递给变量“@company”并在Azure Data Factory V2上进行设置的任何想法?

sql azure parameters azure-data-factory-2
1个回答
0
投票

有关如何将Excel文件名传递给变量“@company”并在Azure Data Factory V2上进行设置的任何想法?

嗨,安德烈。根据您的描述,我发现天蓝色数据工厂中的Event-based trigger可能会满足您的需求。基于事件的触发器在Azure Blob存储中运行管道以响应事件,例如文件到达或删除文件。

所以,当在blob存储中创建新的excel文件时(BTW,它只支持V2存储帐户,更多细节请参考这个article),你可以得到@triggerBody().folderPath@triggerBody().fileName。要在管道中使用这些属性的值,必须将属性映射到管道参数。将属性映射到参数后,您可以通过整个管道中的@pipeline.parameters.parameterName表达式访问触发器捕获的值。 (doc

您可以获取文件名并将其传递给存储过程。然后执行删除和复制活动。

希望它能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.