现有流程 - 将原始结构数据复制到Redshift的暂存层。然后使用Informatica,Telend等ETL工具对Datamart / datawarehouse的Fact and Dimension表进行增量加载。所有连接都发生在数据库层中(ETL将查询推送到DB中) - Spark可以替换ETL工具并执行相同的处理并将数据加载到Redshift中吗? - 这种架构有哪些优点和缺点?
答案 0 :(得分:1)
过去4年中,我一直在广泛地从事将现有ETL职位迁移到Spark的项目中。
ETL作业的问题如下
他们没有给我们严格的SLA。
这些作业共享相同的资源池,因此很难确定优先级。每个人都以business critical
的身份从事工作。
另一个重要的问题是,当我们向提供者付款时,基于ETL的工作成本很高。
规模是另一个重要问题。我们需要庞大的ETL,发现它太贵了。
因此,我们迁移了所有ETL以激发工作。 Spark和hadoop都是开源的,除了计算之外,我们没有任何其他成本问题。
随着时间的推移,对SQL的火花支持得到了显着改善。您可以在同一数据帧上运行ML / Graph查询和普通ETL。 Spark联接速度很快,可以针对不同的数据集进行优化。您可以更精细地控制自己的转换和加入。
我们从使用长期运行的集群开始,该集群支持spark和其他大数据工具。我们统一了平台,以便所有客户都可以使用它。我们慢慢地将所有ETL作业迁移到火花作业。
我们确实使用Redshift进行报告,但是从数据中查找见解,联接,管理传入数据并将其与现有快照合并的所有繁重工作都在spark中完成。
通过将现有的ETL职位转移到Spark,我们可以节省数百万美元。
对此,我的两分钱是,最终将产生火花,配置大数据,Hadoop将最终超过ETL职位。我并不是说ETL会被淘汰,但是开源解决方案肯定会成为该领域的主导力量。
答案 1 :(得分:0)
我是否知道用Spark替换Informatica的原因。 Informatica BDM 10.1版本附带Spark执行引擎,它将Informatica映射转换为Spark等效(Scala代码)并在集群上执行此操作。 另外,在我看来,Spark更适合不是中间的数据,在ETL的情况下,数据从转换变为转换!!!