如何在 Azure 数据工厂中执行 SQL 查询

Posted

技术标签:

【中文标题】如何在 Azure 数据工厂中执行 SQL 查询【英文标题】:How to execute a SQL query in Azure Data Factory 【发布时间】:2020-01-09 06:26:32 【问题描述】:

我在 ADF 中创建了一个用于执行复制活动的管道。我的源数据库是 Azure SQL 数据库,接收器是 Azure Blob。我想在 ADF 中执行 SQL 查询,以便在将数据复制到 blob 后从源中删除数据。我不允许使用复制或查找来执行查询。他们是否有任何自定义方式来执行此操作。我需要创建一个视图并且必须做一些活动。请帮助

【问题讨论】:

【参考方案1】:

您还可以使用内置存储过程sp_executesql,它允许您提供随机SQL 语句作为参数。 这样您就不必实现自己的存储过程。

在sp_executesql (Transact-SQL) 上查看有关此存储过程的更多信息。

【讨论】:

【参考方案2】:

如果您正在使用数据映射流,则有一个新活动可以执行自定义 SQL 脚本:

Azure Data Factory mapping data flows adds SQL scripts to sink transformation

在常规管道中,您可能不得不求助于使用存储过程活动:

Transform data by using the SQL Server Stored Procedure activity in Azure Data Factory

您必须在 SP 中编写删除逻辑,然后从数据工厂调用 SP。

【讨论】:

您好,感谢您的回复,很遗憾我无法将数据流用于生产。仍然处于预览模式。而且我在以参数为表的 azure 数据仓库中创建数据存储过程时遇到了一些困难。数据仓库中不允许创建表类型。【参考方案3】:

您可以编写一个用于从源表中删除数据的存储过程,并在复制活动后在“存储过程”活动中调用该存储过程。

您的数据流将如下所示:

COPY ACTIVITY -----> STORED PROCEDURE ACTIVITY

【讨论】:

以上是关于如何在 Azure 数据工厂中执行 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 数据工厂中为雪花连接执行下推优化

如何基于 Azure 数据工厂中创建的 Blob 执行触发器?

Azure 数据工厂:如何从数据流转换中的流中获取第一行

如何提高 SQL Azure 查询性能

如何使用数据工厂将数据从 Azure Blob 存储增量加载到 Azure SQL 数据库?

如何在 Azure 数据工厂中为与外键相关的表创建管道并执行复制活动?