【问题标题】:How to use Apache Spark as backend for Web-Application instead of Postgres [closed]如何使用 Apache Spark 作为 Web 应用程序的后端而不是 Postgres [关闭]
【发布时间】:2017-01-11 15:41:44
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


【解决方案1】:

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

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

  1. 您可以在启用 Hive 支持的情况下在 Spark 中读取数据并公开 HiveThriftServer,然后您可以从其他服务器调用 SQL 查询 应用程序。但是它不会是 Postgres 的后端,只是 您将使用的另一个应用程序。数据不会传输到 Postgres 自动,但存储在 Hive 元存储中,您必须创建函数将数据从 Spark 缓存/Hive 元存储传输到 Postgres,即通过使用带有 JDBC 接收器的 Spark 结构化流。完全描述提出的解决方案是相当复杂的,但是写起来并不难。如果您需要更多解释,请评论我的回答:)
  2. 在我看来,Data Grid 在您的情况下会更好。我真的很喜欢 Spark,但是 Coherence 可以将所有缓存写入异步队列中的数据库,因此您具有一致性和非常高的速度。

这在很大程度上取决于您将创建什么样的服务:) 如果您使用批处理作业/流式作业并将结果写入 Postres,即每小时,使用 SQL 的 Spark 会很好。如果你想在 Postres 中更快地更新,我会推荐一些 Data Grid,比如 Coherence 或 Apache Ignite

【讨论】:

  • @Gaweda,感谢您的回答。这真的很有帮助。您能否详细说明答案?我想根据要求为网站的后端实施 Spark。因此,如果您能解释得更多,将会很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
  • 2014-11-02
  • 2023-04-08
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多