如果最终目标是使用Spark执行计算,那么首先将Postgres数据传输到HDFS (使用Sqoop)的原因是什么?
这个问题的答案(它引用的是MongoDB,而不是仍然适用的PostgreSQL...but )提到了这两个选项,但我想知道是什么促使我们选择一个而不是另一个。
发布于 2016-06-29 22:06:08
这可能是一个过于宽泛的问题,但与任何系统一样,您拥有的步骤和依赖越少,只要它满足当前和未来(或足够未来)的业务目标,支持它就越容易。
在您的用例场景中,您似乎对HDFS和SQOOP没有任何用处。在很多环境中他们可能会。例如,他们可能希望使用HDFS作为文件存储,并将记录保存在方便的地方,即使在使用Spark处理记录之后也是如此。例如,它们可能是客户记录,并且是聚合的,这样您就可以将原件放在手边,这样如果每个客户需要的话,您可以给他们自己的记录。
通过直接进入火花和基于你的工作,你将变异的数据,你可能无法得到原来的。通过在HDFS中保留一个副本,您还可以始终重新创建最终结果,因为您拥有创建结果的副本。
如果您不需要将数据保持在您所提取的表单中,或者不需要通过进行您可能不需要的相同过程来重新创建输出。另一项可能是您需要一个live /qa环境。通过将其放在HDFS中,您可以使用最新的数据对所有环境遵循相同的过程。如果数据已被处理,但未维护/存储,则可能无法重新创建问题或场景。
这是许多可能的原因之一。真的要看情况了。
https://dba.stackexchange.com/questions/142617
复制相似问题