powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Создать дополнительные меры или дополнительное измерение?
25 сообщений из 25, страница 1 из 1
Создать дополнительные меры или дополнительное измерение?
    #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
Создать дополнительные меры или дополнительное измерение?
    #39465384
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryiНо число визитов и доход надо разбить ещё и по продолжительности визитов
создавать дополнительное измерение ВремяВизита или дополнительные меры для числа визитов и дохода?
измерение удобно если фокус на функционале фильтрации
меры удобнее если фокус на самих значениях и сравнении их друг с другом
...
Рейтинг: 0 / 0
Создать дополнительные меры или дополнительное измерение?
    #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
Создать дополнительные меры или дополнительное измерение?
    #39465486
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,
Представил себе продвинутый эскорт-сервис с базами данных, отчетностью и кубами для аналитиков. Посмеялся.
...
Рейтинг: 0 / 0
Создать дополнительные меры или дополнительное измерение?
    #39465489
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

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

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

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

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

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


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

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

...ставьте задачу полнее и будет точнее решение...
...
Рейтинг: 0 / 0
Создать дополнительные меры или дополнительное измерение?
    #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
Создать дополнительные меры или дополнительное измерение?
    #39466309
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilSeryi,

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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