【问题标题】:load the data from file using multi threading使用多线程从文件中加载数据
【发布时间】:2015-09-02 14:31:30
【问题描述】:

我想使用 java 程序将数据加载到 PostgreSQL 表中。 在 java 程序中我想使用多线程,我使用 COPY 命令 API

CopyManager copyManager = ((PGConnection)conn).getCopyAPI();
FileReader fileReader = new FileReader(filename);
copyManager.copyIn("COPY "+tblname+ " FROM STDIN DELIMITER ',' ", fileReader);

我已将文件分成“n”个部分,然后每个线程将该部分加载到 PostgreSQL 表中。

示例:
文件:test.csv
线程=3

然后test1.csv,test2.csv,test3.csv 被创建。每个线程执行每个文件。 它工作正常。

现在我想使用单个文件的多线程检查数据加载性能(不将文件分成n个文件)

示例:
文件:test.csv(包含 30000 条记录)
thread =3(第一个线程执行第一个10000行,
第二个线程执行1000120000,第三个线程执行20001-30000);

三个线程分割文件内容并使用COPY将数据加载到Postgres中。

是否可以使用java多线程划分文件记录并加载到Postgres?

【问题讨论】:

  • 有没有可能没关系,那是愚蠢的。所有这些关于尝试使文件读取多线程的帖子是什么?
  • 我也看不出任何正当理由。

标签: java postgresql


【解决方案1】:

将某些内容写入存储将阻止所有其他线程写入相同内容。您不能简单地将所有内容都设为多线程。

在这种情况下,所有其他部分都需要等待前一个完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多