Что такое столбчатая база данных? - PullRequest
88 голосов
/ 25 января 2010

Я уже некоторое время работаю со складом.

Я заинтригован колонными базами данных и скоростью, которую они предлагают для поиска данных.

У меня вопрос из нескольких частей:

  • Как работают колоночные базы данных?
  • Чем они отличаются от реляционных баз данных?

Ответы [ 7 ]

237 голосов
/ 15 февраля 2010

Как работают столбчатые базы данных? Определяющая концепция хранилища столбцов заключается в том, что значения таблицы хранятся непрерывно по столбцам. Таким образом, классическая таблица поставщиков из базы данных и запчастей CJ Date:

SNO  STATUS CITY    SNAME
---  ------ ----    -----
S1       20 London  Smith
S2       10 Paris   Jones
S3       30 Paris   Blake
S4       20 London  Clark
S5       30 Athens  Adams

будет храниться на диске или в памяти что-то вроде:

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams 

Это отличается от традиционного хранилища строк, в котором данные хранятся примерно так:

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

Из этой простой концепции вытекают все фундаментальные различия в производительности, в лучшую или в худшую сторону, между хранилищем столбцов и хранилищем строк. Например, хранилище столбцов будет лучше выполнять агрегации, такие как итоги и средние значения, но вставка одной строки может быть дорогой, в то время как обратное верно для хранилищ строк. Это должно быть видно из приведенной выше диаграммы.

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

46 голосов
/ 25 января 2010

Как работают столбчатые базы данных?
База данных столбцов представляет собой концепцию , а конкретную архитектуру / реализацию . Другими словами, нет конкретного описания того, как работают эти базы данных; на самом деле, некоторые из них основаны на традиционных, ориентированных на строки, СУБД, просто хранящих информацию в таблицах с одним (а часто и двумя) столбцами (и добавляющими необходимый слой для простого доступа к столбчатым данным).

Чем они отличаются от реляционных баз данных? Они обычно отличаются от традиционных (ориентированных на строки) баз данных в отношении ...

  • производительность ...
  • требования к хранению ...
  • простота модификации схемы ...

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

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

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

Ориентировочно, модель данных Entity-Attribute-Value (EAV) может быть альтернативной стратегией хранения, которую вы можете рассмотреть. Несмотря на то, что EAV отличается от «чистой» модели Columnar DB, EAV обладает некоторыми характеристиками Columnar DB.

3 голосов
/ 26 июля 2012

Я бы сказал, что лучшим кандидатом для понимания баз данных, ориентированных на столбцы, является проверка HBase ( Apache Hbase ). Вы проверяете код и изучаете дальше, чтобы узнать о реализации.

2 голосов
/ 13 мая 2010

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

Вас также может заинтересовать новый отчет Карла Олофсона из IDC о технологии СУБД 3-го поколения. В ней обсуждаются колонки и др. Если вы не являетесь клиентом IDC, вы можете получить его бесплатно на нашем сайте. Он также проводит вебинар 16 июня (также на нашем сайте).

(Кстати, один комментарий выше перечисляет звездочки, но я не думаю, что они столбчатые.)

1 голос
/ 05 апреля 2017

Чтобы понять, что такое база данных, ориентированная на столбцы, лучше сравнить ее с базой данных, ориентированной на строки.

Базы данных, ориентированные на строки (например, MS SQL Server и SQLite) предназначены для эффективного возврата данных для всей строки. Это делается путем хранения всех значений столбцов строки вместе. Ориентированные на строки базы данных хорошо подходят для систем OLTP (например, розничных продаж и систем финансовых транзакций).

Базы данных, ориентированные на столбцы предназначены для эффективного возврата данных для ограниченного числа столбцов. Это делается путем сохранения всех значений столбца вместе. Две широко используемые базы данных, ориентированные на столбцы, - это Apache Hbase и Google BigTable (используются Google для поиска, аналитики, карт и Gmail). Они подходят для проектов больших данных. Колонно-ориентированная база данных лучше всего справляется с операциями чтения ограниченного числа столбцов, однако операция записи будет более дорогой по сравнению со строками с ориентированной строкой.

Подробнее: https://en.wikipedia.org/wiki/Column-oriented_DBMS

1 голос
/ 02 декабря 2013

kx - еще одна столбцовая база данных, например, используемая в финансовом секторе. Правда, в прошлый раз, когда я проверял, лицензия стоит $ 50K. Оптимизация не требуется, индекс не требуется, потому что kx имеет мощные операторы (эквиваленты matlab: .*, kron, bsxfun, ...).

1 голос
/ 25 января 2010

Информация о продукте. Это может помочь. Это были популярные товары в поиске Google.

http://www.vertica.com/

http://www.paraccel.com/

http://www.asterdata.com/index.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...