Классика баз данных - статьи

       

Хранилища данных


Обсуждавшиеся в разд. 2 архитектурные различия между системами баз данных для поддержки OLTP и хранилищ данных являются только верхушкой айсберга, и со временем выявятся и другие различия. Здесь мы сосредоточимся на крупнейшем архитектурном различии, которое состоит в хранении данных по столбцам, а не по строкам.

Все основные поставщики СУБД реализуют системы хранения, ориентированные на записи, где атрибуты каждой записи располагаются в области хранения непрерывно. При использовании этой архитектуры «хранения по строкам» для выталкивания на диск всех атрибутов одной строки требуется одна запись на диск. Следовательно, такая система является «оптимизированной в расчете на запись», поскольку легко достигается высокая производительность при записях строк. Очевидно, что системы, оптимизированные в расчете на запись, особенно эффективны при поддержке OLTP-приложений, и это является основной причиной использования данной архитектуры в большинстве коммерческих СУБД.

В отличие от этого, системы хранилищ данных нуждаются в «оптимизации в расчете на чтение», поскольку их основная рабочая нагрузка состоит из непредвиденных запросов, затрагивающих большие объемы исторических данных. В таких системах существенно более эффективна модель «хранения по столбцам», которая предполагает непрерывное хранение значений одного атрибута во всех строках (эффективность этой модели демонстрируют системы Sybase IQ [6], Addamark [1] и KDB [2]).

При использовании архитектуры с хранением данных по столбцам СУБД приходится считывать только атрибуты, требуемые для обработки заданного запроса, и она может избежать переноса в основную память каких-либо ненужных атрибутов. С учетом все большей распространенности строк с сотнями атрибутов (многие из которых содержат неопределенные значения) этот подход обеспечивает существенный выигрыш в производительности для рабочих нагрузок хранилищ данных, в которых типичные запросы включают агрегаты, вычисляемые на небольшом числе атрибутов крупных наборов данных. Первый автор этой статьи участвует в проекте, посвященном исследованию возможностей повышения производительности систем баз данных при использовании хранения данных по столбцам.



Содержание  Назад  Вперед