Мне нужно сравнить два CSV-файла, каждый из которых имеет от 500000 до 900000 строк (да, они большие), и я хотел бы знать, какой из них лучший.
Что мне нужно сделать
- Удалить строки в CSV1, которых нет в CSV2, используя значение ключа (код)
- Удалить строки с каждой стороны в определенные часы
- Показать разницу в некоторых полях, таких как «Количество», с фильтрацией по таким полям, как «Город» или «Дата»
Я мог бы попытаться сохранить каждый CSV-файл в списке JAVA и создать базу данных (используя SQLite) с конечным результатом (различия и удаленные строки), а затем выполнить запросы к этой базе данных, например, выбрать только из одного города. из некоторых дат / часов или кодов (или даже всех их одновременно, конечный пользователь будет применять фильтры из интерфейса, используя флажки или комбинированные списки)
Каждый CSV-файл выглядит примерно так
CITY; CODE; DATETIME; Quantity
city1; city_1_code_1; DD/MM/YYYY hh:mm:ss; 2500
Я не уверен, что это лучший способ сделать это с точки зрения производительности. Должен ли я хранить данные в памяти и просто использовать списки для сравнения? если нет, то для этого достаточно использовать SQLite? или я должен использовать что-то другое? Мне не хватает лучшего способа сделать эту операцию?
Я разрабатываю это с использованием JavaFX, и результаты должны быть показаны в таблице (это совсем не проблема, просто чтобы вы оказались в контексте)
Заранее спасибо, и дайте мне знать, если вам нужно что-то знать