Azure Synapse Pipeline如何将每个文件作为sql脚本执行?

标签 azure azure-synapse azure-data-lake azure-data-lake-gen2 azure-synapse-pipeline

是否可以使用 Azure Synapse Pipeline 将一组文件作为 SQL 脚本执行?

我有一组文件,每个文件都包含用于在我的 Azure Synapse 专用 SQL 池中创建存储过程的 SQL。我已将这些 SQL 文件保存在 Azure Datalake 容器中。

如何执行每个 SQL 文件?

我创建了一个 Azure Synapse 管道:

GetMetadata 返回数据湖容器中的每个文件名

上面的输出被发送到 ForEach 中,它可以访问每个文件名

现在,为了执行每个文件,ForEach 调用脚本事件,但是 Azure Synapse 管道 Web UI 并没有明确说明如何或是否可以使用此流程来执行文件。

当我运行管道时,ForEach 有 设置 -> 项目 -> @activity('GetMetadata01').output.childItems

脚本事件 -> 将服务点链接到我的 Synapse 脚本 -> 非查询 -> @item()

每次调用脚本事件时我都会收到此错误消息:

"message": "Failed to convert the value in 'text' property to 'System.String' type. Please make sure the payload structure and value are correct.",

有什么建议吗?

最佳答案

我认为这不能通过突触管道中的简单文本文件来完成。但是,我想到了两种解决方法:

  1. 使用 Json 文件托管 SQL 对象,并读取这些 Json 作为脚本事件的来源
  2. 使用 DMV sys.sql_modules(或其他 DMV,根据您的需要)获取您想要在查找事件中运行的代码,然后将其用作脚本事件的源。

关于Azure Synapse Pipeline如何将每个文件作为sql脚本执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76136732/

相关文章:

python - U-SQL + Python 基础题

azure - Azure 应用服务何时使用 .NET 5.0 核心?

Azure 数据工厂 v2 - OData - 复制数据 - XmlError 十六进制值 0x1F 是无效字符第 1 行,位置 1

azure - DataLake 锁定同一文件的读写

sql-server - 使用 SSIS 创建文件和文件夹到网络驱动器

c# - 如何使用 C# 客户端在 Azure Synapse 上创建表?

azure - 无法在 csharp 中设置 Azure Data Lake Gen2 中 blob 的 ContentType

.net - 5秒查看部署状态

.net - Visual Studio + Azure - 部署将引用复制到输出目录

asp.net - Azure Asp.Net Redirect 破坏 session 变量