【问题标题】:Source must be binary when sink is binary dataset当 sink 是二进制数据集时,源必须是二进制
【发布时间】:2021-09-18 02:35:30
【问题描述】:

我正在尝试从网页下载一个 csv 文件(api 返回一个 csv 文件,而不是 json),并将其存储在数据湖 gen 2 中。所以我为网页创建了链接服务,为网页创建了数据集,我似乎没有在哪里指定数据源的文件类型。然后我用 ADLS2 创建了链接服务,也是 ADLS2 的数据集,采用二进制格式。

当我尝试通过按调试来运行它时,它给了我错误消息:

Copy data1
Source must be binary when sink is binary dataset.

所以我想知道系统如何知道源不是二进制数据集,我该如何解决这个问题

谢谢

【问题讨论】:

  • 这意味着当您为网页(HTTP?)创建数据集时,您选择了二进制以外的其他内容。你能显示源数据集的配置吗?
  • 谢谢!我已经为源数据中使用的数据集和链接服务添加了图像
  • 我无法从屏幕截图中看出底层数据类型是什么。当您创建 HTTP 数据集时,它会询问您引用的是哪种数据(定界、JSON、二进制等)。如果不是二进制,则不能将其用作写入另一个二进制的源数据集。二进制的限制在于,活动的双方都必须定义为二进制。
  • 在复制活动中使用二进制数据集时,您只能从二进制数据集复制到二进制数据集。您可以尝试使用 HTTP 连接器并在源代码中选择二进制数据集吗?请让我知道这是否有效。参考:stackoverflow.com/questions/58993778/…
  • @Bruce - 你能解决这个问题吗?

标签: azure rest azure-data-factory-2 azure-synapse azure-data-lake-gen2


【解决方案1】:

注意:在复制活动中使用二进制数据集时,您只能从二进制数据集复制到二进制数据集。

如果您使用REST linked service 将二进制源数据作为二进制复制到接收器,则会引发错误,因为我们没有选择数据集类型的选项。

相反,您可以使用HTTP connector 类型并从选项中选择二进制数据集以复制二进制数据。

【讨论】:

  • 感谢您分享您的知识。我遇到过同样的问题。你的建议解决了。
猜你喜欢
  • 2020-06-06
  • 2011-09-12
  • 1970-01-01
  • 2012-11-12
  • 2021-06-30
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多