Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 08:33
Оценка:
Привет,

Начальник хочет поэкспериментировать с NoSQL на одном из проектов. Не столько для пользы проекта, а чтобы получить опыт для будущих решений, так как с RDBMS уже много чего накушались.
Обзорно читал про NoSQL, но никогда вплотную не использовал. Потратил ещё пару дней на ознакомление, но каждый раз, когда начинаю читать про конкретное решение, возникает ощущение что это не то что нужно.
Ткните, пальцем в алгоритм выбора.

Проект уже в каком-то виде использует свой примитивный NoSQL. Пользователи загружают свои данные в систему. Система строит отчет и хранить его в виде сериализованного объекта в файле в облаке.
Новая задача требует собирать некоторые данные пользователей и хранить их другим объектом. Вроде как обычное Key-Value выходит.
Сервис публичный. Есть риск что данных станет очень много. Поэтому пихать много всего в MySQL не охота.
Транзакции особо не нужны. Нужно хранить достаточно жирные объекты до 10Мб, а в будущем может и больше.

Для каких задач можно получить преимущества от Graph или Column oriented хранилищ?
Правильно ли я понимаю, что такие решения как HBase являются полностью in-memory решениями? То есть, их вообще нет смысла использовать при отсутствии кластера в десяток серверов?
Что вообще почитать обзорного?

Спасибо
Re: Выбор NoSQL
От: Alex.Che  
Дата: 11.05.16 08:45
Оценка:
> Начальник хочет поэкспериментировать с NoSQL на одном из проектов.

научная организация?
Posted via RSDN NNTP Server 2.1 beta
Re: Выбор NoSQL
От: Дельгядо Филипп Россия  
Дата: 11.05.16 08:53
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

А какие RDBMS использовали?
Сколько данных планируется (1e6, 1e9, 1e12)?
Какой общий объем будет — гигабайты, терабайты?
Какие требования к запросам — только по ключу или сложнее?
Какие требования к скорости чтения/записи?
Какие требования к надежности (можно потерять хоть все, можно потерять операции за несколько секунд и т п.)
Какие требования к HA — какой простой допустим для технических операций, какой в случае проблем с железом?

Ну вот от этого и нужно отталкиваться )

B>Привет,


B> Начальник хочет поэкспериментировать с NoSQL на одном из проектов. Не столько для пользы проекта, а чтобы получить опыт для будущих решений, так как с RDBMS уже много чего накушались.


B>Новая задача требует собирать некоторые данные пользователей и хранить их другим объектом. Вроде как обычное Key-Value выходит.

Обычное key-value — это монга. Вроде бы последний год уже не теряет данные просто так. Или postgresql с колонками типа json (надёжнее, быстрее, сложнее настраивать).
Re: Выбор NoSQL
От: Иль  
Дата: 11.05.16 08:58
Оценка: +2
Здравствуйте, Blazkowicz, Вы писали:

B> так как с RDBMS уже много чего накушались.

B> ...
B> Поэтому пихать много всего в MySQL не охота.

Есть ощущение что вы "накушались" с MySQL, а не с RDBMS. Мы тоже накушались MySQL по самое не балуйся. Но переход на настоящую RDBMS и правильную работу с ней решает вопрос.

B> ... каждый раз, когда начинаю читать про конкретное решение, возникает ощущение что это не то что нужно.


Это нормально. Если вовремя не остановиться, то (по опыту "успешных" экспериментаторов) есть риск накушаться NoSQL так, что MySQL будет вспоминаться с теплотой.
Re[2]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:03
Оценка:
Здравствуйте, Иль, Вы писали:

Иль>Есть ощущение что вы "накушались" с MySQL, а не с RDBMS. Мы тоже накушались MySQL по самое не балуйся. Но переход на настоящую RDBMS и правильную работу с ней решает вопрос.

А так же с Oracle, SQL Server и, особенно, Firebird.

Иль>Это нормально. Если вовремя не остановиться, то (по опыту "успешных" экспериментаторов) есть риск накушаться NoSQL так, что MySQL будет вспоминаться с теплотой.

Это и моя позиция тоже. Но начальник хочет. А я не против набраться опыта на этом поприще.
Re: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:05
Оценка:
Совсем забыл ещё один важный вопрос. Есть ли у NoSQL какие-либо преимущества в maintenance? Ну, там бэкапы. Расширение пространства и т.п.
Re[3]: Выбор NoSQL
От: Alex.Che  
Дата: 11.05.16 09:06
Оценка:
> А так же с Oracle, SQL Server и, особенно, Firebird.

Шо-то не видно ваших "стонов" в профильных форумах...
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:06
Оценка:
Здравствуйте, Alex.Che, Вы писали:

>> Начальник хочет поэкспериментировать с NoSQL на одном из проектов.

AC>научная организация?
Нет. Небольшой, относительно успешный стартап.
Re: Выбор NoSQL
От: Miroff Россия  
Дата: 11.05.16 09:08
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Проект уже в каком-то виде использует свой примитивный NoSQL. Пользователи загружают свои данные в систему. Система строит отчет и хранить его в виде сериализованного объекта в файле в облаке.

B>Новая задача требует собирать некоторые данные пользователей и хранить их другим объектом. Вроде как обычное Key-Value выходит.
B>Сервис публичный. Есть риск что данных станет очень много. Поэтому пихать много всего в MySQL не охота.
B>Транзакции особо не нужны. Нужно хранить достаточно жирные объекты до 10Мб, а в будущем может и больше.

MongoDB + GridFS

B>Для каких задач можно получить преимущества от Graph или Column oriented хранилищ?


Аналитика

B>Правильно ли я понимаю, что такие решения как HBase являются полностью in-memory решениями? То есть, их вообще нет смысла использовать при отсутствии кластера в десяток серверов?


Все NoSQL решения нет смысла использовать на одной машине
Re[2]: Выбор NoSQL
От: Alex.Che  
Дата: 11.05.16 09:11
Оценка:
B>> Для каких задач можно получить преимущества от Graph или Column oriented хранилищ?
> Аналитика

Аналитика чего именно?
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:20
Оценка:
Здравствуйте, Дельгядо Филипп, Вы писали:

ДФ>А какие RDBMS использовали?

Oracle, MySQL, SQL Server, Firebird. Сейчас есть тенденция к PostgreSQL для новых проектов.

ДФ>Сколько данных планируется (1e6, 1e9, 1e12)?

В штуках?

ДФ>Какой общий объем будет — гигабайты, терабайты?

Грубая и немного оптимистичная оценка говорит, что терабайты.

ДФ>Какие требования к запросам — только по ключу или сложнее?

Пользовательские по ключу. Возможно, будет некоторая внутренняя статистика, которая потребует сканировать все объекты с некоторой периодичностью, чтобы собрать данные. Но если она займет день, то это вполне приемлемо.

ДФ>Какие требования к скорости чтения/записи?

Строгих нет.

ДФ>Какие требования к надежности (можно потерять хоть все, можно потерять операции за несколько секунд и т п.)

Немного строже чем "можно потерять хоть все". Сервис включает платную подписку, такие данные терять можно, но в разумных пределах.

ДФ>Какие требования к HA — какой простой допустим для технических операций, какой в случае проблем с железом?

День, полагаю, допустим.

ДФ>Ну вот от этого и нужно отталкиваться )

Ты меня ещё больше запутал.

B>>Новая задача требует собирать некоторые данные пользователей и хранить их другим объектом. Вроде как обычное Key-Value выходит.

ДФ>Обычное key-value — это монга. Вроде бы последний год уже не теряет данные просто так. Или postgresql с колонками типа json (надёжнее, быстрее, сложнее настраивать).
MongoDB смущает своим JSON-ом. Если у меня сериализованный бинарник 10Мб, то в JSON он станет только больше.
Re[4]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:21
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Шо-то не видно ваших "стонов" в профильных форумах...

Дык это не я. Это шеф. Я двумя руками за RDBMS.
Re[5]: Выбор NoSQL
От: Alex.Che  
Дата: 11.05.16 09:30
Оценка:
> Дык это не я. Это шеф.

надо вашего шефа с продавцами каши свести...
(InterSystems)
Posted via RSDN NNTP Server 2.1 beta
Re: Выбор NoSQL
От: hrensgory Россия  
Дата: 11.05.16 09:31
Оценка: 7 (1)
On 11.05.2016 11:33, Blazkowicz wrote:

> Начальник хочет поэкспериментировать с NoSQL на одном из проектов. Не

> столько для пользы проекта, а чтобы получить опыт для будущих решений,
> так как с RDBMS уже много чего накушались.
C NoSQL выбор блюд для кушанья не меньше )

> Обзорно читал про NoSQL, но никогда вплотную не использовал. Потратил

> ещё пару дней на ознакомление, но каждый раз, когда начинаю читать про
> конкретное решение, возникает ощущение что это не то что нужно.
> Ткните, пальцем в алгоритм выбора.
Key-value store: Redis
Document-oriented: MongoDB
Column-oriented: Cassandra

> Проект уже в каком-то виде использует свой примитивный NoSQL.

> Пользователи загружают свои данные в систему. Система строит отчет и
> хранить его в виде сериализованного объекта в файле в облаке.
> Новая задача требует собирать некоторые данные пользователей и хранить
> их другим объектом. Вроде как обычное Key-Value выходит.
> Сервис публичный. Есть риск что данных станет очень много. Поэтому
> пихать много всего в MySQL не охота.
На последнем JPoint Сбертех много чего рассказывал про свой выбор, как я
понял из их слов — это допиливаемая под их нужды версия Apache Ignite.
Вот тут можно посмотреть подробнее:
https://www.youtube.com/watch?v=3xJZ9_LOEhw

> Транзакции особо не нужны. Нужно хранить достаточно жирные объекты до

> 10Мб, а в будущем может и больше.
Хранение массивных блобов — это не вполне конечно типичное применение
KV. А почему их просто в файлах не хранить в какой-нибудь GlusterFS?

> Для каких задач можно получить преимущества от Graph или Column oriented

> хранилищ?
От Graph — для хранения всяких там графов связей и т.п. Где выгоды от
использования Column — я честно сказать сам так и не понял, может кто
прояснит. Знаю что его активно используют в "Одноклассниках" и они
реально контрибутят в неё.

> Правильно ли я понимаю, что такие решения как HBase являются полностью

> in-memory решениями? То есть, их вообще нет смысла использовать при
> отсутствии кластера в десяток серверов?
HBase — это, если я ничего не путаю, какая-то запчасть от хадупа,
который вообще вряд ли пригоден для вышеизложенной задачи.

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Выбор NoSQL
От: Miroff Россия  
Дата: 11.05.16 09:32
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Аналитика чего именно?


Больших данных, очевидно же.
Re[6]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:36
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>надо вашего шефа с продавцами каши свести...

AC>(InterSystems)
Мы ещё не на столько успешный стартап.
Re[2]: Выбор NoSQL
От: Blazkowicz Россия  
Дата: 11.05.16 09:43
Оценка:
Здравствуйте, hrensgory, Вы писали:

H>Хранение массивных блобов — это не вполне конечно типичное применение

H>KV. А почему их просто в файлах не хранить в какой-нибудь GlusterFS?
Ну, я о том же. Сейчас примерно такая реализация и существует.
Смысл перехода на другое хранилище в том, что это не тупо блобы. Это вполне себе конкретные одинаковые структуры данных.
Иногда возникает желание что-то типовое из них всех вытащить и посчитать. Можно долго.

H>HBase — это, если я ничего не путаю, какая-то запчасть от хадупа,

H>который вообще вряд ли пригоден для вышеизложенной задачи.
Мне просто шеф мозги проел BigTable. HBase — ближайший аналог. Но, судя по всему, вообще не под эту задачу.
Re[3]: Выбор NoSQL
От: Иль  
Дата: 11.05.16 10:15
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, Иль, Вы писали:


Иль>>Есть ощущение что вы "накушались" с MySQL, а не с RDBMS. Мы тоже накушались MySQL по самое не балуйся. Но переход на настоящую RDBMS и правильную работу с ней решает вопрос.

B>А так же с Oracle, SQL Server и, особенно, Firebird.

Firebird — это, пожалуй, по личному опыту ещё печальнее чем MySQL. Вспоминается что там для изменения структуры данных надо переходить в однопользовательский режим. Хотя может быть уже и изменилось что-то...

Плохо, что в списке нет PostgreSQL. Он тоже не без внезапностей, конечно, но в последнее время стремительно развивается. В частности уже две версии работающее сочетание JSON + GIST вполне себе напоминает NoSQL.
Отредактировано 11.05.2016 10:16 Иль . Предыдущая версия .
Re[4]: Выбор NoSQL
От: Alex.Che  
Дата: 11.05.16 10:26
Оценка:
> Вспоминается что там для изменения структуры данных надо переходить в однопользовательский режим. Хотя может быть уже и изменилось что-то...

монопольный режим используют только неучи, которые не умеют правильно выставить уровень изоляции транзакции для модификации метаданных.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Выбор NoSQL
От: hrensgory Россия  
Дата: 11.05.16 10:34
Оценка: 7 (1)
On 11.05.2016 12:43, Blazkowicz wrote:
> H>Хранение массивных блобов — это не вполне конечно типичное применение
> H>KV. А почему их просто в файлах не хранить в какой-нибудь GlusterFS?
> Ну, я о том же. Сейчас примерно такая реализация и существует.
> Смысл перехода на другое хранилище в том, что это не тупо блобы. Это
> вполне себе конкретные одинаковые структуры данных.
> Иногда возникает желание что-то типовое из них всех вытащить и
> посчитать. Можно долго.

Я бы для этой задачи подумал в сторону реализации Spark RRD
(http://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds)
из текущего хранилища.

--
WBR,
Serge.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.