现有过程-将原始结构数据复制到Redshift的登台层中。然后使用ETL工具(例如Informatica,Telend)将增量加载到Datamart/datawarehouse的Fact和Dimension表中。所有联接都发生在数据库层中(ETL将查询推送到数据库中)
-Spark可以代替ETL工具并进行相同的处理并将数据加载到Redshift吗?
-这种架构的优点和缺点是什么?

最佳答案

在过去的四年中,我已经为将现有ETL职位迁移到Spark中的项目进行了广泛的工作。

ETL作业的问题如下

  • 他们没有给我们严格的SLA。
    这些作业共享相同的资源池,因此很难确定优先级。每个人都以business critical的身份从事工作。
  • 另一个重要的问题是,当我们向提供商付款时,基于ETL的工作的成本很高。
  • 规模是另一个重要问题。我们需要大量的ETL,发现它太昂贵了。

  • 因此,我们迁移了所有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/

    10-16 00:56