现有过程-将原始结构数据复制到Redshift的登台层中。然后使用ETL工具(例如Informatica,Telend)将增量加载到Datamart/datawarehouse的Fact和Dimension表中。所有联接都发生在数据库层中(ETL将查询推送到数据库中)
-Spark可以代替ETL工具并进行相同的处理并将数据加载到Redshift吗?
-这种架构的优点和缺点是什么?
最佳答案
在过去的四年中,我已经为将现有ETL职位迁移到Spark中的项目进行了广泛的工作。
ETL作业的问题如下
这些作业共享相同的资源池,因此很难确定优先级。每个人都以
business critical
的身份从事工作。 因此,我们迁移了所有ETL以激发工作。 Spark和hadoop都是开源的,除了计算之外,我们没有任何其他成本问题。
随着时间的推移,Spark对SQL的支持得到了极大的改善。您可以在同一数据帧上运行ML/Graph查询和普通ETL。 Spark联接速度很快,可以针对不同的数据集进行优化。您可以更精细地控制自己的转换和加入。
我们从使用长期运行的集群开始,该集群支持spark和其他大数据工具。我们统一了平台,以便所有客户都可以使用它。我们慢慢地将所有ETL作业迁移到了新作业。
我们确实使用Redshift进行报告,但是从数据中查找见解,联接,管理传入数据以及将其与现有快照合并的所有繁重工作都是在spark中完成的。
通过将现有的ETL职位转移到Spark,我们可以节省数百万美元。
我对此的两分钱是,最终将引发大量的大数据,Hadoop将最终超过ETL的工作。我并不是说ETL将被剔除,但是开源解决方案肯定会成为这一领域的主导力量。
关于amazon-web-services - 可以Spark替换ETL工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40812573/