Вопрос

Является ли звездообразная схема важной для хранилища данных?Или вы можете создать хранилище данных с помощью другого шаблона проектирования?

Это было полезно?

Решение

С использованием звездные схемы Система хранилища данных дает вам несколько преимуществ, и в большинстве случаев их целесообразно использовать для верхнего уровня.У вас также может быть хранилище операционных данных (ODS) — нормализованная структура, которая хранит «текущее состояние» и облегчает такие операции, как конформация данных.Однако существуют разумные ситуации, когда это нежелательно.Мне приходилось строить системы со слоями ODS и без них, и в каждом случае у меня были конкретные причины для выбора архитектуры.

Не вдаваясь в тонкости архитектуры хранилища данных и не начиная спор «Кимбалл против.Война пламени Инмона Основными преимуществами звездной схемы являются:

  • Большинство систем управления базами данных имеют средства в оптимизаторе запроса, чтобы сделать «звездные преобразования», которые используют Индекс растрового изображения структуры илиИндексное пересечение Для быстрого разрешения предиката.Это означает, что выбор из звездообразной схемы можно выполнить, не затрагивая таблицу фактов (которая обычно намного больше индексов), пока выбор не будет разрешен.

  • Разделение звездообразная схема относительно проста, поскольку необходимо секционировать только таблицу фактов (если только у вас нет библейски больших измерений). Удаление раздела означает, что оптимизатор запросов может игнорировать шаблоны, которые не могут участвовать в результатах запроса, что позволяет сэкономить на вводе-выводе.

  • Медленно меняющиеся размеры гораздо проще реализовать по схеме «звезда», чем по схеме «снежинка».

  • Эту схему легче понять, и она, как правило, требует меньше соединений, чем схема. снежинка или схема ER.Ваша команда репортеров будет любить вас за это

  • Звездообразные схемы намного проще в использовании и (что более важно) хорошо работают с инструментами специальных запросов, такими как Бизнес-объекты или Построитель отчетов.Как разработчик, вы имеете очень мало контроля над SQL, генерируемым этими инструментами, поэтому вам необходимо оказывать оптимизатору запросов как можно больше помощи.Звездообразные схемы дают оптимизатору запросов относительно мало возможностей ошибиться.

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

Процессы загрузки ODS связаны с очисткой и согласованием данных, что легче сделать с помощью нормализованной структуры.Если у вас есть чистые данные в ODS, загрузки измерений и фактов могут сравнительно легко отслеживать историю (изменения с течением времени) с помощью общих или относительно простых механизмов;это гораздо проще сделать со звездообразной схемой. Многие инструменты ETL (например) предоставляют встроенные средства для медленного изменения измерений, а реализация общего механизма относительно проста.

Подобная структура системы обеспечивает разделение обязанностей: бизнес-логика и логика очистки данных обрабатываются в ODS, а нагрузка звездообразной схемы связана с историческим состоянием.

Другие советы

В литературе по хранилищам данных продолжаются дебаты по поводу где в архитектуре хранилища данных Звездная схема дизайн должен быть применен.

Суммируя Кимбалл очень активно выступает за использование только схемы Star-Schema в хранилище данных, в то время как Инмон сначала хочет построить корпоративное хранилище данных, используя нормализованный 3NF дизайн, а затем использовать дизайн Star-Schema в витринах данных.

Кроме того, здесь можно также сказать, что Дизайн схемы снежинки это другой подход.

Четвертым дизайном может стать Моделирование хранилища данных подход.

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

Вы должны помнить, что звездообразная схема — это шаблон верхнего слоя хранилища.Все модели также включают промежуточные схемы в нижней части стека хранилища, а некоторые также включают постоянную преобразованную объединенную промежуточную область, где все исходные системы объединяются в смоделированную схему 3NF.Над ним расположены различные предметные области.

Альтернативы схемам «звезда» на верхнем уровне включают вариант схемы «снежинка».Новый метод, который также может подтвердить некоторые исследования, - это Моделирование хранилища данных предложен Дэном Линстедтом.

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

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

Звездообразные схемы естественным образом подходят для последнего уровня хранилища данных.Как вы туда доберетесь, это другой вопрос.Насколько я знаю, существует два больших лагеря: Билл Инмон и Ральф Кимбалл.Возможно, вам захочется взглянуть на теории этих двух парней, если/когда вы решите выбрать звезду.

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

Схема «звезда» — это логическая модель данных для реляционных баз данных, которая соответствует обычным потребностям в хранении данных;если задана реляционная среда, то схема «звезда» или «снежинка» будет хорошим шаблоном проектирования, жестко встроенным во многие методологии проектирования DW.

Однако существуют и другие механизмы реляционных баз данных, и их можно использовать для эффективного хранения данных.Механизмы многомерного хранения могут быть очень быстрыми для задач OLAP (например, TM1);в этом случае мы не можем применить звездообразную схему.Другие примеры, требующие специальных логических моделей, включают базы данных XML или базы данных, ориентированные на столбцы (например.экспериментальный C-магазин)).

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

Многие оптимизации на уровне базы данных предполагают наличие звездообразной схемы;вы потратите много времени на оптимизацию и реструктуризацию, чтобы заставить БД делать «правильные вещи» с вашим не совсем звездным макетом.

Убедитесь, что плюсы перевешивают минусы..

(Звучит так, будто я был там раньше?)

Есть три проблемы, которые нам нужно решить.

1) Как получить данные из операционной исходной системы, не оказывая на них чрезмерного давления путем объединения таблиц внутри и между ними, очистки данных по мере их извлечения, создания дериваций и т. д.

2) Как объединить данные из разрозненных источников - некоторые устаревшие, некоторые файловые, из разных отделов, в единое, точное, эффективно хранимое целое, которое моделирует бизнес и не отражает структуры исходных систем.Помните, системы меняются/заменяются относительно быстро, но базовая модель бизнеса меняется медленно.

3) Как структурировать данные для максимально быстрого и точного удовлетворения конкретных требований к аналитике и отчетности для конкретных людей/отделов бизнеса.

Решение этих трех очень разных проблем требует разных архитектурных уровней.

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

Enterprise Layer Это ориентированная на бизнес 3 -я база данных нормальной нормальной формы.Данные извлекаются (а затем перебрасываются) с промежуточного уровня на уровень предприятия, где они очищаются, интегрируются и нормализуются.

Презентация (Star Schema) слой Здесь мы моделируем размерные для удовлетворения конкретных требований.Данные намеренно денормализованы, чтобы уменьшить количество соединений.Иерархии, которые могут занимать несколько таблиц на уровне предприятия, сворачиваются в одну таблицу измерений, а несколько транзакционных таблиц могут быть объединены в одну таблицу фактов.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top