从 db2 数据库 Spring 引导将 h2 填充到内存数据库中

Populate h2 in memory database from a db2 database Spring Boot

我目前正在使用 h2 内存数据库构建 Spring 引导服务。 此数据库充当具有不同数据库架构的中央 db2 数据库中部分数据的缓存。

现在,当 Spring 引导服务启动时,它需要使用中央数据库的最新数据填充 h2 数据库。

我怎样才能以最好的方式做到这一点? 我目前正在寻找在我的服务中创建一个不同的数据源,以首先获取数据,然后将数据保存到 h2。

感觉这不是一个好的解决方案,填充数据库需要很长时间。

如果您想使用 H2 而不是 DB2 数据库...并且如果您不想每次 运行 您的应用程序时都重新创建数据库...

...然后考虑使用 H2 文件,而不是内存中的文件:

http://www.h2database.com/html/features.html

jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)

您可以随时 "initialize" 文件(也许只有一次)。

表现应该很出色。


根据您的更新:

I still need to access the central db to get the latest data in the fastest way possible. The central db needs to stay for other services also accessing this

获取最新数据的"fastest"方法...是直接查询中央数据库。期间 - 没有 ifs/ands/buts.

但是,如果出于某种原因,您想要 "cache" "recent" 数据的一个子集...那么 H2 是一个很好的选择。

如果您不想在每次启动 H2 数据库时都"rebuild",则将 H2 保存到文件中而不是将其保存在内存中。

与查询中央数据库的网络开销相比,H2:mem 和 H2:file 之间的性能差异很小。

'希望对您有所帮助...