CSV-файл будет загружен в корзину Amazon S3.
Текущая реализация:
- Чтение CSV-файла с использованием readAll утилиты OpenCSV, которое возвращает List
- Сопоставить значение каждого столбца с объектом
- Создание объекта списка (текущий размер :: 15000)
- Вызов хранилища Spring Data CRUD. SaveAll (Список объектов)
- Из 780 тыс. Записей в базе данных сохранилось только 570 тыс. Записей.
- Мы не видим никаких исключений / ошибок после вставки этих многочисленных записей.
Абсолютно без понятия, что там происходит после
Немного погуглив, обнаружил, что команда copy
в PostgreSQL - это самый быстрый способ чтения / записи в базу данных PostgreSQL.
Это также поддерживается на нескольких языках Java, C, Python.
Попробовал с помощью CopyManager
API PostgreSQL, который получил перегруженные версии метода copyIn.
copyIn(String sql, InputStream is)
- Мы не можем использовать это, поскольку наш CSV содержит столбцы заголовков в первой строке, и мы хотим пропустить первую строку.
copyIn(String sql, Reader rd)
- Это не принимает объект CSVReader, так как он не относится к типу java.io.Reader
Технологии
- Java 8
- Spring-Boot 2.0
- Spring-Data 2.x
- Spring-JPA 2.x
- PostgreSQL - 9,6