Quantcast
Channel: SQL.ru: OLAP и DWH
Viewing all 1167 articles
Browse latest View live

Calculations: Продажи за 7 дней.

$
0
0
Приветствую.

В MS OLAP присутствует измерение [Дата] типа Time, в этом измерении есть иерархия [Г-М-Д], так же есть мера [Продажи]

Есть задача сделать вычисляемое измерение [Продажи 7] по расчету продаж за 7 дней.
Например, если в фильтре измерения [Дата] указать период Ноябрь 2018, то берется последний день из выбранного периода (30.11.2018) и в измерение [Продажи 7] попадают данные по продажам за период с 24.11.2018 по 30.11.2018.

Смотрел в сторону функции Lag(), но правильно написать MDX не выходит.

Нужна помощь.

Power BI. Добавление столбца

$
0
0
Здравствуйте!

В приложении Power BI прописан MDX-запрос. Когда заходишь "Изменить запросы" - "Добавление столбца" - "Настраиваемый столбец", то после ввода формулы показывает ошибку. По синтаксису DAX вроде правильно. Но отображает ошибку, якобы функцию не узнает.

PowerBI: скрыть элементы из фильтра возможно?

$
0
0
Исходная таблица
Человек качество ...
ВаняХороший...
ПетяПлохой...
ВасяПлохой...
Лёняnull...

Скинул элемент "фильтр". Там получилось три пункта:
- (Пусто)
- Хороший
- Плохой

И рядом скинул элемент "таблица", отображающая результат.

Могу выбрать любую из галочек или несколько, и таблица соответственно отфильтруется.

Вопрос:
Можно ли убрать пункт "(пусто)"? Чтобы если выбрал "плохой", произошла фильтрация по плохим (и в таблице осталось 2 строки), а если не выбрал ничего, то и фильтрации в таблице никакой не произошло (т.е. пустые тоже бы отображались, в таблице все 4 строки).

Power BI. Поиск решения

$
0
0
Здравствуйте!

Была задача разработать инструмент, который формирует нужный отчет. Мог написать макрос, который при нажатии кнопки выгружает данные с помощью MDX-запроса и формирует нужный отчет, но выбрал решение делать через Power BI, так как там удобный инструментарий. Ожидал, что в ближайшее время другие сотрудники смогут смотреть отчет в SharePoint 365 Online. Но закупка лицензии в плане через несколько месяцев.

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

1. Все таки есть программа Power BI Desktop, где там все настраивается и обновляется через Power Query и Dax. Может есть возможность до закупки лицензии сотрудник обновляет данные в программе Power BI Desktop, сохраняет файл представления и этот файл другие сотрудники открывают и видят отчет?

2. У меня в экселе есть надстройка Power BI. Во вкладке Power BI нажимаю на "Подключиться к данным Power BI" - появляется диалоговое окно "Подключение к данным Power BI". Там выбираю нужную рабочую область, тип данных и выбираю проект. Появляется сводная таблица. Но если сохранить и отправить другому сотруднику, то почему то не у всех обновляется сводная таблица. Непонятно.

3. Также в экселе есть надстройка Power Query. Во вкладке "Power Query" нажимаю "Из базы данных" - "Из базы данных служб SQL Server Analysis Services". Ввожу название сервера и базы данных, а также MDX-запрос. Но там не вижу, чтобы можно добавить столбец или меру, то есть отсутствует Dax. Хотя в Power BI присутствует.

Какие есть еще решения, рекомендации?

Сумма значений: неуникальные считать только один раз

$
0
0
Всем доброго времени суток.

Рабочий инструмент: Excel и Management Studio

Имеется информация следующего вида:

"Событие А" id | "Событие Б" id | "Значение B" | "Значение Г"
-----------------------------------------------------------------------
___1_________|___1__________|___1________|___5

___2_________|___4__________|___1________|___10

___3_________|___1__________|___1________|___5

___4_________|___5__________|___1________|___null

"Событие А" и "Событие Б" - разные сущности.
"Значение B" и "Значение Г" - Тип агрегации "SUM" (сейчас)
"Значение B" - фактически это количество "Событие Б"

Надо:
Если убрать "Событие А", должно остаться

"Событие Б" id | "Значение B" | "Значение Г"
-----------------------------------------------------------------------
___1__________|___2________|___5 ( "Значение Г" выводим только для ОДНОГО "Событие Б" )

___4__________|___1________|___10

___5__________|___1________|___null


Если потом еще убрать "Событие Б", должно остаться

"Значение B" | "Значение Г"
-----------------------------------------------------------------------
___4________|___15 (то есть "Значение Г" должно равняться значению ОДНОГО "Событие Б": 5+10+null )
-----------------------------------------------------------------------

Прошу посильной помощи.
С уважением

(SSAS Tabular) refresh interval settings

$
0
0
Всем привет, давно меня тут не было. :)

Готовлюсь к экзамену 70-768, в списке тем такая есть, применительно к Tabular:

Configure tabular model storage and data refresh, configure refresh interval settings

Может я чего-то упустил, вообще не понимаю, где это может настраиваться? В документации ни слова про refresh interval не нашел. Вроде как если DirectQuery - то напрямую к данным лезем, если In-Memory - сидим в памяти и ждем пока перепроцессят.

Или это философский вопрос на тему DirectQuery vs In-memory?

Просьба кинуть ссылку на доку или на статью какую, если кто понимает, о чем это.

Какой аркистратор для job вы используете?

$
0
0
Встал вопрос выбора аркистратора для ELT.
Что посоветуете?

Объединение элементов в сложной структуре

$
0
0
Здравствуйте!

Есть работающий сложный MDX-запрос. Выгружаются количество отгруженных ТТ по трем SKU. Учитывая следующие логические нюансы:

1. SKU1 нужно выгружать за 47 и 48 неделю 2018 года; - это первая группа SKU
2. SKU2 нужно выгружать за 48 неделю 2018 года; - это вторая группа SKU
3. SKU3 нужно выгружать из SKU3_1 или SKU3_2 за 48 неделю 2018 года. - это вторая группа SKU
+MDX-запрос
WITH
//Агрегация SKU
MEMBER [Продукция].[Общее наименование SKU].[_SKU1] AS
	AGGREGATE ({[Продукция].[Общее наименование SKU].&[SKU1]})
	
MEMBER [Продукция].[Общее наименование SKU].[_SKU2] AS
	AGGREGATE ({[Продукция].[Общее наименование SKU].&[SKU2]})
	
MEMBER [Продукция].[Общее наименование SKU].[_SKU3] AS
	AGGREGATE ({[Продукция].[Общее наименование SKU].&[SKU3_1],
		[Продукция].[Общее наименование SKU].&[SKU3_2]})


//Агрегация Годы для первой группы SKU
MEMBER [Время].[Год].[_Годы для первой группы SKU] AS
	AGGREGATE ({[Время].[Год].&[2018-01-01T00:00:00]})

//Агрегация Недели для первой группы SKU
MEMBER [Время].[Неделя года].[_Недели для первой группы SKU] AS
	AGGREGATE ({[Время].[Неделя года].&[47],[Время].[Неделя Года].&[48]})

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


//Агрегация Год и Неделя для первой группы SKU
MEMBER [Время].[Год].[_Период для первой группы SKU] AS
	([Время].[Год].[_Годы для первой группы SKU],[Время].[Неделя года].[_Недели для первой группы SKU])

//Агрегация Год и Неделя для второй группы SKU	
MEMBER [Время].[Год].[_Период для второй группы SKU] AS 
	([Время].[Год].&[2018-01-01T00:00:00],[Время].[Неделя Года].&[48])

	
//Получаем конечные меры по каждой SKU
MEMBER [SKU1] AS
	SUM ({([Продукция].[Общее наименование SKU].[_SKU1], [Время].[Год].[_Период для первой группы SKU])},
		[Measures].[Отгрузки количество ТТ])

MEMBER [SKU2] AS
	SUM ({([Продукция].[Общее наименование SKU].[_SKU2], [Время].[Год].[_Период для второй группы SKU])}*
		[Measures].[Отгрузки количество ТТ])

MEMBER [SKU3] AS
	SUM ({([Продукция].[Общее наименование SKU].[_SKU3], [Время].[Год].[_Период для второй группы SKU])}*
		[Measures].[Отгрузки количество ТТ])


SELECT 
	{[Пирожное Муравейник], [Тирамису],[Пломбирный]} ON 0,
NON EMPTY
	[Города].[Город].[Город]*
	[Города].[Регион города].[Регион города] *
	[Торговые точки].[Клиент].[Клиент] *
	[Торговые точки].[Группа ТТ].[Группа ТТ] *
	[Торговые точки].[Тип клиента].&[2] *
	[Торговые точки].[Код ТТ].[Код ТТ] *
	[Торговые точки].[Адрес ТТ].[Адрес ТТ] *
	[Торговые точки].[Регион ТТ].[Регион ТТ]
ON 1
FROM 
	[Profit]
В общем, весь запрос выгружает 30 050 строк за 30 минут. Без выделенных двух атрибутов выгружает за 46 секунд.

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


Следующая запись сделана для того, чтобы учесть, если будет задан такой период как 52 неделя 2017 года и 1 неделя 2018 года для первой группы SKU.
+MDX-запрос. Фрагмент
...
//Агрегация Годы для первой группы SKU
MEMBER [Время].[Год].[_Годы для первой группы SKU] AS
	AGGREGATE ({[Время].[Год].&[2018-01-01T00:00:00]})

//Агрегация Недели для первой группы SKU
MEMBER [Время].[Неделя года].[_Недели для первой группы SKU] AS
	AGGREGATE ({[Время].[Неделя года].&[47],[Время].[Неделя Года].&[48]})

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


//Агрегация Год и Неделя для первой группы SKU
MEMBER [Время].[Год].[_Период для первой группы SKU] AS
	([Время].[Год].[_Годы для первой группы SKU],[Время].[Неделя года].[_Недели для первой группы SKU])

//Агрегация Год и Неделя для второй группы SKU	
MEMBER [Время].[Год].[_Период для второй группы SKU] AS 
	([Время].[Год].&[2018-01-01T00:00:00],[Время].[Неделя Года].&[48])
...
Вопрос 2. Но почему то считает количество ТТ немного больше, чем нужно. Похоже не правильно агрегировал. Скажите, как правильно надо агрегировать периоды для данного случая?

Эксель не видит OLAP кубик

$
0
0
Всем привет,

проблемка произошла - эксель резко перестал видеть эксель кубик.
Условия:

- Кубик работает довольно давно;
- я админ на OLAP сервере. И на самом сервере и на OLAP службе;
- кубик видно через SSMS и он работает. Т.е. есть измерения суммы, все вычисляется;
- кубик НЕ видно через Excel. Видно базу, но куба в базе нет;
- сломался неожиданно;

Из-за того, что я админ, вариант с правами доступа отпадает. Тут что-то другое.


Покиньте идеи пожалуйста.
Спасибо.

Вертикально или горизонтально?

$
0
0
Коллеги,

Как только команда DWH/BI разрастается до нескольких человек возникает вопрос, как её структурировать.

Чаще всего видел такие варианты.

1. Вертикально по направлениям: пара человек на продажи, один на склад и т.д. Каждый пилит всё: выгрузку из источников, семантический слой и отчеты.

2. Горизонтально по функционалу. Пара-тройка человек на ETL, пара-тройка на кубы или модели и отчеты.

(Тестеры, аналитики и руководство пусть остануться за скобками)

Один раз встретил экзотику, когда хранилище пилили одни люди, а модели и кубы строили аналитики в бизнес-подразделениях.

Какой у вас опыт?
Что наиболее оптимально? (Может уже всё совсем по-другому в новых проектах, а я отстал от жизни)

MDX. Помогите создать меру

$
0
0
Всем доброго дня.

Помогите создать меру в кубе.

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

Если в Managment Studio на этом столбце создать меру с использованием "Подсчет различных значений", то при наличии NULL процессинг падает с ошибкой "Неверный прядок сортировки, указанный для подсчетов индивидуальных записей". Если вместо NULL ставить заведомо неправильное значение, то оно будет влиять на результат, увеличивая его на 1. Вычитать эту единицу будет неправильно, так как есть ситуации, когда все значения будут уникальны и среди них не будет заведомо неправильного.

Я думаю, что здесь нужно создать вычисляемый элемент, но у меня не получается.

С уважением

obiee 12c Как сделать маркеры данных на графике разного цвета для различных показателей?

$
0
0
Здравствуйте. Не могу найти как сделать маркеры данных на графике разного цвета для различных показателей.
В настройках нашел только общие параметры, т.е. можно задать цвет/шрифт, но применяется это для всех линий на графике

Модель данных для хранилища на Hadoop

$
0
0
Кто-нибудь встречал толковое описание (можно на англ.) подходов к моделированию ХД на Hadoop (в Data Lake, HDFS, S3, GCS, кому что ближе). Только структурированные данные. Т.е. загрузили файлы в RAW область, а дальше очистка/интеграция/консолидация с сохранением в отдельные области тоже в файлы. Что-то аналогичное Data Vault/Dim Modeling/Anchor в случае реляционных ХД.

Почему удаляются файлы раздела при обработке измерения

$
0
0
Здравствуйте.

В кубе есть группа мер, которая разбита на разделы. Для всех разделов используется один и тот же AggregationDesign.

Каждый день обрабатываются измерения куба (Process Update) и последний раздел группы мер (Process Full).

Заметила, что после обработки измерений в папках старых разделов, которые не обрабатываются ежедневно, исчезают файлы с расширениями agg.flex.data, agg.flex.map и сегодня исчезли все файлы, относящиеся к одному из измерений (....Измерение.Св-во.fact.map). После полной обработки раздела все файлы восстанавливаются.

Проблема в том, что с некоторого момента разделы становятся вообще недоступными (выдает #ЗНАЧ вместо данных), пока их заново не обработаешь.

Подскажите, пожалуйста, в чем может быть проблема. Может быть, где-то неправильно что-то настроено, или спроектировано.
Такое удаление файлов - это нормальное поведение системы? Они не должны восстанавливаться после обработки измерений?

Ограничить количество строк при подключении к OLAP-кубу

$
0
0
Коллеги, вопрос. Как можно ограничить количество строк (на уровне SSAS), которое получают пользователи при подключении к SSAS? Некоторые пользователи очень любят строить простыни в Экселе по 600 тыс. строк и 20 столбцов и потом жаловаться на тормоза.
Спасибо.
SSAS 2014 Enterprise. Excel 2013x64

ROLAP мера пустая

$
0
0
3 день бьюсь, все сломал уже.
Переделал MOLAP на ROLAP из 20 мер, 1 null
Возвращаю ее на MOLAP есть OK ( 1 партиция)
Куда копать?

Спасибо

oracle bi: передать Impersonator_user_name в качестве переменной

$
0
0
Всем привет, с наступающим! )

Есть у нас сессионные переменные в BI, а есть переменные самого репозитория. Хотелось бы Impersonator_user_name из s_nq_acct пробросить до выполнения отчета, чтобы на его основании установить на сессию некие ограничения. Понять не могу как это сделать? Переменной такой в доке не вижу т.е. как :User не прокинуть видимо. Сообразить не могу как реализовать подобное?

Снова DistinctCount в SSAS

$
0
0
Всем доброго времени суток.

Пытаюсь оптимизировать кубик, выявил что основные тормоза из за мер DistinctCount.
Начал наблюдать их в profiler и заметил что если не выбран не один фильтр, то чтение данных из секции происходит 1 раз
При выборе некоторых фильтров, заметил что секция данных начитывается порядка 100 раз во время выполнения запроса.
Теперь пытаюсь понять чем отличаются одни атрибуты от других.
Есть у кого нибудь мысли зачем начитывать одну секцию по 100 раз?

Запрос идет из Экселя, выбрана одна физическая мера DistinctCount и один атрибут который может принимать значение 0/1(Да/Нет) , секция начитывалалсь больше 100 раз , скрин из profiler прилагаю

OBIEE 11.1.1.9 Enable Hints

$
0
0
Добрый день!
Подскажите, что надо, чтобы поле Hint стало активным в Admin Tools?
В phisical table его даже нет, в ключах и джойнах - неактивно.
Заранее спасибо!

PowerBI: правильная огранизация данных, когда таблиц фактов несколько штук

$
0
0
Есть некоторые общие параметры типа перечисленных на картинке.

Схема построена и отчёты будут работать.
Но с одним минусом: Невозможно выбрать год "2019", чтобы заказчики и исполнители отфильтровались.
Или выбрать исполнителя, и чтобы в результате отфильтровались заказчики, дико огромный список сократился бы до 4 человек, от которых у него были заказы И/ИЛИ были доходы

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

ПЛЮС могут быть фильтры, специфичные для "доходов" (например, "тип дохода") или для заказов (например, "ЗТип").
Если слить всё в одну таблицу, то это получится бардак. Если потребуется добавить ещё одну таблицу фактов, кучу всего переделать придётся...

В общем, как решается?
Viewing all 1167 articles
Browse latest View live