Звездообразная схема: отдельные измерения для клиентов и неклиентов или общие измерения для обслуживающего персонала?

Я новичок в моделировании звездных схем, только что прочитав Данные Warehouse Toolkit.

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

Моя таблица фактов, назовем ее «Аудитория», будет содержать меру того, как долго обслуживающий персонал был подключен к вызову, а также стоимость подключения этого человека к вызову. Основа - «индивидуальное подключение к конференц-связи».

Должен ли я использовать мое согласованное измерение Client и создать неклиентское измерение (для вызывающих абонентов, которые еще не являются клиентами) следующим образом (без измерений, которые не являются частью этих вопросов):

Первая потенциальная модель

Или было бы нормально / лучше иметь несоответствующее измерение посещаемости, связанное с согласованным измерением клиента следующим образом:

Вторая потенциальная модель

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

Изменить:

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

Это приемлемая альтернатива ответу Дамира ниже?


person cethegeek    schedule 07.03.2010    source источник
comment
Является ли стоимость соединения вашей (компанией) стоимостью, или стоимость, которую каждый человек платит отдельно?   -  person Damir Sudarevic    schedule 17.03.2010
comment
Cost_of_connection - это сумма, которую моя компания платит провайдеру, чтобы позволить каждому абоненту быть подключенным. Для нас это дорогое удовольствие.   -  person cethegeek    schedule 18.03.2010


Ответы (4)


Нет необходимости разделять клиентов на две таблицы (измерения). Просто поместите всех клиентов, активных и потенциальных клиентов в одну таблицу измерений. Затем вы можете ввести атрибут IsActive (столбец), чтобы различать платящих клиентов и потенциальных клиентов. Рано или поздно вы воспользуетесь инструментом интеллектуального анализа данных, чтобы узнать больше о клиентах и ​​о том, что отличает людей, которые готовы платить за ваши услуги, от тех, кто этого не делает. Чтобы алгоритм работал, вы должны предоставить данные для обеих групп людей - тех, кто платит, и тех, кто не платит. Подводя итог, потенциальные клиенты принадлежат к той же таблице, что и платящие клиенты.

При этом вы можете использовать свою модель № 1. Убедитесь, что меры в таблице фактов имеют смысл. Например, если в call_id = 123 участвовало 10 человек, то

sum(cost_of_connection)
from factAudience
where call_id = 123;

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

ИЗМЕНИТЬ

«Платящий клиент» и «потенциальный клиент» являются типами клиентов, поэтому принадлежат к одной и той же таблице измерений - dimClient. Где-то в ДВ есть factSale (или аналогичный) с FK на dimSale. Даже если у вас нет столбца в dimClient, чтобы различать платящих и потенциальных клиентов, вы все равно можете получить платящих клиентов, присоединившись к factSale и dimClient.

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

person Damir Sudarevic    schedule 17.03.2010
comment
Итак, вы предлагаете использовать слой ETL для создания нового измерения, объединяющего согласованное клиентское измерение и список участников конференц-связи. Разве это не создает большой сложности, поскольку мое согласованное клиентское измерение - это медленно меняющееся измерение? Теперь мне нужно не только поддерживать согласованное клиентское измерение в актуальном состоянии с оперативными данными; но и это новое измерение ... - person cethegeek; 17.03.2010
comment
См. Изменение моего вопроса. Будет ли это приемлемым компромиссом с точки зрения моделирования? - person cethegeek; 17.03.2010
comment
Я собираюсь выбрать ваш ответ как принятый (хотя я хотел бы дождаться вашего ответа на мое редактирование, у меня остался только один час в награде, и я хочу убедиться, что лучший ответ получил признание). Если вы не возражаете, я все же хотел бы обсудить плюсы и минусы дополнительного измерения по сравнению с видом поверх двух измерений. - person cethegeek; 17.03.2010
comment
Прочитав вашу правку, мне нужно было немного подумать. Ты прав. Я думаю, что мне не хватает оперативного шага, чтобы квалифицировать этих вызывающих абонентов как потенциальных и основывать на этом информационную витрину. Тогда все клиенты и потенциальные клиенты должны жить в одном измерении. Я очень ценю вашу помощь! - person cethegeek; 18.03.2010

Я бы выбрал второе: он моделирует участников в их собственном, выделенном измерении, в то же время позволяя вам раскрыть их клиентскую принадлежность (или иным образом) через атрибут в этом измерении, что, вероятно, является тем способом, которым вы хотели бы детализировать реальная жизнь («покажите мне всех участников», а затем «а теперь кто из них - клиенты»).

В вашем клиентском измерении я бы заполнил client_id для всех участников в соответствии с "неизвестным" элементом, где участник не является клиентом.

Здесь есть интересное обсуждение:

http://crpit.com/confpapers/CRPITV75Riazati.pdf

person davek    schedule 11.03.2010

Это не имеет большого значения. Вторая версия, возможно, более правильная, но поддерживает ли это ваша система olap?

person TFD    schedule 10.03.2010

Второй мне кажется «схемой снежинки». Изучите схему снежинки, начиная со статьи в Википедии. Вы увидите несколько сравнений между звездой и снежинкой.

person Walter Mitty    schedule 13.03.2010
comment
Именно по этой причине я разместил вопрос. Но он позволяет выполнять детализацию, невозможную в противном случае. - person cethegeek; 15.03.2010