postgresql

PostgreSQL получила движок, ориентированный на столбцы

Для анализа больших объемов данных лучше подходит концепция хранения данных не в строках, а в столбцах: более эффективно расходуется дисковое место, и быстрее отрабатывают алгоритмы. Разработанное компанией Citusdata расширение доступно по лицензии Apache.

С этим сторонним дополнением пользователи открытой реляционной СУБД PostgreSQL получают возможность создавать «колоночно»-ориентированные базы данных, обращаться к которым можно с помощью привычных SQL-запросов. Расширение было создано компанией Citusdata и доступно для скачивания на github (пока доступны только версии для Linux и OS X).

Данное расширение использует концепцию внешних таблиц (Foreign Tables) СУБД PostgreSQL, которая похожа на применяемые в MySQL «движки» (engines). С помощью этой концепции разработчики могут отделить непосредственное хранение данных от слоя запросов. Обращение к «внешним» таблицам происходит с помощью тех же классических механизмов, что и обращение к собственным таблицам PostgreSQL. Это дает возможность объединять таблицы обоих типов с помощью JOIN-операций.

PostgreSQL

Обычно реляционные БД хранят свои данные построчно. Однако использование OLAP-приложений (Online Analytical Processing) показало, что для такого рода приложений более эффективным является хранение данных по столбцам: при таком подходе существенно сокращается время выполнения функций агрегации (как, например, SUM), которые затрагивают все (или большинство) значений в одном столбце. Кроме того, «столбцовый» подход позволяет эффективнее использовать сжатие данных, что улучшает использование дискового пространства. Приведенный выше график показывает эффективность PostgreSQL без расширения от  Citusdata, а также с использованием расширения (с применением сжатия данных и без него).