В начале 70-х годов Майкл Стоунбрекер, научный сотрудник Калифорнийского университета в Беркли, принимал самое деятельное участие в создании технологий Ingres и Postgres, которые стали основой многих ведущих современных систем управления базами данных: Microsoft SQL Server, Sybase Adaptive Server Enterprise, Ingres, IBM Informix и целого ряда других программных продуктов.
Однако сейчас он утверждает, что реляционные системы управления базами данных (РСУБД), устарели и их следует признать унаследованной технологией.
Недавно в своем блоге, получившем название Database Column, Стоунбрекер заявил, что реляционные базы данных серьезно отстают по производительности от аналогичных систем новой волны, в которых таблицы базы данных, образно говоря, повернуты на 90°.
Базы данных, ориентированные на столбцы (подобные тем, что были разработаны компанией Vertica System, основателем и директором по технологиям которой является сам Стоунбрекер), хранят данные «вертикально», в столбцах таблиц, а не в последовательно расположенных строках.
За счет размещения содержимого столбцов вместе, в базах данных, организованных по столбцам, значительно оптимизировано время чтения диска. При выполнении крупномасштабных вычислений, типичных, например, для работы с хранилищами данных, выигрыш может еще больше вырасти.
«’Столбцовые’ базы данных со временем займут рынок хранилищ данных, полностью вытеснив ‘строковую’ организацию хранения, — пишет Стоунбрекер. — Поскольку многие пользователи хранилищ данных испытывают серьезные проблемы при работе (не могут загрузить данные в доступное окно, не могут поддерживать специализированные запросы, не могут добиться более высокой производительности без крупномасштабной модернизации), я предполагаю, что такой переход на столбцовые системы хранения произойдет достаточно быстро».
Впрочем, ориентированные на работу со столбцами системы управления базами данных — вещь далеко не новая. Sybase вот уже много лет с успехом продвигает свои столбцовые СУБД IQ как высокопроизводительное решение для бизнес-аналитики.
С недавнего времени BigTable — база данных, которую компания Google создала для обработки некоторых своих приложений, также хранит данные по столбцам.
Но такие решения пока находят лишь узкоспециализированное применение. Для сравнения, ведущие компании на рынке СУБД, годовой оборот которого оценивается в 15 млрд. долл., по-прежнему предлагают системы, использующие таблицы, хранение которых организовано по строкам.
Организация данных по строкам имеет свои преимущества. Записать данные на диск по строкам формате быстрее, чем по столбцам. Это главное для приложений баз данных с большим числом транзакций, в которых данные постоянно приходится считывать из баз данных и записывать в них, хотя это не столь важно для хранилищ данных, где информация, как правило, один раз записывается, а потом считывается многократно.
Стоунбрекер утверждает, что его компания предлагает возможности, позволяющие существенно увеличить производительность, в том числе очень эффективное сжатие данных и механизм обработки запросов, который работает со сжатыми данными.
В результате, по словам Стоунбрекера, Vertica превосходит все строковые системы хранения на планете, как правило, в 50 раз.
«Ближайшие конкуренты относятся к категории столбцовых систем хранения, но и их Vertica, как правило, превосходит раз в десять», — пишет он в блоге.
«В любой крупной прикладной области, какую я могу себе представить, можно создать ядро SQL с компонентами, ориентированными на конкретный вертикальный рынок, и это ядро будет превосходить универсальные ядра раз в 50 или около того», — заметил он.