Synapse Pipeline:从配置文件或表动态分配参数值

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

TLDR;

有没有办法动态分配突触管道/活动参数值(例如源/目标文件夹名称等),即读取配置文件或表而不是手动指定相同的值?

------------------------------------------------- ----------------------

我有一个 Synapse 管道,其中有一个笔记本活动执行一些转换和复制任务。我通过活动/管道参数将源文件夹和目标文件夹以及其他一些参数传递到笔记本。但是,我不想对这些参数值进行硬编码,而是想在文件(或表)中定义这些值,然后从那里读取这些值,这样我就可以为所有将使用相同参数的管道提供一个事实来源并且还使解决方案可以跨不同环境移植,而无需修改每个管道。是否有一个表达式或函数可以让我添加这样的动态内容?

我当前的解决方案是定义一个 YAML 配置文件,并在每个管道中添加此配置文件的路径,以便它可以从那里读取这些值。但我想知道是否有更优雅的方法来做到这一点。 另一个选项似乎是使用查找活动,但它有点复杂,需要设置控制表和编写查询等。???

azure pipeline apache-synapse
1个回答
0
投票

如果要动态给参数赋值,可以按照以下步骤操作:

使用以下代码在数据库中创建一个包含 ParameterName 和 ParameterValue 列的表:

create table parameters(ParameterName varchar(20), ParameterValue varchar(20))
insert into parameters(ParameterName, ParameterValue) values('src_root', 'AA')

为数据库创建链接服务以及具有链接服务的数据集。拖动“查找”活动,选择数据集作为源,然后选择“查询”选项。使用以下查询:

select ParameterValue from parameters where ParameterName = 'src_root'

enter image description here

使用下面的动态表达式为参数赋值:

@activity('Lookup1').output.value[0].ParameterValue

enter image description here

表达式将给出如下所示的输出:

enter image description here

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