优点和缺点分别是什么?

相对于第三方工具,我只能看到好处并希望得到纠正。

根据我的经验,使用 ETL 工具,业务流程被迫以高度受限的方式实现,这种方式具有短期花哨的功能,但通常会以高度抽象的整体代码库结束,该代码库的任何优化都受到第三方供应商的摆布。随着数据量和质量的长期变化,获得表现不佳结果的风险是 100% 确定的。

Apache Spark 作为一个独立的统一框架 —

  •  优点:

  • 使用 2.x 版本,您可以获得几乎类似 ANSI sql 的语法 - 易于快速开发以构建复杂的转换,并且易于有效地重构/打包。

  • 可配置为“第十一个”,以从分布式数据集中获取大部分收益。

  • 实时(结构化流)和批量(数据帧)开箱即用,可以非常轻松地端到端集成所有作业。

  • 对数据科学任务的大力支持。

  • 与存储无关(几乎),允许您构建按需 ETL,而无需遵循星型模式的旧格言。

  •  缺点:

  • 重复一下“强大的力量……”这句话:要真正制作出可用于生产的代码,需要很好地理解 Spark/Yarn(或 K8)/JVM 如何协调工作,以及如何优化调整它们中的每一个以避免许多错误困惑中挠头的事件。

  • 结构化流在处理相当大的更新时有点狡猾(特别是对于内存接收问题)(变得更好)

  • 数据框架 UI/日志需要改进,以清楚地显示 Dag 的解剖结构(显示有关 WholeStageCode 如何与低级别 RDD 对齐的更详细信息)

  • 缺乏针对常见洗牌/分区/倾斜问题的内置调试(人们总是可以围绕预期问题编写代码)。