Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Много элементов в одном измерении.  [new]
Oleon
Member

Откуда:
Сообщений: 343
Есть измерение с клиентами (около 10 миллионов)

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

В измерении должна быть иерархия для первой покупки

Год - Квартал - Месяц - Дата для первой покупки
Год - Квартал - Месяц - Дата для первого посещения

Вижу такие варианты :
1. В представлении выводить для каждой даты дополнительно квартал, месяц и год (тогда в представлении больше полей и больше атрибутов в измерении)

2. Сделать отдельное измерение Дата первой покупки и все группы мер, кроме как на клиента, вязать еще и на измерение дата первой покупки и дата первого посещения.


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


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

Кроме атрибутов с датами, есть еще, например, атрибут первый магазин, для которого нужно вывести Страну и Бизнес подразделение.
20 апр 18, 16:58    [21355453]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 1854
Oleon,

кроме измерения "клиент"
генерите таблицы фактов (группы мер) "первая покупка" /"первое посещение" - с привязкой к измерению клиент и Календарь
20 апр 18, 17:35    [21355530]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Полковник.
Member

Откуда:
Сообщений: 1727
Oleon,

Начни с изучения теории построения моделей витрин данных, ибо события это факты а не измерения.
20 апр 18, 19:51    [21355817]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Oleon
Member

Откуда:
Сообщений: 343
Возможно, вы не поняли мой вопрос. У меня нет цели посчитать количество привлеченных клиентов в заданный период. С этим проблем нет.

Мне нужно разбить текущие факты (например, текущие продажи) по датам совершения первой покупки клиентом.

Например, есть продажи за апрель 10 000 000. Нужно эти десять миллионов разбить на то, что

2 млн, клиенты, привлеченные в 2017-го января
2 млн, клиенты, привлеченные в 2017-го февраля
3 млн, клиенты, привлеченные в 2018-го января
3 млн, клиенты, привлеченные в 2018-го апреля

Кроме продаж, могут быть любые другие факты.

Варианты такие -
сделать дополнительные атрибуты в измерении с клиентами (получается измерение, которое очень долго процессится из-за большого количеств атрибутов). Партиции в измерении не режутся (не табулярная модель)

либо факты (например, продажи) кроме как к дате продажи, вязать еще к дате привлечения клиента. Либо в измерение с клиентами добавить четыре атрибута - Год привлечения, Квартал привлечения, Месяц привлечения, День привлечения.

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



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


Сейчас сделано одно большое измерение с кучей атрибутов.
23 апр 18, 10:48    [21359927]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3655
Oleon,

Делайте измерение "Поколение клиентов" с натуральной иерархией "Год - Квартал - Месяц - Дата для первой покупки"

и вяжите его, как и измерение "Клиент" и др. измерения, к таблице фактов "Первое событие", как сказал выше StarikNavy

поскольку к первому событию Вам нужно много других разрезов
23 апр 18, 10:57    [21359958]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Oleon
Member

Откуда:
Сообщений: 343
Вот пример схемы.

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

К сообщению приложен файл. Размер - 91Kb
23 апр 18, 11:37    [21360090]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3655
Oleon,

если для клиента требовалось бы только фиксация одного разового события и это событие "Дата для первой покупки" наступает сразу как регистрируется клиент, то соотв. атрибуты еще можно было бы поместить в измерение "Клиент", т.е. по вар. 1)
Например, "Дата рождения клиента" и соотв. атрибуты иерархии Дата-Месяц Года-Год-Десятилетиие

а так, вар. 2)


p.s.
Физическое измерение дат - одно, используйте Role Played Dimension
23 апр 18, 12:07    [21360194]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
bideveloper
Member

Откуда:
Сообщений: 333
Еще есть 3-й вариант.
В измерении клиент хранить даты первой покупки, дата первого посещения и т. д.
А измерение Дата привязывать как Referenced (и Role played) через измерение клиент к группам мер. Соответственно, для каждой даты в измерение клиент в кубе будет свое Role plaayed измерение Дата.
23 апр 18, 13:05    [21360461]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3655
bideveloper,

В Referenced измерении "Клиент" - десятки миллионов записей, тормоза
23 апр 18, 13:48    [21360731]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Oleon
Member

Откуда:
Сообщений: 343
А если через Reference - тормоза во время процессинга или во время выполнения запросов?

Сейчас основная проблема в том, что ProcessUpdate измерения идет 40 минут.
24 апр 18, 12:39    [21363892]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3655
Oleon,

и во время процессинга если включена опция материализации (запрос с сортировкой к источнику данных)
и
во время кручения куба, во всяком случае медленнее, чем без ссылочного измерения
24 апр 18, 13:01    [21364036]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
bideveloper
Member

Откуда:
Сообщений: 333
А я бы на практике проверил скорость, это же несложно. Все-таки с точки зрения разработки и поддержки это самый простой вариант.
24 апр 18, 19:39    [21365821]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2218
Alex_496
Oleon,

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

Александр, Вы таки будете смеяться, но я бы рекомендовал всем разработчикам, которые включают опцию материализации, делать обрезание тупыми ножницами для стрижки овечьей шерсти. Или потребовать от них в письменном виде объяснение, почему они выбрали включить эту опцию. Еще в 2009-м Альберто Феррари предупреждал всех, что это теоретическая опция, использовать ее не следует.
24 апр 18, 20:37    [21365888]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Oleon
Member

Откуда:
Сообщений: 343
Понимаю, что все зависит от конкретного набора атрибутов. Попробуем провести эксперимент.
Спасибо за советы.
25 апр 18, 09:42    [21366742]     Ответить | Цитировать Сообщить модератору
 Re: Много элементов в одном измерении.  [new]
Alex_496
Member

Откуда: Moscow https://www.dvbi.ru
Сообщений: 3655
Andy_OLAP
Alex_496
Oleon,

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

Александр, Вы таки будете смеяться, но я бы рекомендовал всем разработчикам, которые включают опцию материализации, делать обрезание тупыми ножницами для стрижки овечьей шерсти. Или потребовать от них в письменном виде объяснение, почему они выбрали включить эту опцию. Еще в 2009-м Альберто Феррари предупреждал всех, что это теоретическая опция, использовать ее не следует.


Так ссылочные измерения я не использую.
А когда давно использовал, то не материализовывал.
А когда давно материализовывал, то убеждался, что таблица источник хорошо проиндексирована.
И ref таблицы были не миллионных записей.
Предположу, что у Создателей был замысел по ссылочным измерениям - они не должны быть большими.
25 апр 18, 12:27    [21367375]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить