to sql or not to sql
Feb. 7th, 2013 01:23 pmК вопросу об NoSQL срачу у
plumqqz.
Читал намедни про Google AppEngine Datastore. Что оно из себя представляет:
Внизу у него Bigtable. То есть, технология, позволяющая эффективно масштабироваться до диких масштабов в хранении пар "ключ-значение" и делать всякую продвинутую репликацию. На самом деле там к этим парам присобачены еще и другие полезные фичи сбоку, но подробности про эту часть могут быть Секретными, поэтому я их рассказывать не буду.
Поверх него сидит Megastore. Оно изображает уже более традиционные реляционные таблицы и индексы, плюс базовую транзакционность и более продвинутую репликацию.
Поверх него сидит уже собственно Datastore. Оно изображает уже вполне трацидионные реляционные таблицы и индексы, более традиционную транзакционность, и даже диалект SQL. Но не только SQL, основной интерфейс для приложений там в стиле Django, который по функциональности аналогичен SQLю и является гораздо более удобным для программирования. А SQL как таковой живет поверх него, более для ручного ковыряния. Довольно забавно, что реляционные таблицы присутствуют на двух уровнях - вся прикладная схема дейтастора отображается в одну таблицу мегастора.
Мораль заключается в том, что жесткой границы sql-nosql нет. Она очень размыта.
Второй занимательный момент заключается в том, что непонятно, почему нельзя было запихнуть бигтейбл как механизм хранения под какую-то более традиционную реляционную базу типа MySQL. Возможно оно просто так исторически выросло, и изначально никто не ожидал что оно дорастет до SQLа. Или возможно дело в вопросах лицензирования.
Читал намедни про Google AppEngine Datastore. Что оно из себя представляет:
Внизу у него Bigtable. То есть, технология, позволяющая эффективно масштабироваться до диких масштабов в хранении пар "ключ-значение" и делать всякую продвинутую репликацию. На самом деле там к этим парам присобачены еще и другие полезные фичи сбоку, но подробности про эту часть могут быть Секретными, поэтому я их рассказывать не буду.
Поверх него сидит Megastore. Оно изображает уже более традиционные реляционные таблицы и индексы, плюс базовую транзакционность и более продвинутую репликацию.
Поверх него сидит уже собственно Datastore. Оно изображает уже вполне трацидионные реляционные таблицы и индексы, более традиционную транзакционность, и даже диалект SQL. Но не только SQL, основной интерфейс для приложений там в стиле Django, который по функциональности аналогичен SQLю и является гораздо более удобным для программирования. А SQL как таковой живет поверх него, более для ручного ковыряния. Довольно забавно, что реляционные таблицы присутствуют на двух уровнях - вся прикладная схема дейтастора отображается в одну таблицу мегастора.
Мораль заключается в том, что жесткой границы sql-nosql нет. Она очень размыта.
Второй занимательный момент заключается в том, что непонятно, почему нельзя было запихнуть бигтейбл как механизм хранения под какую-то более традиционную реляционную базу типа MySQL. Возможно оно просто так исторически выросло, и изначально никто не ожидал что оно дорастет до SQLа. Или возможно дело в вопросах лицензирования.