是否可以使用 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.",
有什么建议吗?
最佳答案
我认为这不能通过突触管道中的简单文本文件来完成。但是,我想到了两种解决方法:
- 使用 Json 文件托管 SQL 对象,并读取这些 Json 作为脚本事件的来源
- 使用 DMV sys.sql_modules(或其他 DMV,根据您的需要)获取您想要在查找事件中运行的代码,然后将其用作脚本事件的源。
关于Azure Synapse Pipeline如何将每个文件作为sql脚本执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76136732/