0

事情就是这样。

我有一个report供 pentaho 使用的数据库,用于生成报告。该数据库与 pentaho-server (v7.1) 在同一台机器上运行。

report数据库正在从遍布全国的大约 90 个其他数据库中填充。他们的人数正在增加。

因为,data-integration 也是一个 Java 应用程序,它开始需要太多的计算能力,而 pentaho web 应用程序太慢了。我们所做的是,我们将 fetch 转移到不同的机器上。这些 Java 应用程序在哪里运行,并将数据加载到report网络服务器上的数据库中。

但是,这种变化并没有带来预期的结果。同时显着降低主机上的平均负载(从大约 70 到大约 12)。

但是 postgres 本身仍然消耗太多功率(而且太慢),因为在另一台机器上不断有 20~30 个进程为report数据库提供新数据。当然有大约 90 个 fetch 进程,但它们从不会一次全部运行,而且一次运行的次数也不会少于 20 个。

我期望运行 fetches 的新机器的平均负载很高,而当没有生成报告时,Web 服务器的平均负载会很低。

所以我的问题是:当将数据加载到主机时,如何使获取使用从机的计算能力?

(我也在考虑用 python 编写我自己的脚本,在 fetch 期间执行更少的数据库操作,但这并不能解决我的问题,只是为我争取更多时间。)

我在看 Citus,但我不确定它是否正是我需要的,以及仅在 2 台机器上使用是否有意义。

所以基本上我的问题是:有什么办法,在将数据插入远程数据库时如何使用我的电脑的计算能力?

postgres 解决方案越原生越好。理想情况下不需要任何 3rd 方软件。

4

0 回答 0