Посоветуйте плз книгу (с большим количеством качественных примеров), которая бы прояснила как делать дизайн nosql баз данных. Готовлюсь к техническому собеседованию, точно будут давать задачу на дизайн баз данных где уместен NoSQL, раньше этого не делал.
Заранее благодарю!
UPD: Так же подойдет качественная книга по конкретной NoSQL базе, где был бы не совсем оторванный от жизни пример дизайна схемы.
Здравствуйте, PitoWilson, Вы писали:
PW>Посоветуйте плз книгу (с большим количеством качественных примеров), которая бы прояснила как делать дизайн nosql баз данных. Готовлюсь к техническому собеседованию, точно будут давать задачу на дизайн баз данных где уместен NoSQL, раньше этого не делал.
PW>Заранее благодарю!
NoSQL базы все разные. Я не знаю как можно сравнивать mongo db и redis. Ищите литературу по конкретной СУБД.
Я так понимаю, готовишься к чему-то типа гугловского system design interview?
Вряд ли примеры под какую-то конкретную NoSQL тут сильно помогут.
Надо учиться думать исходя из сценариев использования, ожидаемой нагрузки и общего понимания того,
что дает NoSQL по сравнению с SQL:
-Отсутствие фиксированной схемы => простота изменения, возможность хранить слабоструктурированные данные
-Кластеризация из коробки => простое горизонтальное масштабирование
-Быстрый доступ по ключу => высокая скорость на таких сценариях
и т.д.
И чем приходится за это платить:
-Отсутствие транзакций => tradeoffs CAP-теоремы
-Сложность комплексных запросов (sort, group by, joins)
-Слабые средства разработки и неустроявшиеся best-practices
и т.д.
Т.е. я бы посоветовал:
1. Погуглить на тему SQL vs NOSQL, чтобы понимать плюсы и минусы каждого подхода в целом
2. Выбрать несколько NOSQL решений (MongoDB ,Redis, Cassandra, Neo4j, Hbase, CouchDb и т.п.), почитать для каких сценариев они разрабатывались, понять какие у них сильные/слабые стороны.
Здравствуйте, PitoWilson, Вы писали:
PW>Посоветуйте плз книгу (с большим количеством качественных примеров), которая бы прояснила как делать дизайн nosql баз данных. Готовлюсь к техническому собеседованию, точно будут давать задачу на дизайн баз данных где уместен NoSQL, раньше этого не делал.
PW>Заранее благодарю!
PW>UPD: Так же подойдет качественная книга по конкретной NoSQL базе, где был бы не совсем оторванный от жизни пример дизайна схемы.
У Фаулера книга есть: NoSQL: Новая методология разработки нереляционных баз данных но как уже написали не следует все примеры воспринимать как отче наш, даже для одного набора данных, структура бд может отличатся в зависимости от потребностей.
Здравствуйте, Qulac, Вы писали:
Q>У Фаулера книга есть: NoSQL: Новая методология разработки нереляционных баз данных но как уже написали не следует все примеры воспринимать как отче наш, даже для одного набора данных, структура бд может отличатся в зависимости от потребностей.
Здравствуйте, BlackEric, Вы писали:
BE>Здравствуйте, Qulac, Вы писали:
Q>>У Фаулера книга есть: NoSQL: Новая методология разработки нереляционных баз данных но как уже написали не следует все примеры воспринимать как отче наш, даже для одного набора данных, структура бд может отличатся в зависимости от потребностей.
BE>Оригинал еще 2012 года. Стоит ее читать?
А что тут сильно могло поменяться, принципы — они вечные.
Книга хорошая, однозначно стоит прочтения. И перевод на русский вполне достойный.
Вот только в ней именно про дизайн nosql почти ничего нет. Лишь при описании каждого типа (key-value, document-oriented, column-oriented, graph) БД вскользь описывается, для каких случаев они больше или меньше подходят.
Здравствуйте, koodeer, Вы писали:
K>Книга хорошая, однозначно стоит прочтения. И перевод на русский вполне достойный. K>Вот только в ней именно про дизайн nosql почти ничего нет. Лишь при описании каждого типа (key-value, document-oriented, column-oriented, graph) БД вскользь описывается, для каких случаев они больше или меньше подходят.
Здравствуйте, PitoWilson, Вы писали:
PW>Посоветуйте плз книгу (с большим количеством качественных примеров), которая бы прояснила как делать дизайн nosql баз данных. Готовлюсь к техническому собеседованию, точно будут давать задачу на дизайн баз данных где уместен NoSQL, раньше этого не делал.
PW>Заранее благодарю!
PW>UPD: Так же подойдет качественная книга по конкретной NoSQL базе, где был бы не совсем оторванный от жизни пример дизайна схемы.
Я бы посоветовал что-нибудь более фундаментальное, например:
Designing Data-Intensive applications, автор Martin Kleppmann
Есть русский перевод. Книжка очень хорошая, если получится осилить, будете на голову выше большинства интервьюеров
Есть просто cheat sheets для подготовки к интервью по системному дизайну
Например здесь неплохой: https://github.com/donnemartin/system-design-primer