3

我们的要求是从 Blob 存储中获取数据并转换为其他表格形式。这可以通过使用 polybase 的 Sql DW 来实现。在这种情况下,Azure 数据工厂的真正作用是什么?

我知道 Azure 数据工厂可以实现相同的目标。但是,使用 Polybase 的 Azure DW 不是最简单且经济高效的选择吗?

4

2 回答 2

5

Polybase 只能真正做一件事 - 将数据加载到启用了 Polybase 的 Azure Synapse Analytics(以前称为 Azure SQL 数据仓库)或 SQL Server。更准确地说,Polybase 充当存储在存储或数据湖中的平面文件的虚拟化层,允许它们作为外部表在数据库中呈现,或者使它们可作为物理表加载到数据库中,例如通过 CTAS。

它做得很好,并且是推荐的将数据加载到 Synapse / Warehouse 的方法,假设您为数据加载选择了正确的 DWU 和资源类。

Polybase 在拒绝错误行和一些不同的文件类型/分隔符(逗号、管道等)方面有几个不错的额外功能,但实际上就是这样。

因此,如果您需要做的只是加载一些文件或放置一个虚拟化层,那么是的,您可以只使用 Polybase。

不过,让我问你几个问题:

  • 您打算如何进行编排?
  • 你打算如何安排你的日程安排?基于事件还是基于时间?
  • 当工作完成或出现错误时,您打算如何通知某人?
  • 您打算如何同时启动多个负载?Azure 数据工厂 (ADF) 具有出色的 For Each 任务,例如可以并行执行多达 20 个任务
  • 你想在加载之前或之后运行一些存储过程吗?或任何其他 ELT 活动?

希望这有助于解释 Polybase 的位置,这通常至少是一个难题。如果您有更轻量级的 ELT 流程,您可能会考虑比 ADF 更轻量级的选项,例如逻辑应用程序、Azure Run Books 等。

高温高压

于 2019-12-19T12:39:21.227 回答
2

从表面上看,如果它,肯定只使用 Polybase,它很简单。它使用 TSQL。但是,我们在谈论多少数据?不同的格式?它需要清洁或改造吗?随着这些需求的增长,答案可能会改变。如果您有大量数据要转换,也许您不想将 DW CPU 周期用于转换而不是查询?所以,就像这里的大多数事情一样,答案......取决于。您可以使用 Polybase、SSIS、ADF、HDInsight 等……James Serra 很好地列出了所有选项。 https://www.jamesserra.com/archive/2019/01/what-product-to-use-to-transform-my-data/

于 2019-12-19T12:41:07.267 回答