Главная » Microsoft SQL Server, Базы данных » Создание базы данных – ЧАСТЬ 8

0

?               AverageOfChildren. Среднее значение потомков, не считая пустых.

?               FirstChild. Значение первого потомка.

?               FirstNonEmpty. Значение первого непустого потомка.

?               LastNonEmpty. Значение последнего непустого потомка.

?               By Account. Консолидация варьируется в зависимости от значений в измерении расчетов. Параметр типа измерения должен быть установлен в значение Accounts, и один из атрибутов измерения должен иметь параметр Туре, установленный в AccountType. Столбец, соответствующий атрибуту с установленным типом AccountType, содержит определенные строки, идентифицирующие тип счета и, исходя из этого, метод консолидации, используемый службой анализа.

Лучше всего добавлять новые меры путем щелчка правой кнопки мыши на панели Measures и выбора в контекстном меню пункта New Measure. В открывшемся диалоговом окне определите итоговую функцию и комбинацию таблицы/столбца. Новая мера сразу же будет добавлена в соответствующую группу мер. Группы мер создаются для каждой таблицы фактов плюс для определенных мер подсчета уникальных значений. Эти группы соответствуют разным запросам SQL, выполняемым для извлечения данных куба.

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

Дополнительная Более подробно о вычисляемых мерах мы поговорим в главе 45.

информация

Меры могут быть представлены пользователю в сгруппированном по папкам виде. Для этого нужно ввести в параметре DisplayFolder имя папки, в которой должна отображаться мера. Также считается хорошим тоном назначать каждой мере формат по умолчанию. Для этого в параметре FormatString либо выбирается один из стандартных форматов, либо непосредственно вводится пользовательский формат.

Каждый куб может иметь при необходимости меру, используемую по умолчанию. Она используется для возвращения запросам, в которых явно не указана запрашиваемая мера. Для установки меры, используемой по умолчанию, выберите имя куба в верхней части дерева на панели Measure и установите параметр DefailtMeasure, выбрав нужную меру из списка.

Измерения куба

Иерархии и атрибуты в каждом измерении могут быть либо отключены (соответственно с помощью параметров Enabled и AttributeHierarchyEnabled), либо сделаны невидимыми (соответственно с помощью параметров Visible и AttributeHierarchyVisible), если это уместно в контексте конкретного куба (соответствующие примеры сценариев см. в разделе “Видимость и организация”). Доступ к этим параметрам осуществляется путем выделения соответствующего атрибута или иерархии на панели Dimensions и работы с панелью Properties. Эти параметры специально предназначены на роль измерения в кубе и не изменяют структуру самого измерения.

Измерения можно добавить в куб щелчком правой кнопкой мыши на панели Dimensions и выбором в контекстном меню пункта New Dimension. После добавления измерения в куб обратитесь к представлению Dimension Usage, чтобы проверить, правильно ли новое измерение связано со всеми группами мер.

Представление Dimension Usage

Представление Dimension Usage отображает таблицу, в которой показано, как каждое из измерений связано с группами мер. Измерения и группы мер являются заголовками строк и столбцов соответственно; таким образом, каждая ячейка таблицы определяет отношение между соответствующей парой измерения и группы мер. Раскрывающийся список в левом верхнем углу позволяет скрывать строки и столбцы для упрощения просмотра больших представлений.

Информация, которая должна была быть разделена на разные кубы в версии Новинка               Analysis Services 2000, в настоящей версии может быть запросто включена в

2005 й    один куб. Вместо разделения кубов представление Dimension Usage позволяет

по-разному применять измерения куба к разным группам мер.

Конструктор кубов создает связи по умолчанию, основываясь на отношениях в представлении источника данных, что в большинстве случаев вполне адекватно. В то же время некоторые связанные объекты требуют особого подхода, поскольку не управляются представлением источника данных. Щелкнете на эллипсе в любой ячейке таблицы, чтобы открыть диалоговое окно Define Relationship, в котором можно выбрать тип отношения. Разные типы отношений требуют разной информации отображения. Об этом мы поговорим в следующих разделах.

Отсутствие отношения

В базах данных, имеющих больше одной таблицы фактов, скорее всего, будут присутствовать измерения, не связанные с некоторыми группами мер. В парах групп мер/измерений такие ячейки таблицы выделяются серым цветом; они не имеют каких-либо аннотаций. Если запускается запрос, определяющий измерение, не связанное с конкретной мерой, то она по умолчанию игнорируется.

Обычные отношения

Обычным называют отношение таблицы фактов непосредственно к таблице измерения, подобно схеме “звезда”. В диалоговом окне Define Relationship выберите атрибут гранулярности (Granularity) в качестве атрибута измерения, непосредственно связанного с группой мер,— обычно это ключевой атрибут измерения. В таблице в нижней части окна выберите имена столбцов таблицы фактов, соответствующие ключевым столбцам атрибута гранулярности.

Связь измерения с группой мер с помощью неключевого атрибута также работоспособна, однако в данном случае ее следует рассматривать в контексте естественной иерархии измерения (см. раздел “Взаимосвязи атрибутов”). Естественную иерархию можно представить себе как дерево с ключевым атрибутом в корне. Любой атрибут, находящийся на уровне или выше связанного, будет связан с группой мер и работать, как положено. Все атрибуты, находящиеся ниже связанного или расположенные на другой ветви, не будут иметь связи (см. раздел “Отсутствие отношения”).

Фактические отношения

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

Ссылочные отношения

Когда таблицы измерений соединены с таблицей фактов в схеме “снежинка”, это измерение может быть реализовано как одно измерение, имеющее обычное отношение с таблицей фактов, или как одно обычное измерение и одно ил и несколько ссылочных. Ссылочные измерения опосредованно связаны с группой мер через другие измерения. Одно измерение, имеющее обычное отношение, реализовать значительно проще. Однако если ссылочное измерение можно создать и использовать с помощью множества цепочек различных обычных измерений (например, измерение “Географическое положение” может быть использовано в измерениях “Магазин” и “Заказчик”), то этот вариант может быть более эффективным с точки зрения хранения и обработки данных. Ссылочные отношения могут связывать измерения в цепочки любой длины.

Создается ссылочное отношение в диалоговом окне Define Relationship с помощью выбора измерения-посредника, связанного с группой мер. После этого выбираются атрибуты, по которым связываются ссылочное измерение и измерение-посредник. Обычно для повышения производительности устанавливают флажок Materialize.

Отношения “многие ко многим”

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

Рис. 43.9. Пример отношения “многие ко многим ”

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

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

Представление KPI

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

В представлении KPI каждый индикатор состоит из нескольких компонентов.

?               Фактическое значение метрики, введенное как выражение MDX, вычисляющее ее.

?               Назначение метрики — например, какой объем прибыли предусмотрен в бюджете. Назначение метрики также вводится в виде выражения MDX, вычисляющего соответствующее значение.

?               Состояние метрики, сравнивающее фактическое и целевое значения. Статус вводится как выражение MDX, возвращающее значение в диапазоне от -1 (очень плохо) до +1 (очень хорошо). В приложениях, представляющих данные KPI, может использоваться графика, что позволяет сделать презентацию единообразной в пространстве всех приложений.

?               Тренд метрики, показывающий, в каком направлении она меняется. Подобно состоянию, тренд вводится как выражение MDX, возвращающее значение в диапазоне от -1 до +1 с подкреплением графикой.

При определении ключевых индикаторов производительности можно с помощью панели инструментов переключаться между режимами формы и браузера, отображающего результаты. Панель Calculation Tools, находящаяся в левой нижней части окна, отображает метаданные куба и список функций MDX, которые можно использовать при создании выражений MDX методом перетаскивания элементов. Вкладка Templates содержит шаблоны некоторых наиболее распространенных ключевых индикаторов производительности.

Представление Actions

Определение действий позволяет клиенту запускать параметризованные команды, в том числе раскрывающие детали данных, запускающие отчет службы Reporting Services, обрабатывающие URL-адреса или командные строки. Действия могут быть специфичными для отображаемых данных, в том числе для отдельных ячеек и членов измерений, что позволяет выполнить более детальный анализ и даже интеграцию приложения анализа в более крупную среду управления данными.

Представление Partitions

Разделы — это единицы хранения службы анализа. Они хранят данные группы мер. Изначально конструктор кубов создает один раздел MOLAP для каждой группы мер. Как уже говорилось в разделе “Архитектура сервера’, MOLAP является самым предпочтительным режимом хранения для подавляющего большинства сценариев. В то же время установка размеров разделов и агрегаций является ключом к эффективной обработке данных и выполнению запросов.

Размеры разделов

Проектирование куба обычно начинается с использования малого, но представительного среза данных. В то же время реальные производственные массивы данных достаточно велики — кубам приходится консолидировать миллиарды и более строк в каждом квартале. Стратегия разделения необходима для управления данными как в реляционных базах, так и в базах данных службы анализа, начиная с оценки объема данных, которые нужно поддерживать для аналитической или оперативной обработки, и определения размеров разделов, которые будут хранить эти данные.

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

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

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

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

Создание разделов

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

Представление Partition состоит из одной сворачиваемой панели для каждой группы мер; в каждой панели содержится таблица, в которой перечислены существующие в настоящее время разделы соответствующей группы мер. Если выделить какой-либо раздел, то его параметры отобразятся на панели Properties.

Процесс добавления раздела начинается со щелчка на ссылке New Partition, чтобы открыть последовательность диалоговых окон мастера разделов (Partition Wizard).

?               Specify Source Information. Выберите соответствующую группу мер (по умолчанию выбрана та группа, которая была выделена в момент запуска мастера). Если нужная таблица источника включена в представление источника данных, то она отобразится в списке Available Tables и может быть выбрана. В противном случае выберите соответствующий источник данных в списке Look In и щелкните на кнопке Find Tables, чтобы добавить в список таблицы из выбранного источника. При желании в поле Filter tables можете ввести часть имени таблицы источника, чтобы сократить список отображаемых таблиц.

?               Restrict Rows. Если таблица источника содержит только те строки, которые должны быть включены в раздел, пропустите данную страницу. Если таблица источника содержит больше строк, чем должно быть включено в раздел, установите флажок Specify query to restrict rows, и в поле Query будет автоматически сформирован полный запрос SELECT, в котором отсутствует только предложение WHERE. Введите отсутствующие ограничения и щелкните на кнопке Check, чтобы проверить синтаксис.

?               Processing and Storage Locations. Предложенные по умолчанию установки подойдут для большинства ситуаций. Если необходимо, выберите другие параметры, чтобы сбалансировать нагрузку на диски и серверы.

?               Completing the Wizard. На этой странице введите имя раздела— чаще всего используют имя группы, за которым следует некоторый признак среза (например, Inter- net__0rders_2 004). Если агрегация еще не была определена, определите ее сейчас. Если агрегация была определена для другого раздела, скопируйте ее оттуда, чтобы поддерживать единообразие разделов.

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

Проектирование агрегаций

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

?               Specify Storage and Caching Options. На этой странице определяется способ хранения и обновления отдельных разделов. Представленные параметры могут быть установлены на уровне всего куба (т.е. для всех его разделов), что обеспечит их единообразие, а затем модифицированы для особых случаев на этой странице. Более подробно об этом речь пойдет в разделе “Хранилище данных”.

?               Specify Object Columns. Укажите для каждого раздела точное количество строк, и таблица измерений будет сама управлять тем, как будут вычисляться агрегации. Щелкните на кнопке Count, чтобы выполнить подсчет текущего количества строк. Если текущий источник данных отличается от того, для которого создается проект (т.е. является небольшим тестовым набором данных), то можете ввести числа вручную.

?               Set Aggregation Options. На этой странице выполняется фактическое проектирование агрегаций. Как правило, здесь определяют минимально необходимое число агрегаций, оставляя на откуп оптимизатору службы анализа проектирование агрегаций на основе статистики использования. Параметры в левой части страницы указывают конструктору, когда следует остановить создание новых агрегаций, а график в правой части отображает оценку соотношения объема хранилища к выигрышу в производительности.

В проектировании агрегации не существует строгих правил, однако стоит прислушаться к следующим рекомендациям.

•           Если объем хранилища не является главным ограничением, установите изначальный выигрыш в производительности на уровне 10-20%. В более сложных кубах достаточно сложно оценить благоразумное количество агрегаций (и соответствующее время выполнения). В простых кубах можно допустить множество агрегаций, однако производительность будет все равно настолько высока, что лишние агрегации не принесут ощутимой выгоды.

•           Удерживайте общее количество агрегаций на уровне менее 200 (этот показатель отображается в нижней части окна, непосредственно над индикатором процесса).

•           Найдите на графике соотношения объема хранилища и производительности явный перелом и остановитесь на нем.

?               Completing the Wizard. На этой странице вы можете указать мастеру только сохранить проект агрегаций или сохранить и развернуть его.

Лучшие агрегации — те, которые созданы на основе анализа использования. Накапливайте исторические сведения в журнале запросов и периодически используйте его для оптимизации агрегаций каждого из разделов. Протоколирование запросов можно включить в разделе Log/QueryLog окна параметров службы анализа. Установите для параметра CreateQueryLogTable значение true, в параметре QueryLogConnectionString определите строку подключения к журналу, а в параметре QueryLogTableName задайте имя журнала.

Проекции

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

Проекции создаются путем щелчка правой кнопкой мыши или использования панели инструментов. В результате создается новый столбец. Замените имя, предложенное по умолчанию в верхней части столбца, более подходящим, а затем снимите флажки с тех элементов, которые не нужны для данной проекции. Для проекции также можно выбрать меру по умолчанию — для этого во второй строке таблицы выберите тип объекта Default Me a sure.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии