Как сохранить прежний регион клиента для исторического отчёта

Переезд клиента не должен незаметно переносить старые продажи в новый регион. Разбираем версии справочной записи и связь покупки с состоянием на её дату.

Три сохранённые версии керамической карточки на общей подставке с меняющимися оранжевыми акцентами.

Текущая карточка может изменить взгляд на прошлое

Представим условного покупателя: в январе он жил в северном регионе, а в марте переехал в южный. В карточке клиента заменили регион на новый. Если январские покупки теперь связать только с текущим состоянием карточки, они окажутся в южном регионе. Сами покупки не менялись, но исторический разрез отчёта стал другим.

Сначала нужно договориться, какой вопрос решает отчёт. Иногда требуется показать прежние покупки по сегодняшнему распределению клиентов. В другом случае важно, где находился клиент на дату покупки. Оба вопроса можно сформулировать осмысленно, но они требуют разных правил. Ошибка возникает, когда читатель ожидает историческое распределение, а система незаметно использует текущее.

Изменение можно сохранить отдельной версией

В документации Microsoft Fabric описан подход к сохранению истории справочных записей, известный как медленно меняющееся измерение второго типа. Измерение здесь — описательные сведения об объекте, например клиенте. При изменении нужного признака создаётся новая версия записи, а прежняя сохраняется с периодом действия.

Для нашего покупателя в истории останутся два состояния: северный регион до согласованного момента переезда и южный после него. Это один клиент с двумя версиями описания. Изменение не должно автоматически превращать его в двух разных людей. Поэтому полезно различать общий идентификатор клиента и отдельное обозначение конкретной версии его карточки.

Покупке нужна версия на соответствующую дату

В руководстве Microsoft по модели «звезда» отдельно объясняется связь факта с версией измерения, действовавшей на дату факта. Факт — событие, которое мы анализируем; в нашем примере покупка. Недостаточно сохранить две карточки: нужно ещё правильно выбрать ту, к которой относится событие.

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

Границы истории должны быть объяснимыми

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

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

История признака отвечает на свой вопрос

Снимок таблицы помогает обратиться к сохранённому состоянию набора, а версии региона поддерживают правило отнесения конкретного события к описанию клиента на дату. Эти механизмы можно использовать совместно, но один не следует считать готовой заменой другого. Важно заранее определить, какое прошлое состояние нужно восстановить для задачи.

С устройством фактов и описательных признаков знакомит статья о схеме «звезда». В нашем учебном примере достаточно трёх покупок: до переезда, на границе и после него. Для каждой назовём ожидаемый регион и объясним выбор. Такое обсуждение обнаруживает неоднозначность раньше, чем она проявится в большом отчёте.

Начните с одного изменяемого признака

Выберите поле, прошлое значение которого действительно важно: регион обслуживания, закреплённый менеджер или категория клиента. Запишите, что считается изменением, откуда берётся дата и какие отчёты используют историю. Не каждое исправление опечатки обязательно должно создавать новую бизнес-версию; это отдельная договорённость о смысле выбранного поля.

Продолжить изучение загрузки и организации данных можно на программе Data Engineer для начинающих. Полезный первый результат — сохранить согласованное объяснение: почему январская покупка относится к прежнему региону, даже если текущая карточка клиента уже показывает новый.

Data Engineer для начинающих
Курс
Доступ сразу
Data Engineer для начинающих

Освойте Data Engineering с нуля: научитесь собирать, хранить и обрабатывать данные. Практика на каждом этапе — опыт не нужен.

С нуля до junior
Теория и практика
Диплом по окончании
12 990
₽/мес
УЗНАТЬ ПОДРОБНЕЕ

Источники

Читайте также

Обучить команду или нанять специалиста по данным: как выбрать
61

Обучить команду или нанять специалиста по данным: как выбрать

Как руководителю определить, какие навыки развивать внутри команды, когда нужна новая роль и почему обучение и найм часто дополняют друг друга.
Вертикальное и горизонтальное масштабирование данных: в чём разница
62

Вертикальное и горизонтальное масштабирование данных: в чём разница

Когда системе добавляют мощность одного сервера, когда делят работу между несколькими и почему увеличение ресурсов само по себе не решает любую проблему.
Журнал изменений данных: как выяснить, кто и когда изменил набор
60

Журнал изменений данных: как выяснить, кто и когда изменил набор

Что можно узнать из журнала действий с данными, как он помогает разбирать ошибки и почему его записи не показывают всю историю сами по себе.

Занятия проходят
в Нова Дата СДО

Вебинары, практика и общение с преподавателем — в одном окне браузера.

Посмотреть интерфейс платформы
Календарь обучения в Нова Дата СДО
Курсы студента в Нова Дата СДО
Редактор кода для практики в Нова Дата СДО
Вебинары и расписание Ваши курсы Код в браузере
Нова Дата СДО — в реестре российского ПОРеестровая запись № 34931
Заявка отправлена
Отправим вам подборку курсов в течение 5 минут. С вами также свяжется наш специалист и даст карьерную консультацию.
Персональный промокод
На курс «Инженер по парсингу данных»
Введите код при оплате, чтобы применить скидку к программе.