Мы работаем над проектом стажировки для компании. Сам проект состоит из Datamining. Допустим, структура базы данных, с которой нам приходится работать, огромна (в гигабайтах).
Грустно говорить, что сама БД очень плохо структурирована с несовместимыми значениями и, самое главное, без первичных или внешних ключей . Таким образом, в наших простых модулях Servlet для извлечения и отображения противоречивых данных выполнение запросов и их отображение в сервлете занимает вечность.
Как программисты n00b, мы не знаем о Join и подобных вещах в БД. Также мы используем MySQL в качестве нашего сервера БД. БД состоит из данных в реальном времени с вышек телекоммуникаций.
Чтобы найти пример несоответствия в табличных значениях, мы используем комбинацию нескольких запросов, вывод одного запроса, служащий в качестве ввода для другого запроса, например:
"SELECT distinct(tow_id) FROM 'tower_data' WHERE TIME_STAMP LIKE ? ";
// запрос для определения идентификатора башни.
"SELECT time_stamp FROM tower_data WHERE 'TIME_STAMP' LIKE ? AND 'PARAM_CODE' = ? AND 'TOW_ID'=? GROUP BY time_stamp HAVING count( * ) >1";
// запрос для поиска меток времени с дублирующимися данными.
и т. Д.
Также в базе данных около 10 таблиц. Нам нужно объединить 2-3 таблицы, чтобы получить значения для пользовательских запросов.
После нахождения всех противоречивых значений для нескольких факторов мы должны выполнить очистку данных, удаление шума, прогнозирование данных и такие задачи на следующем этапе.
Итак, мы подумали, что можем применить некоторые инструменты Java Data Mining, которые, в свою очередь, применили бы некоторый алгоритм для ускорения поиска данных.
Пожалуйста, направьте нас к некоторым хорошим инструментам обработки данных. Любое руководство по оптимизации / переписыванию запросов также будет высоко оценено.