Колоночная база данных (Columnar database)

Синонимы: Column-oriented database

Разделы: Источники данных

База данных, в которой данные группируются не по строкам, а по столбцам. В ней «соседними» являются не данные из двух столбцов одной и той же строки, а данные из одного и того же столбца, но из разных строк.

Так же, как и для традиционных строчных СУБД, колоночные могут использовать языки запросов к базам данных, такие как SQL.

Рассмотрим простую таблицу:

ID FistName LastName Age Bonus
001 Vladimir Ivanov 34 15000
002 Dmitry Sidorov 56 21000
003 Aleksandr Petrov 43 19000

В строковой базе данных эта таблица будет хранится в виде:

  1. 001, Vladimir, Ivanov, 34, 15000
  2. 002, Dmitry, Sidorov, 56, 21000
  3. 003, Aleksandr, Petrov, 43, 19000

В колоночной базе данных та же информация будет иметь следующую структуру:

  1. 001, 002, 003
  2. Vladimir, Dmitry, Aleksandr
  3. Uvanov, Sidorov, Petrov
  4. 36, 54, 43
  5. 15000, 21000, 19000

Важным свойством колоночных СУБД является высокая скорость и гибкость выполнения сложных запросов. Действительно, в "строчной" СУБД при поиске и считывании значений сканируется вся таблица по строкам и столбцам, а затем извлекаются строки целиком, даже в том случае, если нужно только одно значение каждой из них. Колоночные базы данных позволяют искать значения по отдельным столбцам и извлекать только те значения, которые требуются.

Это свойство колоночных СУБД делает их особенно перспективными для использования в OLAP-системах и при работе с Большими данными. Кроме этого, колоночные базы данных могут быть сжаты сильнее чем строчные, что позволяет более эффективно использовать дисковое пространство.

Колоночные СУБД появились и развивались параллельно со строчными. Первой коммерческой колоночной СУБД считается TAXIR (1969), ориентированная на хранение и поиск биологических данных.

В настоящее время на рынке программного обеспечения представлено большое количество колоночных СУБД: ClickHouse, Greenplum, HANA, MonetDB, Vertica и др.

results matching ""

    No results matching ""