Что такое NoSQ

1 Октября 2014
Само данное название может вводить в некое заблуждение, как будто бы здесь речь идет о какой-то технологии, в которой заложен некий отказ от языка SQL 

Данный термин означает не какую-то конкретную технологию, а подходы к созданию баз данных, которые отличаются от реляционных баз данных. Вообще говоря, более корректным было бы назвать это «NoRDBMS» или как-то так, но название «NoSQL» уже прочно закрепилось.

Основная идея NoSQL заключается в том, что при больших (очень больших!) объемах данных очень трудно выдерживать известный всем админам баз данных принцип ACID – атомарность, согласованность, изолированность, надежность в условиях необходимости обеспечить высокую доступность и легкую масштабируемость. В этих условиях предлагается «слегка» пожертвовать атомарностью и согласованностью.

На смену ACID приходит подход BASE – базовая доступность (basic availability), гибкость (softness), конечная согласованность (eventual consistency). Это означает, что каждый запрос гарантировано завершается (может, и безуспешно), состояние системы может меняться со временем даже без появления в системе новых данных, и то, что данные «в конце концов» будут согласованы, хотя когда-то может наблюдаться и рассогласование.

Изначально идея нереляционных баз не является какой-то новой, строго говоря, еще на первых компьютерах хранилища данных были нереляционными. Но идея получила новую жизнь во многом благодаря компании Google, которая строила свои системы и приложения с чрезвычайно высокими объемами и нагрузкой – начиная, от самого поиска, и заканчивая – продуктами типа gmail. Представляете какой объем обработки данных в этих системах? Когда компания Google рассказала о созданных ей технологиях, это создало всплеск интереса к теме big data, и привело в том числе и к созданию технологии Hadoop, о которой мы уже рассказывали.

Со временем и другие гиганты подключились к этому тренду. Известно, в частности, что Amazon использует собственную разработку Amazon DynamoDB, а также различные решения, построенные по принципу NoSQL используют в других компаниях мирового уровня – Facebook, Netflix, IBM.

Их опыт показал, что как бы ни было желанно правило ACID, его невозможно обеспечить в системах с многомиллионной аудиторией. Поэтому, если вы проектируете решение, рассчитанное на нагрузку уровня Facebook или Amazon, вам придется использовать принципы NoSQL и соотвествующие продукты.
Получить консультацию специалиста