如何使用Apache Spark作为Web应用程序的后端而不是Postgres

时间:2016-09-03 19:49:34

标签: postgresql apache-spark apache-spark-sql bigdata database

我有一个使用 Postgres 作为后端数据库的Web应用程序。目前数据并不是那么大。但最终它会增加并且将拥有大数据

是否可以将当前数据库 - Postgres 迁移到 Apache Spark 作为后端,以便更快地访问数据?

例如 我可以使用Spark-SQL访问数据,这样我就不必更改代码了。

我能想到从数据库中更快地访问数据的其他解决方案吗?

任何帮助或建议将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

Spark不是数据库引擎。但是,它允许您对您拥有的数据运行SQL查询。

在我看来,你的选择很少:

  1. 您可以在启用了Hive支持的Spark中读取数据并公开 HiveThriftServer,然后您可以从其他人调用SQL查询 应用。然而,它不会仅仅是Postgres的后端 您将使用的另一个应用程序数据不会转移到 Postgres会自动存储,但存储在Hive Metastore中,您必须创建函数以将数据从Spark缓存/ Hive Metastore传输到Postgres,即使用Spark Structured Streaming和JDBC sink。完全描述提出的解决方案相当复杂,但编写起来并不困难。如果您需要其他解释,请评论我的答案:)
  2. 在我看来,数据网格在您的情况下会更好。我非常喜欢Spark,但是Coherence可以在异步队列中将所有缓存写入数据库,因此您可以获得一致性和非常高的速度。
  3. 这取决于你将要创建什么样的服务:)如果你使用批处理作业/流工作并将结果写入Postres,即每小时,Spark with SQL将是好的。如果你想在Postres中更快地更新,我会推荐一些数据网格,例如Coherence或Apache Ignite