Любые ссылки на хорошие инструменты Datamining в Java? - PullRequest
0 голосов
/ 27 марта 2011

Мы работаем над проектом стажировки для компании. Сам проект состоит из 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, которые, в свою очередь, применили бы некоторый алгоритм для ускорения поиска данных.

Пожалуйста, направьте нас к некоторым хорошим инструментам обработки данных. Любое руководство по оптимизации / переписыванию запросов также будет высоко оценено.

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Я не уверен на 100%, что это поможет в вашем случае, но взгляните на google-fine ...

0 голосов
/ 27 марта 2011

Поскольку у вас, похоже, много плохо структурированных данных, я не думаю, что интеллектуальный анализ данных поможет. Вы можете рассмотреть возможность использования Apache Hadoop для просмотра всех этих данных и выявления несоответствий. Вы можете использовать Amazon EC2 для простого и относительно дешевого способа запуска Hadoop. Вы также можете использовать Hadoop для переноса баз данных в лучшую схему, при условии, что вы можете создать ее.

РЕДАКТИРОВАТЬ: Я думаю, вы также можете делать некоторые вещи в MySQL. Используйте объяснение запроса , чтобы найти медленные части вашего запроса - я считаю, что LIKE обычно медленный, и, возможно, вы можете переформулировать запрос к чему-то более быстрому. Может быть, вы можете сначала отсортировать схему по отметке времени, а затем посмотреть поддиапазоны. Опять же, сначала вы должны иметь эффективный способ получить данные, а затем вы можете попытаться их добыть. Удачи.

...