Библиотека Интернет Индустрии I2R.ru |
|||
|
Analysis Services: Повышение производительности куба, используя Microsoft SQL Server 2000 Analysis ServicesВведениеОдним из важнейших моментов при работе с крупными Хранилищами данных является построение OLAP-кубов для достижения максимальной производительности. В данной статье рассмотрено построение кубов при помощи Microsoft® SQL Server&trade 2000 and Analysis Services на примере "пробной" базы данных. Вы сможете ознакомиться с результатами ряда тестов и анализом производительности кубов в заданной среде. Наиболее важными критериями при построении кубов являются режим хранения данных и уровень агрегирования. Основные режимы хранения в Analysis Services приведены в таблице:
В Analysis Services агрегаты представляют собой предварительно рассчитанные суммы данных таблицы фактов для определенных комбинаций уровней из каждого измерения. Эти агрегаты используются для обработки запросов и создания дополнительных агрегатов. Выбирая, сколько агрегатов (в процентах) включать в куб, необходимо учитывать объем хранимой информации и время выполнения запроса. Предварительный расчет всех возможных агрегатов приведет к значительному увеличению емкости для хранения информации БД. С другой стороны, расчет агрегатов в момент обработки запроса увеличит необходимое для этого время. Ниже приводится сравнительный анализ различных режимов хранения информации и уровней агрегирования для больших объемов данных. Результаты тестов включают в себя:
В качестве тестов, результаты которых содержатся в данной статье, использовался ряд вопросов, позволяющих проанализировать показатели прибыли. Конфигурация тестируемой системыОборудование, использованное для проведения теста:
При тестировании были использованы следующие серверы:
Выбор среды для тестированияФормулировки вопросов
Создание описаний банковских данных Исходя из перечисленных вопросов, определим соответствующий источник данных в существующей ER диаграмме (entity-relationship diagram, диаграмма "объекты-отношения") очень большой БД (VLDB, Very Large DataBase). Таблицы можно определить следующим образом:
Построение схемы "звезда" (пространственная модель) для генерируемого куба Для получения ответов на вопросы об эффективности того или иного продукта была разработана схема "звезда" (для OLAP-куба). Таблица Account_Prof_Fact была построена из таблиц о доходности по счетам за все периоды. В ней содержатся данные о доходности той или иной банковской услуги, например, ежемесячные доходы и расходы для различных продуктов; иными словами, таблица содержит значения totals для всех мер за каждый месяц. Были определены пять измерений: Product, Period, Region, Household и Customer Segment. Создание и заполнение витрины данных SQL-сервера Для заполнения таблиц фактов и измерений в витрине данных были использованы службы трансформации данных (Data Transformation Services, DTS). Таблицы, хранящие данные по каждому из периодов, были объединены в одну таблицу фактов, названную Account_prof_fact и содержащую информацию за все 24 месяца. Таблица фактов содержит приблизительно 13 млн. записей.
Построение OLAP-кубов Далее была создана многомерная база данных OLAP, названная AccountProfitabilityOLAPDatabase, которая содержит 12 кубов одинаковой структуры, но с различными режимами хранения и уровнями агрегирования. Следующая таблица содержит краткую характеристику каждого из 12 кубов. Как уже было отмечено, кубы имеют одинаковую структуру, но режимы хранения и уровни агрегирования у них различны.
Базовая таблица фактов содержит 13 млн. рядов. В следующей таблице приведены описания мер, включенных в кубы.
В следующей таблице приведены описания пяти измерений, которые были включены в кубы - для этого использовались таблицы измерений в витрине данных, организованной по схеме "звезда".
Обработка результатов для каждого режима хранения данныхВсе последующие графики построены для уровней агрегирования 0%, 30%, 60% и 90%, хотя в большинстве случаев используются только значения от 30% до 60% (0% и 90% были включены для сравнения). Напомним, что уровень агрегирования характеризует увеличение производительности обработки запросов по сравнению с отсутствием предварительно рассчитанных агрегатов данных. Время обработки для каждого режима хранения Следующие результаты были получены в результате обработки идентичных по структуре кубов с различными режимами хранения и уровнями агрегирования. Таким образом, можно сделать следующие выводы:
Требуемый объем дискового пространства для каждого режима хранения На следующем графике показано изменение требуемого пространства на диске в зависимости от уровня агрегирования для каждого режима хранения.
Глядя на график, можно заключить, что:
Дисковое пространство для кубов MOLAP и схемы "звезда" Данная таблица показывает объем требуемого места на диске для MOLAP-куба по сравнению с исходной схемой "звезда" (таблица фактов и таблицы измерений) в РСУБД.
Очевидно, что занимаемое OLAP-кубом место составляет примерно 7% от объема, требуемого для схемы "звезда". Даже при 90%-ом уровне агрегирования удается достичь почти такой же степени сжатия. Дополнительное пространство, необходимое для построения MOLAP-куба, зависит от количества уровней в измерении, количества мер и типа данных. Сравнение запросов MDX и SQL Приведенная таблица показывает время обработки запросов MDX и SQL ("Чему равен экономический доход за первые кварталы 1996 и 1997 гг. и разница между ними по каждому из сегментов?").
Очевидно, что MDX-запрос проще и выполняется значительно быстрее. Также можно провести сравнение скорости обработки запросов в разных средах: SQL-запросы, выполняемые на SQL-сервере, и MDX-запросы на OLAP-сервере, хранящем MOLAP-куб. (Каждый запрос выполнялся после перезагрузки сервера, чтобы гарантировать, что в кэше отсутствуют результаты запросов).
Несмотря на то, что подобное сравнение может показаться не совсем корректным, его результаты говорят о том, что использование MDX-запросов и Analysis Services может существенно повысить производительность. Поскольку OLAP-кубы осуществляют хранение предварительно рассчитанных агрегатов, эффективность в OLAP-среде значительно выше, чем при использовании реляционных баз данных. Время выполнения MDX-запросов при различных режимах хранения данныхРассмотрим время обработки для наиболее часто используемых бизнес-вопросов, используя MOLAP, ROLAP, или HOLAP, различные уровни агрегирования, а также "теплый" или "холодный" кэш. "Холодный" кэш означает, что перед выполнением запроса сервер перезагружался и в кэше не содержалось результатов предыдущих запросов; в случае с "теплым" кэшом, результаты запросов сохранялись в кэш-памяти. Время фиксировалось в секундах (не в миллисекундах). Производительность при "теплом" кэше в среднем значительно выше, чем при "холодном". Среднее время обработки ("Холодный" кэш) Информация, приведенная на графике, показывает, что:
Среднее время обработки ("Теплый" кэш) Приведенный график показывает зависимость среднего времени обработки для MOLAP, HOLAP и ROLAP от уровня агрегации в случае с "теплым" кэшем. Таким образом:
Среднее время обработки при "холодном" кэше в сравнении с "теплым" кэшем Данный график показывает, что при "теплом" кэше результат выдается менее, чем за 1 секунду. Вы можете выполнять наиболее частые запросы в качестве пакетного задания сразу после обработки данных куба. В этом случае затрачиваемое время будет меньше. Использование центрального процессора (CPU) при обработке запросов Следующий график иллюстрирует время работы процессора при обработке запросов к MOLAP-, ROLAP-, and HOLAP-кубам. Красным цветом отмечено время работы SQL-сервера, синим - OLAP-сервера. Данный рисунок говорит о том, что:
Некоторые рекомендации по оптимизации производительностиСуществует две категории наиболее эффективных способов оптимизации OLAP-кубов: снижение времени обработки данных OLAP-куба и снижение времени выполнения запросов. Рекомендации по уменьшению времени обработки данных куба Нам удалось снизить время обработки с нескольких часов до пары минут, используя следующие приемы:
Рекомендации по снижению времени обработки запросов Нам удалось оптимизировать время обработки MDX-запросов путем:
Также рекомендуется использовать мастер "Usage-Based Optimization Wizard" для расчета дополнительных агрегатов данных, необходимых для повышения производительности обработки запросов. ЗаключениеВ данной статье мы провели исследование производительности SQL Server 2000 Analysis Services при использовании различных режимов хранения (ROLAP, MOLAP, и HOLAP) и различных уровней агрегирования при использовании больших объемов информации. Основные выводы:
Одним из ключевых преимуществ, которые дает использование Хранилищ данных, является возможность проведения анализа. А одно из основных достоинств интерактивного анализа (иначе - FASMI, Fast Analysis of Shared Multidimensional Information, Быстрый анализ используемой совместно многомерной информации) - возможность использования Analysis Services. Данная статья дает опытное подтверждение высокой производительности кубов, построенных с использованием Analysis Services. Санджай Сони (Sanjay Soni), Уэйн Курц (Wayne Kurtz) |
|
2000-2008 г. Все авторские права соблюдены. |
|