我们的要求是从 Blob 存储中获取数据并转换为其他表格形式。这可以通过使用polybase的Sql DW来实现。在这种情况下,Azure 数据工厂的实际作用是什么?
我知道 Azure 数据工厂可以满足相同的目标。但是,使用 Polybase 的 Azure DW 不是最简单的选择和成本效益吗?
Polybase 只能真正做一件事 - 将数据加载到 Azure Synapse Analytics(以前称为 Azure SQL 数据仓库(或启用了 Polybase 的 SQL Server。 更准确地说,Polybase充当存储在存储或数据湖中的平面文件的虚拟化层,允许它们作为外部表在数据库中呈现,或者使它们可以作为物理表加载到数据库中,例如通过CTAS。
它做得很好,并且是将数据加载到 Synapse/仓库的推荐方法,假设您为数据加载选择了正确的 DWU 和资源类。
Polybase 在拒绝错误行和一些不同的文件类型/分隔符(逗号、管道等(方面有一些不错的额外功能,但仅此而已。
因此,如果您需要做的就是加载一些文件或放置虚拟化层,那么是的,您可以使用Polybase。
但是,让我问你几个问题:
- 您打算如何进行编排?
- 您打算如何进行日程安排? 事件还是基于时间?
- 您打算如何在作业完成或出错时通知某人?
- 您计划如何同时启动多个负载? Azure 数据工厂 (ADF( 有一个很棒的 For Each 任务,例如,它可以并行执行多达 20 个任务
- 是否要在加载之前或之后运行一些存储过程? 或任何其他 ELT 活动?
希望这有助于解释Polybase的位置,这通常至少是拼图的一部分。 如果你有更轻量级的 ELT 过程,则可以查看比 ADF 更轻量级的选项,如逻辑应用、Azure 运行手册等。
呵呵
在脸上,如果它,当然只是使用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/