在 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 导出数据的主要内容,如果未能解决你的问题,请参考以下文章