gpt4 book ai didi

java - 一步将数据从 Postgres DB 复制到 AWS S3

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:52 25 4
gpt4 key购买 nike

我有一个将选定数据从 Postgres 移动到 Amazon S3 的用例。这应该在一个步骤中发生。我正在编写一个 java 程序来完成这项工作。

我找到了一种分两步复制数据的方法。我使用 CopyManager 库和 copyOut 方法将数据导入本地。在此之后,我将使用 Java 将同一个文件移动到 S3 中。

postgres 代码获取数据到我的本地

CopyManager copyManager = new CopyManager((BaseConnection) con);
FileWriter fileWriter = new FileWriter("file.csv");
copyManager.copyOut("COPY (SELECT stmt) TO STDOUT WITH DELIMITER '\t' CSV HEADER", fileWriter);

从本地移动到 S3 的 AWS 代码

AmazonS3 conn = new AmazonS3Client(credentials);
conn.setEndpoint("xxx.com");
conn.putObject(
bucket1.getName(),
"request.json",
new File("file.csv")
);

我希望它一次性发生,而不是写入文件然后将文件移动到 S3。

最佳答案

我还没有尝试过,但我认为你应该能够做到。

您可以传递任何 OutputStream,而不是将 FileWriter 传递给 copyOut()。您还可以向 putObject 方法提供 InputStream 而不是文件。

因此,您只需将 OutputStream 转换为 InputStream,对此有多种方法(例如,参见 this post )或者您可以使用类似 EasyStream library 的东西.

关于java - 一步将数据从 Postgres DB 复制到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53887266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com