3 марта 2009, 01:08 (5743 дня назад, №8759)И снова о нереляционных СУБД
В контексте обсуждения гугловской нереляционной базы
BigTable на одном из форумов была упомянута статья
"One Size Fits All": An Idea Whose Time Has Come and Gone (
перевод). Автор статьи разделяет обработку данных на outbound - обработка данных после их сохранения (обычные реляционные СУБД) и inbound, где данные обрабатываются до их помещения в базу. В качестве примера применения вторых - потоковая обработка (с возможным сохранением) финансовой информации, а также информации с многочисленных RFID'ов/датчиков в реальном времени с помощью StreamBase.
Если необходимы агрегатные запросы (SUM, MAXи прочее), то, учитывая, что у потока нет границ, рассматривается некое временн
ое окно, в рамках которого данные считаются конечными.
В задачах именно хранения предлагается использовать базы ориентированные на хранение столбцов (columns) , а не строк (rows). Грубо говоря, это усложняет (и замедляет) создание записи, но упрощает и ускоряет чтение/выполнение запросов. По идее, это также позволяет легко распределять базу между многими узлами, т.к. одна машина может обрабатывать запрос по одному столбцу, другая - по другому. В случае же хранения данных по строкам, как в RDBMS, для выполнения любого запроса нужен будет доступ ко всем строкам.
По-видимому, нас через некоторое время ждёт что-то сильно новое в области стандартов СУБД.
Реляционные базы больше не устраивают своими характеристиками, а что-то типа Bigtable слишком усложняет (по сравнению с RDBMS) решение наиболее распространенных задач.