Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Создать дополнительные меры или дополнительное измерение? / 25 сообщений из 25, страница 1 из 1
03.06.2017, 12:23
    #39465127
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
Имеется следующая информация о визитах клиентов:
Объект, Город, Страна, Время начала визита, время конца визита, Доход.
Требуется создать куб на основе этих данных.
И если я правильно понимаю, всё было бы хорошо и просто:
Измерение времени (дата - месяц - квартал - год - имя месяца - месяц года - номер квартала года),
измерение объект (ID Объекта - Имя объекта),
измерение город (Id Города - Имя города - Имя Страны),
и меры Число визитов, Число визитов без оплаты, и ДоходПолученный.
Но... Но число визитов и доход надо разбить ещё и по продолжительности визитов (до 15 минут, до часа, до двух часов, до трёх часов, до 4 часов, более 4 часов).
Продолжительность визита вычисляется как
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
case datediff(minute,[Время начала  визита], [время конца визита])/60.0 
when <=0.25 then 0.25
when >0.25 and <=1 then 1
when >1  and <=2 then 2
when >2  and <=3  then 3
when >3  and <=4  then 4
when >4 then 5
end as 'ВремяВизита'



И вопрос вот в чём - создавать дополнительное измерение ВремяВизита или дополнительные меры для числа визитов и дохода? Что правильнее? И поправьте меня в остальных мерах и измерениях, если в чём ошибся. imho, правильнее создать измерение.
...
Рейтинг: 0 / 0
04.06.2017, 01:01
    #39465384
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryiНо число визитов и доход надо разбить ещё и по продолжительности визитов
создавать дополнительное измерение ВремяВизита или дополнительные меры для числа визитов и дохода?
измерение удобно если фокус на функционале фильтрации
меры удобнее если фокус на самих значениях и сравнении их друг с другом
...
Рейтинг: 0 / 0
04.06.2017, 03:00
    #39465396
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryi,

определитесь с гранулярностью Факта.
Самое простое --
ФактВизит
(ДимДатаВизитаФК инт -- YYYYMMDD начало
ДимВремяВизитаФК инт -- HHMMSS начало
ДлительностьВизита инт -- минуты ------мера
DimПериодДлительностиФК инт -- ссылка на дименшн
Доход нумерик(18,2) -----------мера
ДимОбьектФК инт
ДимЛокейшнФК инт
)

DimПериодДлительности
(DimПериодДлительностиПК инт -- ключ
ПериодКод
ПериодНазвание_РУС
ПериодНазвание_ENG
)

-1 'Неопределено''Неопределено''Unknown'1 'М15' '0-15 минут''0-15 minutes'2 'М30' '15-30 минут''15-30 minutes'3 'H01' '30-60 минут''30-60 minutes'4 'H99' '>4 часов''>4 hours'


...судя по продолжительности , похоже на ескорт сервис.
...
Рейтинг: 0 / 0
04.06.2017, 15:41
    #39465486
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
javajdbc,
Представил себе продвинутый эскорт-сервис с базами данных, отчетностью и кубами для аналитиков. Посмеялся.
...
Рейтинг: 0 / 0
04.06.2017, 15:56
    #39465489
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
javajdbc,

Что касается гранулярности - то в моём случае это совокупность визитов за день, а то и за месяц, а не отдельный визит.
При этом один из срезов, который сейчас делается - как раз по объектам и продолжительности визитов .
...
Рейтинг: 0 / 0
04.06.2017, 17:17
    #39465506
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryijavajdbc,

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

....ок, но полезнее сделать сначала DWH (или куб) с гранулярностью
одного визита. Тогда конкретная продолжительность и доход будет мерой.
и к каждому визиту можно будет подсоединить срез DimPeriod.
Такой подход, по идее, закрывает все ваши задачи.
...
Рейтинг: 0 / 0
05.06.2017, 09:55
    #39465721
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
javajdbc,

не закроет, ибо "совокупность визитов за день, а то и за месяц, а не отдельный визит"
не позволит создать полноценную связь с измерением "Продолжительность"
...
Рейтинг: 0 / 0
05.06.2017, 14:03
    #39465876
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
ShIgorjavajdbc,

не закроет, ибо "совокупность визитов за день, а то и за месяц, а не отдельный визит"
не позволит создать полноценную связь с измерением "Продолжительность"


Если что-то нельзя связать через САМЫЙ гранулярный факт,
то это уже не связывается вообще. По описанию логической модели: Визит --
самый мелкий факт.

....конечно, можно до-придумать что
Визит состоит из нескольких (ескорт) Сервисов, тогда можно
еще мельче факт сделать...

...ставьте задачу полнее и будет точнее решение...
...
Рейтинг: 0 / 0
05.06.2017, 16:21
    #39466028
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
javajdbc,

Вопрос интересный появился: раз у меня зависимость объект - Локация, то делать Снежинку
create table dwh.DimObject
(DimObjectID int identity (1,1),
ObjectShortName varchar(4),
ObjectFullName varchar(40),
LocationID int
)

create table dwh.DimLocation
(LocationID int identity (1,1),
CityName varchar(40),
CountryName varchar(40),
)

или всё-таки Звезду

create table dwh.DimObject
(DimObjectID int identity (1,1),
ObjectShortName varchar(4),
ObjectFullName varchar(40)
)

create table dwh.DimLocation
(LocationID int identity (1,1),
CityName varchar(40),
CountryName varchar(40),
)

?
Пока иду по первому варианту.
...
Рейтинг: 0 / 0
06.06.2017, 02:33
    #39466309
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryi,

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

На небольших обьемах, без SCD, и/или если дименшн нужно использовать
без фактов, то двух-етажная снежинка вполне приемлима.
...
Рейтинг: 0 / 0
08.06.2017, 10:24
    #39468364
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
По итогам размышлений у меня получается две таблицы фактов.
Первая - с измерение "Объект - Город - Страна" и измерением времени.
Вторая - с измерением "Объект - Город - Страна", измерением времени и измерением "Длительность визита на объект", предложенным javajdbc.

Причина в том, что к ряду мер применение измерения "Длительность визита на объект" невозможно (пример таких мер - число звонков или число людей, прошедших мимо объекта или число сорвавшихся заказов).
Как я понимаю, обе таблицы фактов можно засунуть в один и тот же куб.
А вот что делать потом, когда засунул в куб вторую таблицу фактов? Связывать их между собой, не связывать, добавлять в куб дополнительные копии таблиц измерений, или привязывать к таблицам фактов одни и те же копии таблиц измерений? Или надо сделать что-то ещё?
И будет ли возможность в один отчёт засунуть меры из обоих таблиц, или нет?

В запросе на основе данных OLTP фигурируют агрегированные данные, которые потом распадаются на эти две таблицы фактов, и хочется генерировать максимально похожий по набору данных отчёт, отсюда и вопросы.
...
Рейтинг: 0 / 0
30.01.2018, 17:21
    #39593483
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
Коллеги, возвращаемся к нашим "эскорт-сервисам".

Вопрос первый: данные до доходам теперь требуется хранить в трёх валютах. То есть число строк с доходами утраивается. А данные по числу визитов от валюты не зависит. Как правильно хранить данные?
В двух таблицах фактов, связанных друг с другом по ID "эскорт-сервиса" и дате? Или оставить как есть - в большой таблице, а в отчётах по посещаемости ставить фильтр по коду одной из валют? Второй вариант мне не нравится из-за разбухания данных, а первый ещё не пробовал никогда.

И второй вопрос - требуется добавить в куб данные по плану и прогнозу посещаемости и дохода. Здесь доход тоже будет пересчитываться в три валюты, но проблема в другом. Проблема в том, что здесь данные свёрнуты по месяцам, а не по дням. Как их правильно связать с основными данными (основные данные свёрнуты по дням)?
...
Рейтинг: 0 / 0
30.01.2018, 18:25
    #39593523
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryi,

по валютам - можно ещё вариант хранения каждой валюты в своей колонне (даже хранить для каждой строки все 3 валюты по курсу на тот день) плюс колонна в какой валюте собственно была сделка (или три колонны некоторые пустые - плюс отдельная колонна в какой-бы небыло валюте, плюс колонна - идентификатор валюты) .. в общем как намекает javajdbc - зависит от воображения, требований/архитектуры/опыта/планов и лучших практик..

данные прогноз/факт:
1) тянутся из разных групп мер в одну меру
2) сливаются в одну меру которая внутри переключает (прогноз/факт) в зависимости от текущей даты между прогнозом/фактом (уровнями ниже месяца - нужна дополнительная логика чтобы не брал целый месяц прогноза плюс несколько дней факта)
3) эта новая мера для прогноза существует только на уровне гранулярности атрибута иерархии месяц (выше считается из children) - факта можно оставить дни - для прогноза - месяц и выше (т.к. алгоритм разбивки в задании пока не задан), делается через scope, хотя можно и материализовать.
...
Рейтинг: 0 / 0
30.01.2018, 18:33
    #39593525
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
vikkiv,

Я правильно понимаю, что для группы мер прогнозов надо будет делать отдельное измерение дат? Или привязывать существующее, но по столбцу месяцев?
...
Рейтинг: 0 / 0
30.01.2018, 18:39
    #39593530
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryi,

да в принципе на том-же измерении дат привязка на другой гранулярности (месяц) вместо ключа измерения (дата) вполне подходит для большинства решений
...
Рейтинг: 0 / 0
30.01.2018, 19:07
    #39593545
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
vikkivDaniilSeryi,

да в принципе на том-же измерении дат привязка на другой гранулярности (месяц) вместо ключа измерения (дата) вполне подходит для большинства решений

Спасибо. Буду завтра пробовать.
...
Рейтинг: 0 / 0
31.01.2018, 10:42
    #39593764
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
И ещё один дополнительный вопрос:
Для некоторых расчётов в отчётах нужно использовать редко меняющиеся (раз в год или реже) переменные, как плановое "время работы".
Как эти данные хранить в кубе и подтягивать в отчёты?
Вариант с столбцом данных в мерах - тут избыточность данных, но минимум трудностей с использованием.
А какие ещё варианты?
...
Рейтинг: 0 / 0
31.01.2018, 11:46
    #39593811
Ferdipux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryiКоллеги, возвращаемся к нашим "эскорт-сервисам".

Вопрос первый: данные до доходам теперь требуется хранить в трёх валютах. То есть число строк с доходами утраивается. А данные по числу визитов от валюты не зависит. Как правильно хранить данные?
В двух таблицах фактов, связанных друг с другом по ID "эскорт-сервиса" и дате? Или оставить как есть - в большой таблице, а в отчётах по посещаемости ставить фильтр по коду одной из валют? Второй вариант мне не нравится из-за разбухания данных, а первый ещё не пробовал никогда.


Можете реализовать подход "Велозавода" - когда в операции указывается сумма в валюте операции и ее код, и есть таблицы кросс-курсов. Есть измерение валют, и для мер с суммами используется DirectSlice.
Достаточно классическая методика, хотя возможно, что на
...
Рейтинг: 0 / 0
31.01.2018, 11:59
    #39593823
StarikNavy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryiИ вопрос вот в чём - создавать дополнительное измерение ВремяВизита или дополнительные меры
зависит только от хотелок бизнеса. иногда просят одновременно то и то

[quot DaniilSeryi]И ещё один дополнительный вопрос:
Для некоторых расчётов в отчётах нужно использовать редко меняющиеся (раз в год или реже) переменные, как плановое "время работы". [quot]
отдельная группа мер и эту партицию пересчитывать редко.
но обычно такие вещи маленькие (пересчет партиции в минуту если укладывается), и даже смысла нет заморачиваться на способе
...
Рейтинг: 0 / 0
06.02.2018, 12:40
    #39597370
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
StarikNavy,

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

Как это можно сделать?
...
Рейтинг: 0 / 0
06.02.2018, 12:50
    #39597388
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
Нашёл и сделал.
...
Рейтинг: 0 / 0
06.02.2018, 13:02
    #39597396
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
Возник другой вопрос - в настройках проекта стоит DeployChangesOnly. При этом после внесения изменений в куб (добавление новой меры) выбираю Build куб, затем Deploy куба, и оп-па - база данных будет rewritten! Соответственно, все созданные роли уничтожаются, надо давать права заново.
Вопрос - как избежать перезаписи базы данных куба на SSAS?
...
Рейтинг: 0 / 0
06.02.2018, 13:46
    #39597435
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryi,

создать новый проект на основе существующей базы.
или править сразу базу без создания проекта.
...
Рейтинг: 0 / 0
08.02.2018, 16:01
    #39599172
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
vikkivDaniilSeryi,

да в принципе на том-же измерении дат привязка на другой гранулярности (месяц) вместо ключа измерения (дата) вполне подходит для большинства решений

Как понимаю, у меня единая таблица измерения (где ключ даты, сама дата, месяц_года, квартал_года, год) для такого маневра должна быть распилена на четыре (дата-месяц-квартал-год) с соответствующими ключами, изменениями в иерархиях и кубе?
...
Рейтинг: 0 / 0
08.02.2018, 16:30
    #39599225
bideveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать дополнительные меры или дополнительное измерение?
DaniilSeryiКак понимаю, у меня единая таблица измерения (где ключ даты, сама дата, месяц_года, квартал_года, год) для такого маневра должна быть распилена на четыре (дата-месяц-квартал-год) с соответствующими ключами, изменениями в иерархиях и кубе?
Зачем? Просто в привязке измерения дата к группе мер выбрать атрибут месяц.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Создать дополнительные меры или дополнительное измерение? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]