Столбцовое хранение
Столбцовое хранение — способ организации хранения в базах данных, когда данные хранятся не построчно (строка за строкой), а постолбцово. Наиболее эффективен при операциях выборках данных из небольшого подмножества столбцов с последующей их постолбцовой обработкой, а также для сжатия данных (так как в столбцах зачастую хранятся повторяющиеся или близкие данные). Может быть эффективно реализована вставка большого количества строк, но при этом операции одиночной вставки, обновления и удаления при столбцовом хранении менее эффективны, чем в строчном.
Столбцовая СУБД — система управления базами данных, поддерживающая столбцовое хранение. Традиционные реляционные СУБД обычно используют строчное хранение, что эффективно для OLTP-сценариев, тогда как для OLAP-нагрузки столбцовое хранение обеспечивает, как правило, лучшую производительность.
Среди реляционных столбцовых СУБД — Teradata Database, Netezza, Sybase IQ, kdb, C-Store (и её потомок Vertica[англ.]), Greenplum, Hana, ParAccel[англ.] (и её потомок Amazon Redshift), MonetDB, ClickHouse. В ряде традиционных реляционных СУБД реализованы средства столбцового хранения (Oracle Database, MS SQL Server, MariaDB), либо существуют дополнения (например, Citus для PostgreSQL). Основные форматы Hadoop — RCFIle[англ.], ORC[англ.], Parquet[англ.], Apache Arrow[англ.] — также используют столбцовую организацию. Столбцовыми СУБД являются ряд систем, ориентированных на работу со временными рядами (InfluxDB, Apache Druid).