我最近开始在Hadoop环境中工作。我需要做一些基本的ETL来填充几个表。目前,我正在使用sqoop和Impala shell命令将数据导入Hadoop,以编写用于转换的SQL查询。
但是这些天我经常听到关于Spark的消息。在我的情况下,用Spark而不是Impala shell编写ETL有什么好处吗?
谢谢 S
答案 0 :(得分:3)
过去,很多人要么使用A)SQL脚本(例如Impala)和UNIX脚本,要么使用B)ETL工具进行ETL。
但是,问题是1)更多的imo规模和2)基于技术的标准化。
既然使用了Spark,那么为什么不对Spark进行标准化呢?
我经历了这个周期,使用Spark可以很好地完成Kimball DWH处理。这意味着从Informatica之类的付费ETL工具而言,成本更低。但也有社区版本。
一些注意事项:
随着IT部门不断降低成本,Spark是一个不错的选择。但这不是为胆小者准备的,您需要成为一个好的程序员。这是我听到很多人说。
答案 1 :(得分:0)
我还要补充一点,Impala不是ETL工具,它是一个SQL查询引擎,通过它您可以在通过ETL过程清除数据后对非常大的数据集进行SQL查询。
从历史上看,Spark之前将Pig和Hive用于ETL。如果您更喜欢SQL之类的语法,则Hive仍然很重要,并且有许多变体可以提供更好的性能,例如Tez上的Hive和Spark上的Hive,它们用Spark取代了MapReduce。参考