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

Компания Qlik приобретает производителя систем геоаналитики - компанию Idevio

$
0
0
Компания Qlik завершила приобретение Idevio, которая является поставщиком программного обеспечения и услуг в области географических данных и партнером Qlik. Это приобретение не только расширяет текущие возможности Qlik в области визуализации данных на карте, но и выводит их на новый уровень благодаря поддержке широкого диапазона сценариев использования геоаналитики. Используя запатентованную технологию, которая сжимает и передает картографические данные, пользователи Qlik Sense® и QlikView® теперь могут создавать сложные визуализации данных на карте, а также выявлять скрытые географические связи, чтобы увидеть более полную картину и принимать более грамотные бизнес-решения, основанные на геоинформации.

Даже есть вариант с локальным сервером. Хотя базовые возможности геокодирования уже и так были встроены в Qlik Sense.

Кстати, это никак не умаляет сотрудничества с другими поставщиками геоаналитических систем - c Bisuness Geographics (GeoQlik), c Esri (Arcgis - они в основном на данных специализируются), Орбис и прочими локальными поставщиками геоинформационных систем и сервисов.

С Уважением,
Георгий

Тормозит dynamic security

$
0
0
Есть куб, одно из измерений которого - Номенклатура, количество элементов более нескольких миллионов.
Есть таблица фактов, где каждой номенклатуре прописан пользователь.
Понятно, куча таблиц фактов с продажами и т.д.. В качестве интерфейса используется MS Excel.
Необходимо реализовать доступ пользователей только к тем товарам, к которым у них прописан доступ в таблице фактов.

В dimension data прописываем:

Generate(
NonEmpty(
[Номенклатура].[Товар].[Товар].members,
(
[Measures].[МенеджерыНоменклатура],
StrToMember("[Менеджеры].[Менеджер].&["+username()+"]")
)
),
{
LinkMember (
[Номенклатура].[Товар].CurrentMember,
[Номенклатура].[Товары]
)
}
)

Всё чудно работает!
Но, при подключении на клиенте, зависает на 2-10 минут, в зависимости от количества товаров разрешённых пользователю.
Чем их больше, тем зависание дольше. После подключения всё работает чудно и быстро. Плюс если пользователь находится в админах SSAS, подключение проходит моментально, оно и понятно, ограничений нет - скрипт не запускается.

Можно ли как-то ускорить подключение?

Почему GENERATE генерирует первый символ "0"

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

Для получения списка мемберов я использую такую команду:
generate(existing [Attribute1].members, [Attribute1].Currentmember.Properties("Key"),',')

Но при выборе хотя бы одного мембера первым значением генерирует "0".
Получается строка типа "0, [список меберов, разделенных запятыми]" (0,1,2,3,4)
Даже при выборе мембера с кодом "0" получается строка типа 0,0,.... .

В чем причина первого нулевого значения?

Есть кто из X5 Retail Group?

$
0
0
Вопрос сотрудникам X5, отвечающим за BI-направление.

Такая вот статья вышла (ниже), можно ли как-то скачать обезличенную базу?
Хочу попробовать кубик-другой сделать, но обращаться в ФРИИ и оформлять кучу документов пока желания нет.

http://www.cnews.ru/news/top/2017-02-02_frii_i_x5_hotyat_dat_deneg_startapam_dlya_ritejla
ФРИИ и X5 хотят дать денег стартапам для ритейла


ФРИИ и X5 ищут стартапы

Фонд развития интернет-инициатив (ФРИИ) совместно с крупнейшим холдингом в области продовольственного ритейла - X5 Retail Group (объединяет магазины «Пятерочка», «Перекресток» и «Карусель») - объявили о партнерстве для поиска стартапов в области ритейла.

В рамках партнерства ФРИИ запустит в своем акселераторе специальный тематический набор стартапов «ритейл-трэк», участники которого смогут проверить свои бизнес-модели и кратно ускорить рост своего бизнеса.

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

Сколько денег стартап получит от ФРИИ

Стартапы, прошедшие в акселератор ФРИИ, смогут привлечь инвестиции фонда в размере от 2 млн руб. до 25 млн руб., а также на ранних этапах роста получить консультации X5. Бизнес-гипотезы можно будет протестировать на потребительской базе X5, содержащей обезличенную информацию более чем о 3 млрд покупок.

Также X5 будет запускать пилотные проекты по тестированию решений наиболее перспективных стартапов ФРИИ в своих бизнес-процессах при условии, что соответствующие продукты и сервисы будут комплементарны бизнес-стратегии холдинга. Впоследствии X5 сможет приобрести как продукты, созданные стартапами, так и сами стартапы.

По словам главного исполнительного директора X5 Игоря Шехтермана, для холдинга основным направлением по-прежнему остается ритейл. Поэтому для целей поиска стартапов X5 пошел на партенрство с ФРИИ, для которого данная сфера является профильной.

SSAS MDX query help

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

Помогите, пожалуйста, с решением задачи (с учетом того, что MDX очень плохо знаю):
Есть куб, условно
Measure - Volume
Dimensions - Period, Client ( Region, Address), Product (Brand, SKU).

Нужно посчитать общий оборот для каждого Address с учетом выбранного SKU или Brand.
Пример:
Region1 - Address1 - Brand1 - SKU1 -5
Region1 - Address1 - Brand1 - SKU2 -10
Region1 - Address1 - Brand1 - SKU3 -2
Region1 - Address1 - Brand1 - SKU4 -3
Region1 - Address1 - Brand2 - SKU1 -5
Region1 - Address1 - Brand2 - SKU2 -10
Region1 - Address1 - Brand2 - SKU3 -5
Total Address1 - 40

Region1 - Address2 - Brand1 - SKU1 -5
Region1 - Address2 - Brand1 - SKU2 -10
Region1 - Address2 - Brand1 - SKU5 -2
Region1 - Address2 - Brand1 - SKU6 -3
Total Address2 - 20

нужно, чтобы при выборе SKU5, volume был = 20. При выборе Brand2, volume = 40. Т.е. volume должен считаться как общий оборот по address, но также должен быть зависим от всех полей. Если выбран Region1 и Brand1, тогда volume = 60

Не знаю, доступно ли объяснил ;), но очень надеюсь на вашу помощь.
plz hlp!

Как развернуть портал для SSRS?

$
0
0
Прошу прощения за, возможно, глупый вопрос, но простое гугление ничего не дало.

Есть уже настроенная отчетность на SSRS и несколько клиентских порталов вида http://aaa.bbb.ru/client1/, на которых лежит эта отчетность.

Нужно создать еще один портал для очередного клиента. И я не могу понять, как это делается. В сети лежит куча информации по разработке отчетов и конфигурированию уже существующего сервера. Я вижу настройки существующих клиентских порталов в Reporting Services Configuration Manager, но не понимаю, как создать новый.

Подскажите пожалуйста, хотя бы, по каким ключевым словам это искать.

Список DSN неактивен в Oracle BI Administration Tool

$
0
0
Привет всем.

При настраивании подключения к Excel-файлу через ODBC столкнулся с такой проблемой, что при выборе в Admin Tool File->Import Metadata... список подключений через ODBC 3.5 и ODBC 2.0 неактивен:

+
Картинка с другого сайта.


Источник данных в Microsoft ODBC Administrator (х32) добавлен:

+
Картинка с другого сайта.


В логе NQSAdminTool.log ничего касающегося этой проблемы нет.

Версия Admin Tool 12.2.1.2.0

В чем может быть проблема?

SSAS DMV

$
0
0
Всем привет!
Прошу поделиться полезными скриптами которыми вы пользуетесь при администрировании SSAS.

Например, был бы полезен скрипт который выводит вписок мер с временем процессинга.

MDX-запрос. Выгрузить нужные строки

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

Пытаюсь получить нужную таблицу. Чтобы было понятно описываю по шагам.


При таком запросе
+
SELECT
	[Measures].[Отгрузки шт]
ON 0,	
	NON EMPTY
	[Торговые точки].[Код ТТ].[Код ТТ] *
	[Торговые точки].[Код списка].[Код списка]*
	[Продукция].[SKU].[SKU]
ON 1
FROM (SELECT
	([Время].[Месяц].&[2016-12-01T00:00:00],
	[Торговые точки].[Код ТТ].&[0000001]) ON 0 FROM PROFIT)
получаю такой результат
Код ТТ Код списка SKUОтгрузки
ТТ1 КодСписка7SKU110
ТТ1 КодСписка7SKU220
ТТ1 КодСписка7SKU330
ТТ1 КодСписка7SKU440
ТТ1 КодСписка7SKU550
ТТ1 КодСписка7SKU1260
ТТ1 КодСписка7SKU1370

Это отгрузки по ТТ1 по SKU. В ТТ1 привязан код списка. В том списке перечислены Общие SKU, которые надо отгрузить.


В общем, есть поле "Общее SKU", и есть "SKU". В одном "Общее SKU" может быть один или два SKU. Теперь нужно выгрузить Общее SKU и SKU, которые прописаны в КодСписка7.
+
SELECT
	[Measures].[Дата изменения списка]
ON 0,
NON EMPTY		
	[Списки].[Код списка].&[7]*	
	[Списки].[Общее SKU].[Общее SKU]*
        [Продукция].[SKU].[SKU]
ON 1
FROM 	PROFIT

Код списка Общее SKUSKUДата изменения списка
КодСписка7SKU1SKU110.06.2016
КодСписка7SKU2SKU210.06.2016
КодСписка7SKU3/SKU4SKU310.06.2016
КодСписка7SKU3/SKU4SKU410.06.2016
КодСписка7SKU5/SKU6SKU510.06.2016
КодСписка7SKU5/SKU6SKU610.06.2016
КодСписка7SKU7SKU710.06.2016
КодСписка7SKU8SKU810.06.2016



Далее нужно выгрузить по ТТ Общее SKU с нулевыми и не с нулевыми отгрузками. Из того списка указать, какие Общее SKU отгружено, а какие нет. SKU, которые не входят в соответствующий список, не выгружаются (в данном случае это SKU12 и SKU13).

+
SELECT
	[Measures].[Отгрузки шт]
ON 0,	
	NONEMPTY([Торговые точки].[Код ТТ].[Код ТТ],     [Measures].[Отгрузки шт]) *
	NONEMPTY([Торговые точки].[Код списка].[Код списка],    [Measures].[Отгрузки шт])*
	[Списки].[Код списка].[Код списка]*	
	[Списки].[Общее SKU].[Общее SKU]	
HAVING([Торговые точки].[Код списка].CurrentMember.Name = [Списки].[Код списка].CurrentMember.Name)
ON 1
FROM (SELECT
	([Время].[Месяц].&[2016-12-01T00:00:00],
	[Торговые точки].[Код ТТ].&[0000001])
	ON 0
	FROM
		PROFIT)
получаю такой результат

Код ТТ Код спискаКод списка Общее SKUОтгрузки
ТТ1 КодСписка7КодСписка7SKU110
ТТ1 КодСписка7КодСписка7SKU220
ТТ1 КодСписка7КодСписка7SKU3/SKU470
ТТ1 КодСписка7КодСписка7SKU5/SKU650
ТТ1 КодСписка7КодСписка7SKU7
ТТ1 КодСписка7КодСписка7SKU8

Эта запись типа объединяет две первые таблицы
HAVING([Торговые точки].[Код списка].CurrentMember.Name = [Списки].[Код списка].CurrentMember.Name)


Но надо получить такой результат!
Код ТТ Код спискаКод списка Общее SKUSKUОтгрузки
ТТ1 КодСписка7КодСписка7SKU1SKU110
ТТ1 КодСписка7КодСписка7SKU2SKU220
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU330
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU440
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU550
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU6
ТТ1 КодСписка7КодСписка7SKU7SKU7
ТТ1 КодСписка7КодСписка7SKU8SKU8

Потом в запрос добавляю атрибут
+
SELECT
	[Measures].[Отгрузки шт]
ON 0,	
	NONEMPTY([Торговые точки].[Код ТТ].[Код ТТ],     [Measures].[Отгрузки шт]) *
	NONEMPTY([Торговые точки].[Код списка].[Код списка],    [Measures].[Отгрузки шт])*
	[Списки].[Код списка].[Код списка]*	
	[Списки].[Общее SKU].[Общее SKU]*
	NONEMPTY([Продукция].[SKU].[SKU],     [Measures].[Отгрузки шт])
HAVING([Торговые точки].[Код списка].CurrentMember.Name = [Списки].[Код списка].CurrentMember.Name)
ON 1
FROM (SELECT
	([Время].[Месяц].&[2016-12-01T00:00:00],
	[Торговые точки].[Код ТТ].&[0000001])
	ON 0
	FROM
		PROFIT)

Получаю такой результат:
+
Код ТТ Код спискаКод списка Общее SKUSKUОтгрузки
ТТ1 КодСписка7КодСписка7SKU1SKU110
ТТ1 КодСписка7КодСписка7SKU1SKU2
ТТ1 КодСписка7КодСписка7SKU1SKU3
ТТ1 КодСписка7КодСписка7SKU1SKU4
ТТ1 КодСписка7КодСписка7SKU1SKU5
ТТ1 КодСписка7КодСписка7SKU1SKU12
ТТ1 КодСписка7КодСписка7SKU1SKU13
ТТ1 КодСписка7КодСписка7SKU2SKU1
ТТ1 КодСписка7КодСписка7SKU2SKU220
ТТ1 КодСписка7КодСписка7SKU2SKU3
ТТ1 КодСписка7КодСписка7SKU2SKU4
ТТ1 КодСписка7КодСписка7SKU2SKU5
ТТ1 КодСписка7КодСписка7SKU2SKU12
ТТ1 КодСписка7КодСписка7SKU2SKU13
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU1
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU2
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU330
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU440
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU5
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU12
ТТ1 КодСписка7КодСписка7SKU3/SKU4SKU13
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU1
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU2
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU3
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU4
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU550
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU12
ТТ1 КодСписка7КодСписка7SKU5/SKU6SKU13
ТТ1 КодСписка7КодСписка7SKU7SKU1
ТТ1 КодСписка7КодСписка7SKU7SKU2
ТТ1 КодСписка7КодСписка7SKU7SKU3
ТТ1 КодСписка7КодСписка7SKU7SKU4
ТТ1 КодСписка7КодСписка7SKU7SKU5
ТТ1 КодСписка7КодСписка7SKU7SKU12
ТТ1 КодСписка7КодСписка7SKU7SKU13
ТТ1 КодСписка7КодСписка7SKU8SKU1
ТТ1 КодСписка7КодСписка7SKU8SKU2
ТТ1 КодСписка7КодСписка7SKU8SKU3
ТТ1 КодСписка7КодСписка7SKU8SKU4
ТТ1 КодСписка7КодСписка7SKU8SKU5
ТТ1 КодСписка7КодСписка7SKU8SKU12
ТТ1 КодСписка7КодСписка7SKU8SKU13

и не хватает следующих строк
Код ТТ Код спискаКод списка Общее SKUSKUОтгрузки
ТТ1 КодСписка7КодСписка7SKU7SKU7
ТТ1 КодСписка7КодСписка7SKU8SKU8

Как тут правильно написать запрос, чтобы получить нужный результат? То ли использовать директиву NON EMPTY, то ли надо использовать функцию NONENPTY (где второй аргумент то ли надо как то использовать меру "Дата изменения матрицы", то ли одновременно меры "Отгрузки" и "Дата изменения матрицы"), то ли какую другую функцию использовать. И возможно ли выгрузить нужную таблицу?

QlikView: Неадекват.работа условных колонок на Qlik-сервере

$
0
0
QlikView имеем ПерсоналЭдишн 12 х64

Делаем в гриде условную колонку (показать/скрыть) с условием:

=SubstringCount('|'& concat([$Dims],'|')&'|','|Месяц|')

$Dims - inline-колонка таблички со списком условий.
На Персонале все работает ОК. Колонок неск. десятков.

Переношу приложение на QlikView-сервер 11.3 х64 (Win2008r2)

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

Как забороть ?

зы: профильные форумы малопосещаемы. Тут вероятность ответа выше.

OBIEE 11g Многостраничный XLS- не получается

$
0
0
Установлен Oracle Business Intelligence 11.1.1.7.140715
1. Сделал простую дата модель с запросом
select 1 dept, 'x1' dept_name, 'x111' some from dual union all
select 2 dept, 'x2', 'x222' from dual union all
select 3 dept, 'x3','x333' from dual
2. Отчет с макетом XLS и этой дата моделью.
По образцу
http://docs.oracle.com/cd/E15586_01/bi.1111/e13881/T527073T571887.htm#xdo_md_sht

<-----------------------------XDO_METADATA PAGE--------------------->
Version
ARU-dbdrv
Extractor Version
Template Code
Template Type TYPE_EXCEL_TEMPLATE
Preprocess XSLT File
Last Modified Date
Last Modified By

Data Constraints:
XDO_SHEET_? <?/DATA_DS/G_1?>
XDO_SHEET_NAME_? <?DEPT_NAME?>
<-----------------------------XDO_METADATA PAGE--------------------->

Результирующий файл отчета получается 0 размера.
Что делаю не так, не понятно. Может быть оно на этой версии не работает? Как диагностировать проблему?

Использование Excel и XML в качестве источников данных

$
0
0
Как можно организовать хранение плоских файлов c данными (XML, Excel), чтобы к этим данным был доступ на клиенте (Oracle BI Admin Tool) для использования их при создании репозитория, а также, чтобы эти данные были доступны самому серверу для осуществления запросов к ним? Загрузить их на отдельный FTP-сервер? Загрузить на тот же сервер, где развернут BI? Может есть какая-нибудь устоявшаяся практика для такой ситуации?

Интересует использование таких файлов в рамках одной предметной области, вместе с данными из БД.

Используется Oracle BI EE 12c (12.2.1.2.0).

MDX - вопрос

$
0
0
Есть вычисляемый член, вычисляется просто

iif(([Оборот] > 0) AND ([Contents] > 0), 1, NULL)


Как только я ставлю вычисление доп условия, то запрос уходит в себя и ответа от сервера не приходит
iif(([Оборот] > 0) AND ([Contents] > 0), 1, iif([Contents] > 0,0,NULL))


В чем может быть затык?

BI Publisher excel output

$
0
0
Добрый день!
В BI Publisher реализован Layout (интерактивный) шаблон. Все работает. Но при выгрузке в Excel числовые поля форматируются как текст. Пробовал разные маски и без масок. Там не очень то и много возможностей. Это вообще возможно?

Gartner BI 2016


SSAS: ASSP в продакшене

$
0
0
Поделитесь опытом использования ASSP в "боевых" условиях?

Литература по DataStage

$
0
0
Добрый день, коллеги!

Может кто-нибудь посоветовать русскоязычные учебники или статьи по DataStage? Бумажные или электронные.

Вспомогательные величины в кубе

$
0
0
Коллеги, для расчета в Calculations нужна вспомогательная величина - "длина периода".

Где ее лучше хранить?
В отдельной мере, связанной по ключу только с измерением "периоды"
или как атрибут измерения, который в последствии будет извлекаться через Properties в Calculations

Архитектура "снежинка". Какие ключи в таблице фактов?

$
0
0
Привет всем!
Пытаюсь тут нормально изучить OLAP-технологии. Не пойму, как построить архитектуру "снежинка".
Я так понимаю, что "снежинка" - это структура, где используются уровни (иерархии) в кубе? Нет?
Допустим, есть таблица с количеством продаж.
Есть категории и подкатегории. Как будут в таблице фактов отображаться подкатегории?
Если подкатегории являются вложенной таблицей для категорий.

В таблице фактов будут ключи категорий или подкатегорий? Может, то и то? Не пойму...

Картинка прилагается. Если можете объяснить или тыкнуть на хорошую статью с подобным примером (честно, искал, очень расплывчато объясняют на сайтах), то буду очень благодарен. Спасибо!

Фильтрация значений измерений

$
0
0
Коллеги.

Если ли способ, убрать из измерения значения, которых нет в фактах, на уровне куба?

Как это сделать на уровне sql до куба понятно, хотелось бы узнать есть ли такой способ и если есть, то стоит ли его использовать?
Viewing all 1167 articles
Browse latest View live