Столбцовое хранилище в хранилище данных

У меня вопрос о хранилищах данных и базах данных, ориентированных на столбцы. В моем проекте компания использует складское решение в Visual Studio SQL server, у них проблемы с производительностью при запросе сложных вопросов на большом количестве данных. Я хочу попробовать заменить базу данных столбчатой ​​базой данных. Я знаю, что вы можете «преобразовать» базу данных, ориентированную на строки, в более столбцовую или использовать базу данных с открытым исходным кодом, такую ​​как Vertica или Sybase IQ, мне просто интересно, как она поместится в хранилище? У вас должна быть схема звездообразного соединения на складе или вы можете использовать вместо этого столбчатый подход, я понимаю, что это своего рода глупый вопрос, но я просто пытаюсь понять все это, прежде чем я начну исследовать различные базы данных и решения. Я знаю, что в SQL Server 2012 есть хранилище столбцов, но я хотел бы попробовать и другие базы данных с открытым исходным кодом.

Заранее спасибо!


person glaring    schedule 04.03.2013    source источник
comment
Насколько проблема с производительностью? Запросы к хранилищу данных обычно измеряются в минутах и ​​часах, а не в секундах. Наиболее интересные запросы требуют, чтобы база данных проходила через множество строк.   -  person Gilbert Le Blanc    schedule 04.03.2013
comment
Я не уверен, сколько именно, просто это проблема, и они хотят увидеть, какое значение может иметь база данных, ориентированная на столбцы. Я просто запутался, так как я только что прошел курс по хранению данных и научился использовать схему звездообразного соединения, можете ли вы просто заменить ее базой данных, ориентированной на столбцы?   -  person glaring    schedule 04.03.2013
comment
Что такое база данных, ориентированная на столбцы? Вы можете указать на статью в Википедии?   -  person Gilbert Le Blanc    schedule 04.03.2013
comment
en.wikipedia.org/wiki/Column-orarded_DBMS   -  person glaring    schedule 04.03.2013
comment
Хорошо, если я правильно понимаю, вы говорите не об изменении структуры таблицы, вы говорите о том, как движок базы данных на самом деле хранит байты базы данных. Конечно, посмотрите, добьетесь ли вы улучшения с помощью движка базы данных, ориентированного на столбцы.   -  person Gilbert Le Blanc    schedule 04.03.2013
comment
Большое спасибо за ваши ответы, я очень ценю это! Вы знаете, могу ли я использовать, например, Sybase IQ в качестве решения для хранилища данных? Я читал, что он хорошо подходит для хранилищ данных, но не в том случае, если вы можете использовать его отдельно или если вам нужно каким-то образом интегрировать его в SQL-сервер.   -  person glaring    schedule 04.03.2013
comment
Я не хочу расширять обсуждение в комментариях, но я в основном использовал IBM DB2 для создания хранилищ данных, хотя это движок базы данных, ориентированный на строки. Вы всегда можете задать дополнительные подробные вопросы на Stack Overflow.   -  person Gilbert Le Blanc    schedule 04.03.2013
comment
Ни Vertica, ни Sybase IQ не являются открытыми исходными кодами ... Я думаю, что MonetDB - один из немногих, что есть.   -  person N West    schedule 04.03.2013


Ответы (1)


Обязательно ли иметь на складе схему звездообразного соединения или вместо этого можно использовать столбчатый подход?

Схема звездообразного соединения состоит из определений таблиц вашего хранилища данных. Схема «звезда» и аналогичные схемы позволяют повысить производительность запросов для повышения гибкости запросов. Обычно гибкость запросов в хранилище данных важнее, чем их производительность.

Основываясь на статье в Википедии, на которую вы ссылались в своих комментариях, движок базы данных, ориентированный на столбцы, хранит фактические байты базы данных в порядке столбцов, а не традиционный порядок строк реляционных баз данных.

Как говорится в статье, это может улучшить производительность доступа к диску.

Схема «звезда» - это то, как вы определяете таблицы. Механизм базы данных, ориентированный на столбцы, связан с тем, как информация базы данных записывается на диск. Эти две концепции не имеют ничего общего друг с другом, за исключением того, что обе они применимы к хранилищу данных.

Сохраните существующую схему хранилища данных и посмотрите, улучшит ли движок базы данных, ориентированную на столбцы, производительность запросов.

person Gilbert Le Blanc    schedule 04.03.2013
comment
Теперь это начинает обретать смысл :) Большое спасибо, Гилберт! Я уверен, что позже у меня будут еще тысячи вопросов, но сейчас это кажется более ясным! - person glaring; 04.03.2013
comment
Одно дело - изменить движок СУБД намного сложнее, чем кажется, поскольку каждая система реализует SQL по-разному, и выяснение совместимости уровня BI и т. Д. Может быть очень сложной задачей. Возможно, вам будет лучше обратиться к хорошему администратору баз данных, который проведет некоторый анализ производительности запросов и определит места, которые следует улучшить с помощью более совершенных структур (индексация и т. Д.) Или оборудования (обычно виноват дисковый ввод-вывод). - person N West; 04.03.2013