在 Spring Boot 中使用 Copy 命令从 Postgres 导出数据

Posted

技术标签:

【中文标题】在 Spring Boot 中使用 Copy 命令从 Postgres 导出数据【英文标题】:Exporting Data from Postgres with Copy command in SpringBoot 【发布时间】:2019-10-16 13:18:31 【问题描述】:

我正在尝试从 Spring-boot 应用程序中导出 PostgreSQL 表。我有一个选择所有记录并将其映射到 CSV 的逻辑。该应用程序目前检索所有数据并使用 CSV 库对其进行格式化/导出。也有来自 PostgreSQL 的直接命令来导出数据(COPY 命令),而不使用任何 API。这是一种从应用程序完成此操作的方法吗?

从 Spring-boot 添加查询并尝试执行复制操作,其中 spring 不允许执行命令。

Spring-boot 推荐使用 Postgres 的 CopyManager?

有没有一种方法可以直接从数据库中获取数据,而无需应用程序检索数据?

【问题讨论】:

“没有数据被应用程序检索?” 那么数据会去哪里,又是如何到达那里的呢? 意味着数据导出可以委托给数据库(以某种方式)?应用程序只需从文件系统中的绝对路径获取导出的 CSV 并将其传递给 Web 客户端(在部署中,应用程序和数据库在同一台服务器上运行。) 【参考方案1】:

COPY 会在数据库服务器上创建一个文件,所以除非你真的想要,否则不要使用COPY

如果您想要应用程序机器上的文件中的数据,请使用SELECT 语句,并在 Java 代码中将输出格式化为 CSV,最好使用 CSV 库。

【讨论】:

这正是我现在正在做的事情,而且它正在工作。考虑到数据量,我正在研究的数据导出替代方案。 @akumaras 您应该在问题中提到这一点。本来可以让我免于建议你已经知道的东西。 --- 你真正想解决什么问题?您最好编辑并澄清问题。 我的错,我在关于当前方法的问题中提供了一些信息。刚刚编辑了问题

以上是关于在 Spring Boot 中使用 Copy 命令从 Postgres 导出数据的主要内容,如果未能解决你的问题,请参考以下文章

在命令行 Spring Boot 中传递多个参数

Spring Boot Maven 打包可执行Jar文件!

Spring Boot Maven 打包可执行Jar文件!

Spring Boot Maven 打包可执行Jar文件!

Spring Boot Maven 打包可执行Jar文件!

Spring Boot Maven 打包可执行Jar文件!