Ответы пользователя по тегу Big data
  • Какую key/value базу данных выбрать для словаря?

    leventov
    @leventov
    При описании задачи на выбор базы данных (в общем случае), key-value в особенности, что конкретно хранится - _последний_ по значимости фактор. А факторы надо учитывать следующие:

    1. Уровень распределенности/параллельности: вам нужна распределённая база, или все на одном сервере? В рамках одного (или каждого) сервера, нужен конкурентный доступ, или все в один поток? Нужен ли одновременный доступ из разных процессов?
    2. Какие _гарантии_ вы хотите от базы. Durable, persistent или volatile (in-memory)? Какие гарантии нужны по изоляции транзакций? Нужны ли транзакции с обновлением нескольких ключей?
    3. Подходит ли вам лицензия на базу? Если база проприетарная, готовы ли вы платить за неё, и сколько?
    4. Зрелость технологии, насколько стабильна последняя ветка.
    5. Наличие мониторингов, интеграций с аналитическими и SQl-like надстройками типа presto, и т. д.
    6. Популярность базы, размер сообщества, много ли ответов на Stack overflow, и т. д.

    И только теперь

    7. Скорость/эффективность по памяти, на что может (и то, не обязательно влиять) конкретный тип ключей и значений.

    Пункты могут меняться по приоритету в зависимости от задачи.

    Итог: по вашей вводной нельзя _даже приблизительно_ что-либо посоветовать.
    Ответ написан
    6 комментариев
  • Помогите с выбором программы для оценки связи нодов

    leventov
    @leventov
    Похоже, «созданием кластеров» вы называете укладку графа.

    Для начала определитесь, что у вас все-таки есть: координаты вершин (зачем тогда укладка, ее цель — как раз определить координаты для вершин), попарные расстояния (между всеми вершинами, или только между связанными), или только связи.

    В основе любой укладки лежит бинарная метрика для вершин. Простейшая метрика: 1 — есть связь, 0 — нет связи. В зависимости от имеющейся информации и целей можно изобретать более сложные метрики. Если у вас есть попарные расстояния между вершинами — имеет смысл применить их в метрике.

    Самые распространенные методы укладки: физическое (пседвофизическое) моделирование. Ребра — пружинки. См. en.wikipedia.org/wiki/Force-directed_graph_drawing. Конкретных алгоритмов — не меньше десятка, реализаций — еще больше, от систем перечисленных на странице на Википедии по ссылке до библиотек на любых языках.

    Лично я использовал программу Gephi, библиотеку Sigma.js (для укладки графа в браузере) и реализовывал алгоритмы сам. Gephi мне показалась неудобной. Не помню, есть ли там 3D. Впечатление, что готовые программы в этой области имеют тенденцию быть заточенными под какой-то конкретный способ использования, поэтому если у вас не какой-то простейший случай, рекомендую больше смотреть в сторону библиотек (это не относится к Sigma, там укладка тоже почти не настраивается).

    По поводу соцсетей:
    2D граф друзей Вконтакте на WebGL: habrahabr.ru/post/144758/
    ВК-приложение для построения 2D графа друзей: vk.com/app2353824_14882053
    2D-карта друзей (приложение в ФБ: apps.facebook.com/challenger_meurs)
    Ответ написан
    3 комментария
  • Организация Map Reduce?

    leventov
    @leventov
    Hadoop заточен под большие кластера из средних и слабых машин. Если у вас несколько мощных серверов, то с Хадупом вас ожидает много бессмысленных телодвижений (кода), несколько неприятных ограничений и, возможно, 1-2 лишних копирования данных на задачу. Насчет Akka и других решений ничего не знаю, но по-моему в данном случае Hadoop подходит не очень хорошо.
    Ответ написан
    Комментировать