Загрузка данных из файла в таблицу Maria DB, проблемы при загрузке - PullRequest
0 голосов
/ 11 июня 2018

Я идентифицирую файл в папке, выбираю файл и считываю файл, используя BufferedReader, читаю построчно и преобразую эту строку в объект ArrayList (это занимает много времени, так какпятьдесят столбцов) и готовит подготовленное заявление и добавляет его в пакет, как только я добавляю 4000 записей в пакет, мы фиксируем данные в таблице. Все это занимает много времени, так как это чтение из файла и вставка его вТаблица, я следовал следующему подходу: 1) Переберите каждую строку в файле и поместите каждую строку как строковый объект в список (предположим, что размер списка составляет 93000).2) разбить список на подсписки (каждый размер подсписка 4000), это означает, что мы получаем 24 подсписка.3) Я создал потоки, используя Callable Interface вместе с Executor Framework.4) я передаю каждый подсписок в один поток, это означает, что в моем случае это 24 потока.5) каждый поток преобразует каждый объект String в подсписке в подготовленный оператор и добавляет его в пакет и фиксирует после добавления 4000 тыс. Записей.

проблема:

при загрузке файла, иногданекоторые записи не загружаются, а некоторые записи правильно загружаются в таблицу.-> когда я запускаю его несколько раз, иногда пропускаются только 5 записей, иногда 1000, иногда 3230 записей, иногда 100% загружаются правильно.-> Может кто-нибудь, пожалуйста, помогите мне понять, почему это показывает такое поведение.

1 Ответ

0 голосов
/ 12 июня 2018
  1. CREATE таблица, которая отражает структуру файла.
  2. Используйте LOAD DATA INFILE ... для чтения файла и заполнения этой таблицы.
  3. Использование запросов для масштабирования данных.
  4. Посмотрите на данные, чтобы убедиться, что они выглядят "правильными".
  5. Скопируйте данные в нужную цель (и).
  6. DROP таблица, используемая здесь.

Без циклов, без пакетной обработки, без чтения файлов, без массивов, без итераций.
Весь SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...