Некоторое время занимаюсь складированием.
Меня заинтриговали столбчатые базы данных и скорость, которую они могут предложить для извлечения данных.
У меня вопрос из нескольких частей:
- Как работают столбчатые базы данных?
- Чем они отличаются от реляционных баз данных?
Ответы:
Как работают столбчатые базы данных?
Столбчатая база данных - этоскорее концепция конкретной архитектуры / реализации . Другими словами, нет одного конкретного описания того, как работают эти базы данных; действительно, некоторые из них построены на традиционной, ориентированной на строки СУБД, просто храня информацию в таблицах с одним (или, скорее, двумя) столбцами (и добавляя необходимый уровень для легкого доступа к столбчатым данным).
Чем они отличаются от реляционных баз данных? Они обычно отличаются от традиционных (строковых) баз данных в отношении ...
... в конкретных случаях использования СУБД .
В частности, они предлагают преимущества в упомянутых областях, когда типичным использованием является вычисление агрегированных значений для ограниченного числа столбцов, в отличие от попытки получить все / большинство столбцов для данной сущности.
Есть ли пробная версия колоночной базы данных, которую я могу установить, чтобы поиграть? (Я на Windows 7) Да, есть коммерческая, бесплатная реализация столбчатых баз данных с открытым исходным кодом. Для начала ознакомьтесь со списком в конце статьи в Википедии .
Помните, что некоторые из этих реализаций были введены для решения конкретной задачи (например, очень небольшая площадь, хорошо сжимаемое распределение данных или эмуляция резервной матрицы и т. Д.), А не для создания СУБД общего назначения, ориентированной на столбцы как таковой.
Примечание. Замечание об «ориентации на одну цель» нескольких колоночных СУБД не является критикой этих реализаций, а скорее дополнительным признаком того, что такой подход для СУБД отклоняется от более «естественного» (и, безусловно, более широко используемого) подхода к хранение записей. В результате этот подход используется, когда подход, ориентированный на строки, неудовлетворителен и, следовательно, имеет тенденцию:
а) быть нацеленным на конкретную цель; б) получать меньше ресурсов / интереса, чем работа над «Общими целями», «Пробовал и Проверено », табличный подход.
Ориентировочно модель данных Entity-Attribute-Value (EAV) может быть альтернативной стратегией хранения, которую вы, возможно, захотите рассмотреть. Несмотря на то, что EAV отличается от «чистой» модели столбцовых БД, он разделяет некоторые характеристики столбчатых БД.
источник
Как работают колоночные базы данных? Определяющая концепция хранилища столбцов состоит в том, что значения таблицы хранятся последовательно по столбцам. Таким образом, классическая таблица поставщиков из базы данных поставщиков и запчастей CJ Date:
будет храниться на диске или в памяти примерно так:
Это отличается от традиционного хранилища строк, в котором данные будут храниться примерно так:
Из этой простой концепции вытекают все фундаментальные различия в производительности, к лучшему или худшему, между хранилищем столбцов и хранилищем строк. Например, хранилище столбцов будет превосходно выполнять агрегирование, такое как итоговые и средние значения, но вставка одной строки может быть дорогостоящей, в то время как обратное верно для хранилищ строк. Это должно быть очевидно из приведенной выше диаграммы.
Чем они отличаются от реляционных баз данных? База данных отношений - это логическая концепция. Колоночная база данных или колоночное хранилище - это физическая концепция. Таким образом, эти два термина несопоставимы ни в каком значимом смысле. DMBS, ориентированные на столбцы, могут быть реляционными или нет, так же как СУБД, ориентированные на строки, могут более или менее придерживаться реляционных принципов.
источник
Я бы сказал, что лучший кандидат для понимания баз данных, ориентированных на столбцы, - это проверить HBase ( Apache Hbase ). Вы проверяете код и исследуете его дальше, чтобы узнать о реализации.
источник
Кроме того, столбчатые базы данных имеют встроенную привязку к сжатию данных, и процесс загрузки уникален. Вот статья, которую я написал в 2008 году, которая объясняет немного больше.
Вас также может заинтересовать новый отчет Карла Олофсона из IDC о технологии СУБД 3-го поколения. Он обсуждает столбчатый и др. Если вы не являетесь клиентом IDC, вы можете получить его бесплатно на нашем сайте. Он тоже проводит вебинар 16 июня (тоже на нашем сайте).
(Кстати, в одном из комментариев выше перечислены asterdata, но я не думаю, что они столбчатые.)
источник
Чтобы понять, что такое база данных, ориентированная на столбцы, лучше сравнить ее со строкой базы данных.
Строковые базы данных (например, MS SQL Server и SQLite) предназначены для эффективного возврата данных для всей строки. Он делает это, сохраняя все значения столбцов строки вместе. Строковые базы данных хорошо подходят для систем OLTP (например, систем розничных продаж и финансовых транзакций).
Базы данных, ориентированные на столбцы , предназначены для эффективного возврата данных для ограниченного числа столбцов. Он делает это, сохраняя все значения столбца вместе. Две широко используемые базы данных, ориентированные на столбцы, - это Apache Hbase и Google BigTable (используемые Google для поиска, аналитики, карт и Gmail). Они подходят для проектов с большими данными. База данных, ориентированная на столбцы, будет превосходно выполнять операции чтения для ограниченного числа столбцов, однако операция записи будет дорогостоящей по сравнению с базами данных, ориентированными на строки.
Подробнее: https://en.wikipedia.org/wiki/Column-oriated_DBMS.
источник
Информация о продукте. Это может помочь. Это были продукты, представленные в поиске Google.
http://www.vertica.com/
http://www.paraccel.com/
http://www.asterdata.com/index.php
источник
kx - еще одна колоночная база данных, например, используемая в финансовом секторе. Однако, когда я в последний раз проверял, лицензия стоит около 50 тысяч долларов. Оптимизация не требуется, индекс не требуется, потому что кх не имеет мощные операторы (MatLab эквиваленты:
.*
,kron
,bsxfun
, ...).источник