Ответы пользователя по тегу NoSQL
  • LevelDB где взять?

    В Vcpkg есть портфайл для leveldb, однако обращаю внимание, что пишут что это биткоиновский форк от официального репозитория (судя по адресу откуда выкачивается репа, так оно и есть). Так что думайте подойдёт это вам или нет.
    Ответ написан
    1 комментарий
  • Где почитать про проектирование баз данных(nosql) с практическими примерами?

    используя nosql-базы

    Шаг 1. Убрать из лексикона термин "NoSQL". Хотя бы временно.
    как наиболее правильно хранить пользовательские данные, комментарии, лайки, медиа-данные.

    Шаг 2. Выписать или запомнить три важнейших свойства любой СУБД:
    • модель данных: что является элементом данных, что является коллекцией элементов, чего в СУБД должно быть постоянное количество, есть ли схема и в каком виде, как обеспечиваются связи между элементами данных на уровне модели;
      Пример: MongoDB, элемент данных - документ, описывается как JSON-документ с некоторыми специфичными для Монги расширениями. Коллекция элементов - коллекция документов. Количество коллекций более-менее постоянное, количество документов растёт.
    • ограничения и гарантии физической реализации модели данных - какие операции какую сложность имеют, какую цену (в плане пространства на устройстве хранения и процессорного времени) имеет каждая используемая структура данных или алгоритм; какие параметры как будут расти во время эксплуатации БД.
      Пример: графовые БД, имеющие "настоящий" графовый движок, т.е. такой, который хранит физические ссылки из одной вершины на другую, гарантируют константное время выборки связанных вершин. В связи с этим их выгодно использовать для сильносвязанных нечасто изменяющихся данных (графы друзей в социалочках и т.п.)
    • инструментарий логического и физического уровня: по сути это предыдущие пункты более подробно - какие структуры данных доступны, в частности какие есть индексы, какие способы выборки/фильтрации/сортировки присутствуют; для чего гарантируется транзакционность (особо важный вопрос); где находится база в CAP диаграмме; какие есть средства логического уровня, например представления (view);
    Вспомните любую социальную сеть, где над каждым постом есть куча комментариев, лайков, репостов

    Шаг 3. Научиться ставить задачу с точки зрения обрабатываемых данных:
    • какие данные будут иметь постоянный объем или расти медленно, а какие - быстро и постоянно;
    • какие будут запросы к данным, что будет выбираться как есть, а что нужно будет дополнительно агрегировать;
    • какие запросы будут плановые, а какие придётся выполнять внепланово;
    • какой нужен уровень доступности, какова ценность хранящихся данных и цена простоя.

    Шаг 4. Ознакамливаться с СУБД здесь: nosql-database.org и выбирать нужную с учётом:
    • вашей задачи;
    • порога вхождения;
    • наличия доступных специалистов.
    Ответ написан
    2 комментария
  • В каких случаях лучше использовать NoSQL, а в каких SQL?

    Вот вам развёрнутый ответ.
    Пользовался NoSQL и SQL

    Не могли вы пользоваться NoSQL, вы пользовались какой-то конкретной моделью данных и конкретной СУБД.
    какую БД лучше использовать

    Ни NoSQL ни SQL это ни БД, ни СУБД.
    Был бы признателен за ссылку на статью или развёрнутый ответ, чтобы в будущем я мог при проектировании проекта сразу определится с выбором базы данных.

    В формате "ответ на Тостере" невозможно сравнить существующие сейчас модели данных и уж тем более дать советы по выбору СУБД. Начните с другого: оставьте историко-маркетологический термин "NoSQL" в стороне и начните с рассмотрения реальных моделей данных и их популярных реализаций:
    - колоночная СУБД;
    - хранилище "ключ-значение";
    - документно-ориентированная БД;
    - графовая БД;
    Ответ написан
    2 комментария
  • Какая наиболее быстрая документоориентированная БД?

    слабосвязанные данные, например новости - краткое описание новостей точнее

    В общем, если нужны сложные выборки и несколько разных индексов - берите Монгу, если выборки только по одному ключу - посмотрите key-value: если вам для основного хранения (т.е. НЕ для кэша), то попробуйте Riak, если для кэширования чего-то, что уже и так есть в какой-то другой (основной) БД, то неплохо подойдет Redis.
    Ответ написан
    4 комментария
  • Используете ли вы реляционные и документоориентированные субд в одном проекте?

    Да, применяем. Все данные, у которых есть нормальная схема - в постгресе, данные, для которых нет общей схемы (в том числе пользовательские атрибуты к сущностям предметной области - различные заметки и комметарии, свой набор для каждого пользователя) - в монге.
    Ответ написан
    4 комментария