使用 ADF 将 azure blob 文件复制到 azure synapse

Posted

技术标签:

【中文标题】使用 ADF 将 azure blob 文件复制到 azure synapse【英文标题】:copy azure blob files to azure synapse using ADF 【发布时间】:2021-03-13 09:21:19 【问题描述】:

我的源文件以 CSV 格式保存在 Azure Blob 存储中。

我希望将这些文件解压缩并使用 ADF 移动到 Azure 突触。在复制活动源中,我为 blob 存储提供了输入,在接收器中,我为突触提供了输入。 但我不确定我需要在 Polybase 或 Copy Command (Preview) 或 Bulk insert 中选择哪种复制方法。 我尝试使用 Polybase 和批量插入复制方法。但是运行管道时出现以下错误。

ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error happened when loading data into SQL Data Warehouse.,
Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,
Message=User does not have permission to perform this action.,Source=.Net SqlClient Data Provider,
SqlErrorNumber=15247,Class=16,ErrorCode=-2146232060,State=1,Errors=[Class=16,Number=15247,State=1,Message=User does not have permission to perform this action.,,],'

但是在 Azure sql Datawarehouse 中,我可以使用 sql 脚本插入数据。所以,我相信上面的用户权限错误不是让我管道失败的问题。

请您指导我,因为我是 Azure 的新手?

谢谢

【问题讨论】:

IIRC 您在设置数据源/接收器时提供连接凭据。使用该凭据以确保它具有对正确架构/表的写入权限。 PS:创建自己的编排以使用 COPY 命令将 csv 文件加载到 Synapse 而不是数据工厂(更难但)便宜得多。 您是否使用相同的用户/帐户连接到 Azure 突触? 感谢 Kashyap 的回复。您能否提供有关编排方式的更多信息? 大家好.. 非常感谢您的回答。但问题出在数据库的防火墙设置中。现在已修复,我可以将文件复制到 dw。 【参考方案1】:

问题是由数据库防火墙设置引起的。

我们很高兴听到它现在已修复。

【讨论】:

以上是关于使用 ADF 将 azure blob 文件复制到 azure synapse的主要内容,如果未能解决你的问题,请参考以下文章

Azure ADF 管道复制数据日志文件未触发第二个管道的“已创建 Blob”触发器

在 Azure 存储中创建文件列表并使用 ADF 将其发送到 sql 表

使用 ADF 将文件夹从具有 2 级子文件夹的 azure 容器移动到与子文件夹同名的容器级

Azure 数据工厂 ADF 数据管道将文件名包含在将数据复制到 sql 数据库中

如何使用 Azure 数据工厂中的每个活动合并文件

使用 Python 脚本的 ADF 管道中的 Azure 函数