Как лучше хранить данные для последующей обработки?

Начал играться с анализом языковых данных и такой вопрос возник - как обычно хранят данные перед обработкой? Есть, к примеру, сотня гигов текстовых файлов, данные в которых разделены табами. И я пока не знаю, что именно мне в них понадобится. Можно их распарсить и залить в постгрес или монгу, а в дальнейшем брать оттуда огромнейшие выборки (использовать курсор?) и что-то с ними делать. Или оставить как есть, а как что понадобится - парсить каким-нибудь хадупом или чем-то вроде того.

В общем - поделитесь кто знает, как рабочий процесс происходит в этой области. Может, есть статьи по теме хорошие?
  • Вопрос задан
  • 2911 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Gabriel_vs
I'm a Scientist in Data Analysis / programmar.
Хранение данных в BigData порой граничит с искусством. В целом, тут как и везде -- всё зависит от задачи, которая ставится. В любом случае, работа/анализ с текстовыми данными неминуемо приведет вас к Инвертируемому индексу (причем к нескольким).

Если пока вкратце, то вам надо проиндексировать содержимое "сырых данных" (файлы, веб, БД, etc). Пока проиндексировать как есть, без изменения самих данных. Если это реально BigData, то надо подумать о распределенном индексе, понимать стоит ли (а если да, то как) реплицировать индекс (но это уже вопрос производительности).

Так же, для работы и анализа вам обязательно понадобится такой же по структуре индекс, с той лишь разницей, что данные, которые в нем будут храниться, необходимо нормализовать. Как минимум к токенам (словам) применить алгоритм стемминга (или лемматизация, если хотите получить лучшее качество).

Опять же, в зависимости от задач (направления анализа) вам надо подумать о тезаурусах, для решения синонимии терминов в вашем индексе. Но, это я уже пошел в сторону более глубокого анализа данных. Там много что вам понадобится.

Если бы был пример конкретной задачи, то я бы по конкретнее написал о инструментах, подходах, методах.

Немого ссылок:
1. По информационному поиску / анализу данных читайте вот это:
Введение в информационный поиск, Маннинг
Обработка неструктурированных текстов. Поиск, орга...
2. Импорт / фреймворки / библиотеки индексирования и поиска:
Apach Solr
Apach Tika
3. Инвертированный индекс

PS: всё же хотелось бы узнать о конкретной задачи, тогда было бы больше конкретики.

UPD: в ряде случаев в BigData надо манипулировать графовой структурой данных. Соответственно, посмотрите в сторону соответствующих СУБД, например neo4j. Главное требования к СУБД в BigData -- минимализм функционала, иначе на больших данных работать будет всё крайне медленно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 90 000 руб.
Сибур Нижний Новгород
от 100 000 руб.
До 180 000 руб.