azure 我们是否可以提取Pipeline中使用的数据集的名称,以便在Pipeline中使用?

7qhs6swi  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(127)

我们有一个表(Classification),其中包含数据集名称和安全分类。当我们在这些数据集上执行ETL任务时,需要为输出文件分配其组件的安全分类的最大值。
数据集A和数据集B分别被分类为1和4。
dataFlow1连接两个数据集。生成的数据集必须以4记录在分类中,以保留最高级别的分类。
我尝试构建以数据流开始的管道,然后是GetMetadata活动以查找管道中使用的所有数据集的名称,期望获得可用于查询表的名称列表。我没有得到数据集名称的列表。
我用Notebook尝试了类似的方法,希望能得到所有的名字。我无法让一个启动和运行。

tf7tbtn2

tf7tbtn21#

要提取Pipeline中使用的数据集名称以在Pipeline中使用,您需要使用Pipelines-Get(ADF)的Rest API,Pipelines-Get(Synapse)

您可以按照以下步骤操作:

  • 取一个web活动,使用Rest API从上面的文档中获取有关管道的详细信息。
--For ADF
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelines/{pipelineName}?api-version=2018-06-01

--For Synapse
{endpoint}/pipelines/{pipelineName}?api-version=2020-12-01

字符串
x1c 0d1x的数据

  • 然后为每个Activity取值并传递range以从Activity获取数据集。这里我需要前两个活动的数据集,所以我使用了@range(0,2)

  • 在foreach循环内部,采用两个追加变量,源数据集的第一个变量传递表达式为@activity('Web1').output.properties.activities[item()].inputs[0].referenceName,接收数据集的第二个变量传递表达式为@activity('Web1').output.properties.activities[item()].outputs[0].referenceName

  • 您将获得输入和输出数据集的数组,如下所示:x1c4d 1x的

相关问题