Katmai June CTP – закладка Attribute Relationships

Автор: Mosha Pasumanski
Дата публикации оригинала: 2007-06-07
Источник: Блог Mosha Pasumanski

К настоящему времени каждый знает, что впервые для широкой публики CTP Katmai было выложено на сайте Microsoft connect. Это сопровождалось документацией о том, какие новые возможности ожидаются в SQL 2008. Но эта документация в какой-то степени слишком высокого уровня, а также в ней не говорится о том, какая часть планируемой функциональности включена в June CTP, а какая нет. Я хочу описать одну возможность для Analysis Services. Читать дальше »

Опубликовано 12.02.2009 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, На русском, Разработчик приложений BI

Отклонение бюджета – Изучение оптимизаций MDX: режимы оценки и NON_EMPTY_BEHAVIOR

Автор: Mosha Pasumansky
Дата публикации оригинала: 2006-11-05
Перевод: Андрей Бабуров
Источник: Блог Mosha Pasumansky

Самое главное при построении OLAP систем – это быстродействие. Это подтверждают разные сообщения в новостных группах и форумах. Можно сказать, что наиболее частый вопрос, который задают люди – «Как оптимизировать следующий MDX…». Оптимизация MDX – это и наука и искусство. Она требует смесь знаний конструкций MDX, знакомство с концепцией UDM и некоторое базовое понимание того, как работает оптимизатор запросов. Но самым сложным я нахожу понимание реальной проблемы, скрывающейся за вопросом. Большинство из них требуют глубокого погружения в конкретную модель и хорошие знания бизнес логики и требований. Часто эти детали делают настолько неясными технические вопросы, что никто сразу не предложит правильного решения (конечно, если я не понимаю вопрос после прочтения, то вряд ли включусь в обсуждение) или начнется длительное обсуждение, которое обрастет дополнительными деталями и уточнениями. И в конце, даже если ответ правильный и улучшает производительность, то все равно не просто уловить суть идеи оптимизации и обобщить ее для использования в других случаях. Читать дальше »

Опубликовано 20.11.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Архитектор BI, Для начинающих, Для продвинутых, Для экспертов, На русском, Разработчик приложений BI 1 комментарий

Средние величины, отношения, деление на ноль и NON_EMPTY_BEHAVIOR

Автор: Mosha Pasumansky
Дата публикации оригинала: 2007-03-06
Источник: Блог Mosha Pasumansky

Как добиться хороших результатов при расчёте средних величин и других величин, основанных на отношениях, в MDX? Я думал, что детально раскрыл эту тему ранее, но, вероятно, я не был достаточно конкретен. На прошлой неделе меня попросили помочь с выполнением работ для очень крупного и важного клиента (который должен был остаться неназванным). Когда я прибыл на место, то увидел, что персонал, занятый в данном проекте, хорошо осведомлён об Analysis Services и MDX. Модель была разработана в соответствии с лучшими традициями, они изучали Руководство по эксплуатации и внедряли все соответствующие изменения. Тем не менее, они не могли добиться того, чтобы очень простой расчёт средней величины в MDX выполнялся с хорошей производительностью в отчётах Excel среднего размера. Читать дальше »

Опубликовано 13.11.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, На русском

Drillthrough на вычисляемых мерах

Автор: Mosha Pasumansky
Дата публикации оригинала: 2008-09-01
Источник: Блог Mosha Pasumansky

Drillthrough – это отличная особенность Analysis Services, но она имеет ограничения – drill through можно применить только к ячейкам без вычислений. Это автоматически приводит к невозможности выполнения операций drill through на вычисляемых элементах, в общем, и вычисляемых мерах, в частности. Это ограничение было предметом широких дебатов на формуах и в блогах. Оно было занесено в журнале на connect-сайте как предложение “Enable drillthrough on calculated measures”, где оно получило сильную поддержку. А конкуренты также борются с подобными проблемами.

Пока не существует универсального решения этой проблемы, в данной статье мы покажем, как много практических частных случаев могут быть решены в AS 2005. Для начала давайте определим, что значит drill through на вычисляемых мерах. Читать дальше »

Опубликовано 23.10.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, На русском, Разработчик приложений BI 1 комментарий

Как обнаружить подзапрос внутри вычислений MDX (aka Множественный выбор в Excel 2007)

Автор: Mosha Pasumansky
Дата публикации оригинала: 2007-09-26
Перевод: Андрей Бабуров
Источник: Блог Mosha Pasumansky

Тема множественного выбора в вычислениях популярна на форумах. Я писал об этом ранее здесь. В феврале 2008 года (данная статья написана в 2007 г – прим. ред.) я напишу в блоге как AS2008 будет с этим работать. Но в тоже время поступают вопросы по AS2005. Сейчас многие в работе используют EXISTING в выражении WHERE для определения условия на множество в запросе, однако такая конструкция порождает много подзапросов, при использовании ее в Excel 2003 и других приложениях. Excel 2007 для множественного выбора использует скрытые подзапросы. Их присутствие не обнаруживается ни с помощью EXISTING, ни с помощью другой функции MDX. Стандартный подход для обнаружения подзапросов всегда был таким: использовать именованные множества на уровне запросов, потому что они неявно существуют в подзапросах. Но, это утверждение не применимо к Excel 2007, потому что пользователь может только контролировать формулы для вычислений внутри MDX запроса.
Читать дальше »

Опубликовано 13.10.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, Для экспертов, На русском, Разработчик приложений BI

Производительность MDX-функции IIF

Автор: Mosha Pasumansky
Перевод: Александр Орловский
Дата публикации оригинала: 2007-01-28
Источник: Блог Mosha Pasumansky

Функция IIF одна из наиболее популярных функций MDX (что было подтверждено этими исследованиями). Еще она может значительно снизить производительность, в чём часто обвиняют другие части системы. Во многих случаях можно переписать выражение MDX так, чтобы избавиться от IIF. В других случаях возможно немного изменить IFF для увеличения производительности. Пока я и другие указывают на этот факт в блогах, сообщениях на форумах, люди продолжают использовать и использовать эту функцию (и делают это неправильно). Что еще хуже, после того, как они видят оператор CASE в примерах и в BOL, люди начинают использовать CASE вместо IIF. С точки зрения производительности CASE всегда хуже, чем IIF. Наконец, IIF можно в некоторых случаях оптимизировать, но CASE – никогда. Таким образом, я решил выделить специальный блог, посвященный использованию и демонстрации IIF с примерами как это может быть ужасно и как это можно исправить.
Читать дальше »

Опубликовано 08.10.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, Для экспертов, На русском, Разработчик приложений BI

Воспользуйтесь преимуществом FE-кэширования для оптимизации производительности MDX

Автор: Mosha Pasumansky
Дата публикации оригинала: 2008-03-28
Источник: Блог Mosha Pasumansky

Мы обычно рассматриваем систему кэширования Analysis Services как чёрный ящик, считая, что она сделает как раз то, что нужно для оптимизации выполнения. И в идеальном мире система кэширования должна быть абсолютно прозрачной для конечных пользователей. И, хотя оптимизатор запросов MDX и система кэширования очень продвинуты, они не безукоризненны. В этой статье мы увидим, как с помощью очень простых изменений в MDX мы можем лучше воспользоваться преимуществами кэширования и значительно увеличить производительность расчётов. Читать дальше »

Опубликовано 07.10.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Архитектор BI, Для начинающих, Для продвинутых, На русском, Разработчик приложений BI

Подсчёт дней в MDX

Автор: Mosha Pasumansky
Дата публикации оригинала: 2007-05-27
Источник: Блог Mosha Pasumansky

Измерение Время в OLAP – особенное. Многие функции в MDX обычно приобретают смысл только при их применении к измерению Время (PrevMember, Lag, ParallelPeriod, PeriodsToDate, ClosingPeriod и т.д.); полуаддитивные меры по-другому работают со временем и т.д. Однако сегодня мы поговорим на более простую тему – сосчитаем количество дней в выбранном на настоящий момент периоде времени. Имеются различные способы использования данного показателя, например, вычисление среднего значения по времени (это обычно представляет интерес для инвентарных приложений для получения среднего уровня запасов). Для целей этой статьи мы будем использовать куб Adventure Works и рассчитаем среднее значение [Internet Sales Amount] по измерению [Ship Date]. Мы можем сказать, что для расчёта среднего значения во времени необходимо использовать полуаддитивную меру AverageOfChildren. Это верно с двумя оговорками. Читать дальше »

Опубликовано 30.09.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, Для экспертов, На русском 1 комментарий

Анализ активных событий в MDX

Автор: Mosha Pasumansky
Перевод: Андрей Бабуров
Дата публикации оригинала: 2007-06-01
Источник: Блог Mosha Pasumansky

Измерение типа «Время» находятся на особом счету в OLAP-технологиях и хранилищах данных (DWH). Классические задачи, которые приходится решать - это выборка из предыдущего периода, параллельного периода, расчет скользящего среднего (simple moving average) и нарастающего итога (running total).

В этой статье мы рассмотрим менее распространенную, но не менее интересную задачу - анализ событий, которые описываются более чем одной характеристикой времени. Например, у маркетинговой компании есть дата начала и дата окончания; полеты характеризуются временем вылета и прибытия; в примере Adventure works по каждому заказу отслеживается дата поступления, дата перевозки, дата доставки. Мы можем добавить ролевые измерения (role playing dimensions) для времени и включить их в куб (cube). Читать дальше »

Опубликовано 25.09.2008 | Автор сообщения Константин Лисянский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, Для экспертов, На русском, Разработчик приложений BI

Как получить текущую дату в MDX

Автор: Mosha Pasumansky
Перевод: Александр Орловский
Дата публикации оригинала: 2007-05-23
Источник: Блог Mosha Pasumansky

Вопрос в заголовке этого сообщения очень популярен. Существует множество ситуаций, когда желательно выбрать элемент иерархии измерения времени (Time dimension), который соотносится с текущей датой. Иногда желательно установить элемент по умолчанию, соотносящийся с текущей датой. Это особенно актуально для случая, когда измерение времени содержит неагрегируемые атрибуты, такие как «Год» (т.к. не существует элемента «Все годы»). По умолчанию Analysis Services устанавливает элементом по умолчанию одно из значений атрибута Год, но какое - не определено. Таким образом, вместо определения его статическим элементом (например, [Time].[Year].[2005]), кто-то может захотеть указать на текущий год. Другой распространённый сценарий связан с использованием свойства KPICurrentTime, которое часто устанавливается в значение текущего дня. Или, возможно, существуют вычисления в кубе, требующие ссылки на текущую дату.
Читать дальше »

Опубликовано 24.09.2008 | Автор сообщения Александр Орловский | Категории: Business Intelligence, MDX, Microsoft, OLAP, Pasumansky, Mosha, Для начинающих, Для продвинутых, На русском, Разработчик приложений BI 1 комментарий