创建具有多个链接服务的通用数据工厂

Posted

技术标签:

【中文标题】创建具有多个链接服务的通用数据工厂【英文标题】:Create a generic data factory with multiple linked services 【发布时间】:2020-06-03 00:43:29 【问题描述】:

用例:创建一个通用数据工厂,该工厂可以从具有平面文件的不同 Azure Blob 容器中读取数据到 Azure SQL 中。我创建了一个数据管道,它使用存储过程来填充 Azure SQL 表。

问题:我遇到的问题是我想从我的代码中执行这个数据工厂,并动态更改数据库和 blob 容器,并使用这个新参数执行相同的数据工厂。 Azure SQL 端的表名称将保持不变,而 Blob 存储中的文件名也将保持不变。更改将事先知道容器或容器内的文件夹名称。

请帮助我或指出什么可以帮助我实现这一目标以及是否可以实现这一目标。

【问题讨论】:

【参考方案1】:

您需要使用参数化数据集和链接服务。在数据工厂管道上定义参数(您希望从代码中传递的参数,例如容器名称或文件夹名称、SQL azure 的连接字符串和 Blob 存储的连接字符串)。一旦定义了 - 您需要将这些值一直传递到下游,直到链接服务

即像这样的东西 管道参数 > 数据集参数 > 链接服务参数

【讨论】:

您好 Bhushan,感谢您的回复,目前您只能为 Azure SQL 添加参数,但不能为 Azure Blob 存储添加参数,因此我不得不问这个问题 我明白了.. 在这种情况下,您能否确认 - 当您说“从不同的 azure blob 容器读取数据”时,您的意思是什么 - 您的存储帐户是否将相同,并且只是容器、目录还是需要参数化的文件名不同,或者您尝试在运行时连接的不同存储帐户? 是的,Blob 帐户将相同,容器和目录将不同。 好的,在这种情况下,与存储帐户的链接服务连接将保持不变,但是您想创建一个使用该连接的参数化数据集,现在已经更新了上面的屏幕截图。如您所见,数据集具有在相关位置引用的参数。数据集的参数可以从管道传递。 感谢您的评论。我会更新这个。我无法让ALT+P 函数在此页面上工作,因此我迷路了。

以上是关于创建具有多个链接服务的通用数据工厂的主要内容,如果未能解决你的问题,请参考以下文章

到 Azure SQL 数据库的数据流输出仅包含 Azure 数据工厂中的 NULL 数据

无法在 Azure 数据工厂中创建链接服务

在 ADF 中参数化 Azure Blob 存储链接服务

您可以拥有多个具有通用导出/序数的 DLL 并在运行时进行交换吗?

在 Azure 数据工厂中获取元数据没有成功给我多个 excel 文件

多个数据库条目的SQL更新