Размышления на станции Карталы: разработка модели данных для анализа продаж

Размышления на станции Карталы: разработка модели данных для анализа продаж

Сегодня решил написать несколько соображений на тему разработки модели данных и о том, какой должна быть таблица фактов и измерений для анализа продаж, в чем ее отличие от прочих и поделиться советами по ее оптимизации с учетом моего личного опыта работы. Разбирать будем примеры на основе одной из самых популярных российских учетных систем (1C) и QlikView.

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

Что, когда, кому, как и сколько?

По здравому размышлению анализ продаж сводится к определению связи между объектами:

товар — клиент — момент — способ — количество

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

Товар (что?)

Все знания, которые касаются товара (номенклатура-характеристика-партия-качество).

Все товарные группировки делаются на этом уровне.

Типичные примеры групп:

  • производственные — с конвейера выходят одни и те же конфеты, но поступают в продажу в разной расфасовке (200г, 350г, 12кг) и упаковке (картонная, пластик и т.п.);
  • рецептурные — для конфет: шоколадные, глазированные, неглазированные и т.п.;
  • транспортные — по требованиям к условиям транспортировки;
  • по сроку хранения — долгосрочный и краткосрочный;
  • маркетинговые — премиальные, экономичные;
  • магловские и обычные.

НА ЗАМЕТКУ! Естественно, услуги и их атрибуты тоже относим к этому объекту.

Клиент (кому?)

Тут все просто: здесь хранится всё, что касается клиента (контрагент-договор-пункт разгрузки).

  • физики/юрики;
  • по географии доставки;
  • по размеру клиента — крупный-средний-малый.

НА ЗАМЕТКУ! Я бы зарезервировал возможность, заинтересованным, но не упоминаемым силам, назначать произвольные магические атрибуты: например, наличие маховика времени, обнуляет вероятность повторных закупок.

Момент (когда?)

Здесь фиксируем время и дату сделки в соответствии с политикой учета.

Время и дату события в QlikView принято разделять на два поля, чтобы снизить вариативность данных (уменьшить объем, который они занимают и увеличить скорость перебора).

10 лет по 365 дней = 315 млн. секунд или различимых моментов времени. Сравните с 3650 различных дат + 86400 секунд в сутках. 315 и 0.9. Что больше?

В большинстве случаев для анализа можно вообще пренебречь секундами и минутами. Графики посещений редко демонстрируются мельче, чем в почасовой нарезке.

Есть еще одно соображение: из-за переходов на летнее зимнее время и их отмены следует аккуратно учитывать время в построении отчетов like-4-like. Оно вам надо?

На дату (а иногда и на время) вешается мастер календарь для удобства группировок по месяцам, кварталам и т.п. Еще следует отметить, что в Европе и Америке нумерация недель пару раз в десятилетие может отличаться. В реале в России календарь вообще зависит от того, что напечатает типография. НО действует ГОСТ ИСО 8601-2001.

Способ (как?)

Наверное, самое сложное в описании измерение. Не секрет, что один и тот же товар, один и тот же клиент может купить разными способами: заказать на сайте или по телефону, либо купить в магазине лично, или даже устроить тендер, оплатить наличными (не считая карты), безналичными расчетом и т.п. В нашей типичной информационной системе, это могут быть организация-подразделение-проект-договор. Может быть, понятие канал продаж лучше объясняет это свойство.

Для малого бизнеса этим измерением можно, скорее всего, вообще пренебречь. Вы готовы признать себя малым бизнесом?

Количество (сколько?)

Самое понятное поле, которое напрямую используется в выражениях. Традиционно, в нашей информационной системе это стоимость и её производные: стоимость без скидок, НДС, себестоимости прямая, нормативная, средняя — тут фантазии безграничны. Иногда сюда

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

Другое важное измерение здесь — количество (что бы это не значило). Хороший вопрос руководителю: в чем вы, кроме денег измеряете свой бизнес?

НА ЗАМЕТКУ ! Разные субъекты могут использовать разные единицы измерения. Хорошо если это тонны и килограммы. Бывает так, что один цех использует килограммы, другой – штуки, третий – литры. При разработке просто обратите внимание, что Вы идете по одному из путей:

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

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

НА ЗАМЕТКУ! Иногда измерение избыточно, например, канал продаж. Значит, надо завести канал ‘Все’, который отключит детализацию этого измерения. Для времени я использую Век=’C21′, данные прошлого века пришлось использовать всего один раз.

Таким образом, можно построить универсальную таблицу [Детализация], покрывающую на 90% потребности простых пользователей.

📎📎📎📎📎📎📎📎📎📎