У меня есть Java-приложение, которое выполняет следующие действия:
Чтение CSV-файла с удаленного сервера.
Проверка формата ( длина, формат даты, формат чисел и т. д.) и наличие в базе данных (существуют ли данные в БД).
Вставьте все действительные данные в БД.
< /ol>
До сих пор мой подход заключался в следующем:
Читать CSV-файл с однозначностью и зацикливать все строки. >
Разделите строку по разделителю на отдельную переменную, проверьте каждую переменную (например, длину, формат даты, существуют ли данные в БД и т. д.) и добавьте в подготовленный оператор с помощью .addBatch()< /li>
Вставьте действительные данные с помощью .executeBatch()
на данный момент для этого требуется 22 минуты. обработать CSV-файл объемом 280 тыс. строк, что довольно много.
Пример CSV:
Я понятия не имею, как его оптимизировать. Я хотел бы знать, как я могу улучшить этот подход или даже использовать совершенно другой подход, если это необходимо.
У меня есть Java-приложение, которое выполняет следующие действия: [list] [*]Чтение CSV-файла с удаленного сервера. [*]Проверка формата ( длина, формат даты, формат чисел и т. д.) и наличие в базе данных (существуют ли данные в БД). [*]Вставьте все действительные данные в БД. < /ol> До сих пор мой подход заключался в следующем:
[*]Читать CSV-файл с однозначностью и зацикливать все строки. > [*]Разделите строку по разделителю на отдельную переменную, проверьте каждую переменную (например, длину, формат даты, существуют ли данные в БД и т. д.) и добавьте в подготовленный оператор с помощью .addBatch()< /li> Вставьте действительные данные с помощью .executeBatch() [/list] на данный момент для этого требуется 22 минуты. обработать CSV-файл объемом 280 тыс. строк, что довольно много. Пример CSV: [code]ID|TransID|TransDate|TransAmount|TransType
123ABC1234|TRXL123456|25102024|000000016343100|N [/code] Пример кода: [code]public void consumeCsvFile() { File[] listOfFiles = new File(outUrl).listFiles(); try { for(File file : listOfFiles) { try (Reader reader = new InputStreamReader(new FileInputStream(file), "UTF-8") ){ List parsedRows = parser.parseAll(reader);
if(isValid){ // here code to insert dataRow to Database. }else{ // Data row not valid, add to list to write into ErrorFile in the end. } } } } } catch (Exception e) { throw new IllegalStateException("Unable to open input file", e); } }
private boolean validateDate(String dt) { try { if(dt.trim().length() != 8){ return false; }else { SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyy"); sdf.setLenient(false); try{ Date javaDate = sdf.parse(dt); }catch (Exception ex){ return false; } } } catch (Exception ex){ return false; } return true; } [/code] Я понятия не имею, как его оптимизировать. Я хотел бы знать, как я могу улучшить этот подход или даже использовать совершенно другой подход, если это необходимо.
У меня есть Java-приложение, которое выполняет следующие действия:
Чтение CSV-файла с удаленного сервера.
Проверка формата ( длина, формат даты, формат чисел и т. д.) и наличие в базе данных (существуют ли данные в БД).
Вставьте все...
У меня есть набор данных, которые я получаю из Excel CSV. Колонка, которую я использую, имеет временные метки в формате ISO 8601 с дробными секундами (yyyy-mm-ddthh: mm: ss.ssz)
Я попытался использовать датутил, изодат и датерн, чтобы...
Я хочу проверить код подписи в Python с единственным входом Path/to/file
Все остальные источники, с которыми я обращался, нуждаются в отдельных файлах подписи, но я хочу взять только в качестве ввода единого файла (может быть .exe или .dll)
Я...
У меня есть некоторый XML-код, который я хотел бы передать в конечную точку API, однако для этого мне нужно преобразовать XML в действительную строку JSON. Когда я ищу в Интернете преобразование xml в JSON или «действительную строку JSON», я нахожу...
Я хочу построить такую строку, как это:
Но когда я запускаю свой сценарий, я получаю дополнительную запятую в последней итерации.
if ($result->num_rows() > 0)
{
echo ' ';
}
Я хочу удалить последнюю запятую внутри закрывающей скобки....