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

Раздача прав в SSAS по таблице в БД. Как?

$
0
0
Добрый день!
Хотелось бы раздать пользователям права в кубе в соответствии с таблицей.
ID City_ID user
1 17 ggg/a.petrovich
2 21 ggg/a.petrovich
3 17 ggg/e.gigerovna
4 24 ggg/e.gigerovna
5 35 ggg/e.gigerovna

Есть ли какая-то возможность так сделать?

Посоветуйте приложения, для визуального конструирования MDX запросов.

$
0
0
Мне нужно приложение, содержащее интерфейс для визуального конструирования запросов MDX, не погружаясь подробно во весь его синтаксис. Чтобы можно было переносит мышью необходимые изменения на строки и столбцы формируемого отчета. А потом, чтобы можно было посмотреть синтаксис MDX запроса.

Открыть табличную модель

$
0
0
Добрый день!
У меня на локальном компьютере установлен SSDT. На удаленном сервере есть табличная модель. Чтобы открыть многомерную модель достаточно перейти открыть=>База данных служб Analysis Servises=> выбрать сервер и базу. А как открыть табличную модель?

Oracle BI. Экспорт анализа

$
0
0
Добрый день!

Есть информационная панель. На одном из анализов есть переход к расшифровке(переход к содержимому BI, drill-down). Необходимо иметь возможность экспортировать данные расшифровке в Excel. Все это реализуется если в свойствах инфопанели включить в "Ссылки на отчеты на инфопанели" включить "Экспорт", но в таком случае на инфопанели возле каждого анализа появляется кнопка Export.

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

Informatica

$
0
0
Как в информатике аварийно завершить workflow если от стартовой процедуры пришел ответ 0, и продолжить выполнение если пришел ответ 1

Как соединитсья с SAP GUI под Windows к каким либо тестовым данным?

$
0
0
Скачал старый SAP GUI 7.40.
Есть возможность сконнектиться с него к каким-то тестовым данным в сети?
Устанавливается при инсталляции локальная база? Есть возможность коннектa к локалъной базе?

Итог по вычисляемому полю

$
0
0
Есть колонка newprice с вычисляемым значением Розничная цена * Остаток шт:

SCOPE([Measures].[newprice]);
SCOPE([Периоды].[Месяц].[Месяц].MEMBERS);
SCOPE([Номенклатура].[Номенклатура - иерархия].MEMBERS);
THIS = [Measures].[Остаток шт] * [Measures].[Цена розничная];
END SCOPE;
END SCOPE;
END SCOPE;

Само значение рассчитывается верно, но итог получается неверный.
Делал по статье https://blog.crossjoin.co.uk/2013/05/29/aggregating-the-result-of-an-mdx-calculation-using-scoped-assignments/
Есть подозрения, что в какой-то SCOPE не верно написан, но вот какой... Может кто-нибудь подсказать?

SSDT for Visual Studio 2019 (Version 3.0 Preview)


Выгрузка отчёта BI Publisher по перечню записей

$
0
0
Доброго дня!
Есть ли возможность реализовать следующие требования средствами BI Publisher?
- есть отчёт BI Publisher с тремя параметрами запуска
- есть таблица из трёх полей со множеством записей в ней
Требуется для каждой записи таблицы подставить значения этих полей в соответствующие параметры запуска и получить результат работы отчёта.
Важно - результат каждого запуска отчёт с отдельными параметрами должен быть выгружен в отдельный файл (т.е. имена файлов в папке выгрузки должны иметь разные имена - пусть в них будет уникальный набор параметров запуска отчёта).
И если это возможно, то как реализовать?

При выгрузке из bi publisher в excel в данных вылетает пустой столбец

$
0
0
Добрый день!
Сделал шаблон в формате rtf, загрузил в publisher. Отчёт рисуется корректно, но в одном из периодов рисуется пустая колонка. Она не четко в одном месте может быть, к примеру, если выбрать другие периоды в фильтре - колонка может нарисоваться в другом месте.
Подскажите, пожалуйста, как решить эту багу?
Скриншоты прилагаю.

Разбивка факта на Dim и Fact

$
0
0
Всем привет!
Есть вопрос, интересно мнение сообщества, не могу найти примеры подобной реализации.
Есть хранилище, на нем табличная модель SSAS и Power BI, вопрос в реализации измерений.
Есть такая воронка заявка - кредит - транзакция. Заявок много, млн 20 и быстро растет, кредитов % 10 от заявок, транзакций тоже 20 млн. Так вот, есть измерения у которых есть бизнес ключ в источнике, это просто, id клиента, id geo данных (город и т.д.), а что делают обычно если нужны аттрибуты заявки которые в источнике лежат прям в факте, т.е. заявки в источнике это широченная таблица (там нарушены все нормальные форма, но это другой разговор)
Пример тут https://www.sql.ru/forum/1311409/power-bi-kak-svyazat-2-sreza
К примеру у заявки есть куча разных аттрибутов, из примера выше Repeat Sale (1,0), Channel и т.д., на самом деле их очень много. Бизнес хочет по ВСЕМ этим аттрибутам фильтровать всю воронку, т.е. я выбираю Channel = Mobile и вижу кол-во заявок, сумму которую хотели получить (цифра в заявке), кол-во контрактов, сумму контрактов и сколько было выплачено % по ним. Эти атрибуты есть только в заявке, в источнике в контракте только ID заявки, а в транзакции ID контракта. Вроде как заявка получается как Dim, но уж очень она большая выходит, и нужен ее анализ, т.е. сколько создали, суммы, шаги (в факте заявок есть разные даты, вроде отправки смс и прочее). Как сейчас, 1 шагом гружу в стейдж все заявки, потом формирую справочник, а именно выбираю нужные столбцы (channel, repeat sale и прочее), группирую (т.е. это и будет бизнес ключ) и делаю Merge DimAppAttribute, через Identity получаю суррогатный ключ, потом когда гружу факты, делаю Lookup по каждому полю чтобы получить суррогатный ключ атрибутов. Потом гружу контракты, и делаю Lookup к фату заявок, чтобы получить ключ DimAppAttribute. Как-то так.
Больше всего последнее смущает, обращаюсь к факту как к Dim, но не вижу смысла делать заявки измерением, во первых они здоровые, во вторых по требованию (анализ который необходим) это факт и в 3х к одному контракту только 1 заявка идет, поэтому все что мне нужно это только ее атрибуты для анализа, чтобы видеть по ним воронку.

Табличная модель условие в мере

$
0
0
Добрый день!
Есть Табличная модель, которая состоит из двух таблиц фактов и 4 справочников. В таблице фактов 1 создана вычисляемая мера Остатки sum(), В таблице фактов 2 создана вычисляемая мера Средний заказ, немного сложнее (подсчет среднего за последние 30 дней). Попыталась создать такую меру: %:=if([остатки]/[средний заказ]>1;1;[остатки]/[средний заказ]), но при подключении к кубу из excel эту меру достать не получается, так как ругается на то, что закончилась память. Можно ли как то этой обойти?

olap mdx вычитание множеств (разность множеств)

$
0
0
не могу понять, как решить такую задачу средствами ssas:
примерно такая схема:

клиенты clients ()
данные о продажах этим клиентам sales (client_id)
наименования множеств sets ()
значение множеств SetValues (set_id, client_id)


хочется каким-то способом работать с множествами (вычитание, пересечение)
т.е. к примеру вывести клиентов, которые есть в множестве 1 и нет в множестве 2.

средствами sql как решать такую задачу - понятно:

select count(*) from SetValues
where set_id = 'E5165B22-1E1A-43E6-AC04-AA3E00BA6F25'
and client_id not in(select client_id from SetValues where set_id = 'FF483489-27EC-4889-B6AE-AA3E00BA679A')

а как аналогичное сделать на mdx ? хотя-бы с какой стороны заходить? думал что except для этого предназначен, не оно.

Фильтрация атрибутов измерения по значению меры

$
0
0
Коллеги, добрый день!
Подскажите, пожалуйста, как правильно разрулить такой кейс:
Есть некое измерение, например город
Есть две меры, которые бьются по этому измерению, выручка и затраты.

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

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

Такой кейс правильно решать с использованием SCOPE?
Заранее спасибо за помощь.

Большая просьба удалить модераторам/администратору 3 последние созданные темы

$
0
0
Infornatica
Informatica Как автоматизировать экспорт/импорта обьектов из одной среды в другую
Как для информатики прописать в odbc.ini сязь с Excel

olap вычисляемая мера

$
0
0
Здравствуйте!
Прошу помощи с такой задачей:
есть две группы мер: Unique Articles, в которой мера Articles Unique Count с функцией агрегирования DistinctCount и группа мер Unique Companies, в которой есть мера Companies Unique Count также с функцией агрегирования DistinctCount. Необходимо реализовать вычисляемую меру: уникальное количество артикулов, для которых уникальное количество компаний больше двух. Сколько я не пытался реализовать вычисления используя только эти две меры Articles Unique Count и Companies Unique Count, у меня ничего не вышло. Получилось решить задачу только добавлением в источник-запрос поля, в котором для каждого артикула проставлен флаг, существует ли для него две и более уникальных компаний, плюс добавил измерение с двумя элементами 0 и 1, следующее вычисление отображает верный результат:
CREATE MEMBER CURRENTCUBE.[Measures].[Articles PCS Companies gt 2]
AS 
    ([Measures].[Articles Unique Count], [Is Company Count gt 2].[Is Company Count gt 2].&[1]), 
FORMAT_STRING = "#,#0", 
VISIBLE = 1 ,
ASSOCIATED_MEASURE_GROUP = 'Prices';

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

Реализовать аналог LastNonEmpty в MDX

$
0
0
Доброго времени суток спецы MDX.

Установлен Ms2012 Standart, в связи с чем не работает такая функция как LastNonEmpty.
В таблице с движениями и остатками (движения +остаток на 1 число каждого месяца) создан столбец "Остаток0" (по умолчанию значение NULL).

Ранее (при реализации Olap на другой работе) применял к "Остаток0" - LastNonEmpty, а затем определял результат в мере (см ниже);

([Дата].[День].[День], [Measures].[Остаток0]) = sum(mtd(), [Measures].[Движения])

все работало, сейчас возможности применить LastNonEmpty НЕТ, попробовал применить LastChild, но результат не тот....

Подскажите, как можно реализовать LastNonEmpty в мере, если можно, то русскоязычным примером.

Данная мера считает остаток на каждый день за выбранные период. Использую mtd(), так как, это быстрее чем считать движения с начала времен.

MDX-запрос

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

Есть справочная таблица.

+ Справочная таблица
Дата День недели Даты Соответствующая дата предыдущего года День недели соответствующей даты предыдущего года Номер недели
29.04.2019 Пн 30.04.2018 Пн 5
30.04.2019 Вт 01.05.2018 Вт 5
01.05.2019 Ср 02.05.2018 Ср 1
02.05.2019 Чт 03.05.2018 Чт 1
03.05.2019 Пт 04.05.2018 Пт 1
04.05.2019 Сб 05.05.2018 Сб 1
05.05.2019 Вс 06.05.2018 Вс 1
06.05.2019 Пн 07.05.2018 Пн 2
07.05.2019 Вт 08.05.2018 Вт 2
08.05.2019 Ср 09.05.2018 Ср 2
09.05.2019 Чт 10.05.2018 Чт 2
10.05.2019 Пт 11.05.2018 Пт 2
...............

Нужно выгрузить такую таблицу
Региона города Город 2019 (заданный период) 2018 (соответствующие даты) 2019 (соответствующая неделя)
Регион города1Город1 40 50 30
Регион города1Город2 50 60 20
Регион города2Город3 40 65 30
Регион города2Город4 30 50 20
...............

Суть заключается в том, что по каждому городу сравниваются количество ТТ для заданного периода (Мера1) с соответствующими днями предыдущего года (Мера2) с учетом дня недели и высокосного года. А также соответствующие даты последней недели в заданном периоде (Мера3). Номер недели начинается с первого числа месяца, нумерация по пн. См. пример ниже.

Логика выгрузки следующая. Нужно выгрузить с 1 по 7 мая 2019. Для первой меры это с 1 по 7 мая 2019 как и по условию. Для второй меры это с 2 по 8 числа 2018 года. А в третьей мере - окончание периода это 7 мая 2019 года и по справочной таблице это 2 неделя, то берется даты последней недели в заданном периоде: 6 и 7 мая 2019 года.

Таким образом, в запросе в фильтре задаем период с 1 по 7 мая 2019, а все остальное подтягивалось автоматически согласно формулам.

Предполагаю, что справочную таблицу можно задать ввиде формулы в MEMBER. Дни недели не нужно прописывать в формуле, так как это для информации и понимание примера. Пробую все сделать в MDX-запросе - запутался. Не знаю реализуема ли такая задача или нет.

+ MDX-запрос
WITH
MEMBER [Время].[Месяц].[Заданный период] AS
	AGGREGATE ({[Время].[Дата].&[2019-05-01T00:00:00]:[Время].[Дата].&[2019-05-07T00:00:00]})
MEMBER [Measures].[Отгрузки количество ТТ 2019] AS
	([Measures].[Отгрузки количество ТТ],[Время].[Месяц].[Заданный период])
//MEMBER [Measures].[Отгрузки количество ТТ 2018. Соответствующие дни] AS
//MEMBER [Measures].[Отгрузки количество ТТ 2019. Соответствующая неделя] AS
SELECT
{[Measures].[Отгрузки количество ТТ 2018]}
ON 0,
[Города].[Регион города].[Регион города]*
[Города].[Город].[Город]
ON 1
FROM
	(SELECT 
		([Время].[Год].&[2018-01-01T00:00:00]:[Время].[Год].&[2019-01-01T00:00:00],
                 {[Продукция].[Общий бренд].&[5],
		           [Продукция].[Общий бренд].&[11],
		           [Продукция].[Общий бренд].&[18]},
                  [Торговые точки].[Тип клиента].&[2])
	ON 0 FROM PROFIT)

Скажите, по такой задаче реально написать MDX-запрос? Если да, то как правильно написать MDX-запрос?

Power BI. Фильтр

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

Имеется простой работающий MDX-запрос. В субкубе задан фильтр.

SELECT
      {[Measures].[Отгрузки шт]}
ON 0,
NON EMPTY
      [Города].[Город].[Город]*
      [Торговые точки].[Тип клиента].[Тип клиента]*
      [Торговые точки].[Клиент].[Клиент]*
      [Торговые точки].[Код ТТ].[Код ТТ]
ON 1
FROM
	(SELECT ([Время].[Месяц].&[2019-04-01T00:00:00],
	{[Торговые точки].[Тип клиента].&[2],
		[Торговые точки].[Тип клиента].&[1]},
	[Продукция].[Тип продукции].&[1]
	) ON 0 FROM PROFIT)


Этот MDX-запрос можно вставить в Power BI при создании подключении.

Есть второй вариант, если создавать подключение через конструктор (не вставляя MDX-запрос), то выбираем меру [Measures].[Отгрузки шт] и атрибуты [Города].[Город], [Торговые точки].[Тип клиента], [Торговые точки].[Клиент], [Торговые точки].[Код ТТ]. Потом в Power Query задаем фильтр (нужный месяц, Типа клиента и тип продукции), то есть создаем шаг "Строки с примененным фильтром".

Скажите, при втором варианте сначала в Power BI все строки выгружаются и потом фильтруется. То есть второй вариант сильно загружает Power BI? Или строки выгружаются после заданных фильтров? Важно понимать преимущества и недостатки каждого варианта.

Dax в Mdx

$
0
0
Всем привет, помогите пожалуйста...

Есть куб табличной модели, мне необходимо составить MDX запрос (по факту вычисляемый показатель в екселе), который будет отображать для каждой товарной позиции количество документов, в строках которых товар был продан свыше определенного количества. В одном документе товар не может дублироваться.
Т.е. мне нужен эквивалентный листинг запроса DAX на MDX. Предположим, что граница выборки по каждому документу составляет 100 штук, тогда формула (запрос) DAX будет выглядеть так:

Evaluate
     
	AddColumns( Values( 'Товары'[Код товара])
              , "CountDoc"
              , CalCulate( DistinctCount( 'Документы'[Номер документа])
                         , 'Документы'[ProductQuantity] > 100
                         )
              )


Создав меру X, я буду получать нужный мне результат на всех осях куба, в разрезе каждого товара, но как это сделать в MDX (прописать вычисляемый показатель) я ХЗ

X:= if( CountRows( 'Товары') = 1
      ; CalCulate( DistinctCount( 'Документы'[Номер документа])
                 , 'Документы'[ProductQuantity] > 100
                 )
      )
Viewing all 1167 articles
Browse latest View live