Разбор и очистка дат рождения
Пример решения задачи на базе аналитической low-code платформы Loginom:
- Скачать бесплатно Loginom Community Edition
- Скачать бесплатно пакет, реализующий описанный сценарий
Персональные данные являются одними из самых «загрязненных» данных, требующих применения методов очистки. В данном примере рассматривается вариант очистки дат рождения клиентов организации для последующего проведения маркетинговых акций.
Исходные данные
Таблица «Даты рождения»:
Имя поля | Метка поля |
---|---|
Дата рождения | |
Имя | |
Фамилия | |
Отчество | |
Код клиента |
Таблица «Кодировка месяца»:
Имя поля | Метка поля |
---|---|
Месяц строковый | |
Первые 3 буквы | |
Номер месяца |
Алгоритм
- Разбор даты представленной в строковом виде.
- Разбор даты представленной в числовом виде.
- Преобразование даты в единый формат dd/mm/yyyy.
- Формирование примечаний при некорректном разборе дат рождения.
Сценарий

Даты рождения и Кодировка месяца
Данные узлы позволяют импортировать табличные данные из текстового файла. В Сценарии они используются для импорта таблиц «Даты рождения» и «Кодировка месяца». Все параметры задаются в соответствии с описанием входных данных.
Разбор даты рождения — месяц задан строкой
Первичный разбор исходных данных: выбираются такие даты рождения, где месяц задан в виде строки.
Описание показателей представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
День рождения | Извлечение символов дня из формата d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd |
|
Месяц рождения | Извлечение первых трех символов строкового месяца из формата d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd |
|
Год рождения | Извлечение символов года из формата d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd |
Месяц задан строкой
Фильтрация таблицы в зависимости от заданного условия. В верхний выходной порт попадают строки, которые удовлетворяют условию, в нижний — все остальные.
В мастере настройки задано такое условие: «Месяц рождения не пустое».
Присоединение кодировки месяца
Отфильтрованные данные, в которых месяц рождения задан строкой, дополняются значениями из справочной таблицы «Кодировка месяца», с целью сопоставить название месяца с его номером.
Мастер настройки показан на рисунке:

Разбор даты рождения — месяц задан числом
Разбиение даты, заданной числом, на дни, месяцы и годы.
Описание показателей представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
День рождения | Извлечение значения дня из форматов d/m/yy, dd/mm/yyyy, m/d/y, mm/dd/yyyy, yy/m/d, yyyy/mm/dd, dmyy, ddmmyyyy, mdy, mmddyyyy, yymd, yyyymmdd |
|
Месяц рождения | Извлечение значения месяца из форматов d/m/yy, dd/mm/yyyy, m/d/y, mm/dd/yyyy, yy/m/d, yyyy/mm/dd, m/yy, mm/yyyy, yy/m, yyyy/mm, dmyy, ddmmyyyy, mdy, mmddyyyy, yymd, yyyymmdd |
|
Год рождения | Извлечение значения года из форматов d/m/yy, dd/mm/yyyy, m/d/y, mm/dd/yyyy, yy/m/d, yyyy/mm/dd, m/yy, mm/yyyy, yy/m, yyyy/mm, yy yyyy, dmyy, ddmmyyyy, mdy, mmddyyyy, yymd, yyyymmdd |
Год рождения не определился
Фильтрация таблицы в зависимости от заданного условия. В верхний выходной порт попадают строки, которые удовлетворяют условию, в нижний — все остальные.
В мастере настройки задано условие: «Год рождения пустое».
Разбор дат с некорректными значениями компонентов
Разбиение даты, которая, вероятно, задана ошибочно, на дни, месяцы и годы.
Описание показателей представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
День рождения Ошибка | Извлечение значения дня из форматов d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd |
|
Месяц рождения Ошибка | Извлечение значения месяца из форматов d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd |
|
Год рождения Ошибка | Извлечение значения года из форматов d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd |
Преобразование компонент дат в единый формат — Примечания: Некорректные исходные даты
Этот узел объединяет в себе несколько других узлов для их последующего переиспользования и повышения читаемости сценария. В данном примере он включает в себя четыре узла Калькулятор, которые будут рассмотрены далее. Сценарий внутри подмодели представлен на рисунке:

Далее будут рассмотрены включенные в Подмодель узлы.
Преобразование компонент дат в единый формат
Преобразование даты в единый формат DD, MM, YYYY.
Описание показателей представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
Преобразованный день | Преобразование значения дня к стандартному двузначному виду |
|
Преобразованный месяц | Преобразование значения месяца к стандартному двузначному виду |
|
Преобразованный год | Преобразование значения года к стандартному четырехзначному виду |
Формирование очищенной даты
Преобразование даты в единый формат DD.MM.YYYY типа Дата/Время.
Описание показателя представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
Очищенная дата рождения | Сборка дня, месяца и года в одну строку типа Дата/Время |
Расчет — Возраст на момент очистки
Расчет возраста клиента на момент проведения очистки.
Описание показателя представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
Возраст на момент очищения | Расчет возраста для всех распознанных дат |
Примечания: Некорректные исходные даты
Комментарий о корректности/некорректности полученной даты.
Описание показателя представлено в таблице:
Имя поля | Метка поля | Описание |
---|---|---|
Комментарий | Добавление комментария о корректности/некорректности полученной даты |
Присоединение дат, восстановленных по строковому значению месяца
Объединение очищенных строк, дата в которых задана строкой, а также строк, в которых дата задана корректным числом.
Мастер настройки узла показан на рисунке:

Преобразование компонент дат в единый формат — Примечания: Некорректные исходные даты
Этот компонент повторно выполняет привязанную к нему подмодель с другими входными данными.
Итоги очистки
Окончательное объединение очищенных данных.
Мастер настройки узла показан на рисунке:

Результирующая таблица после проведения разбора и очистки данных показана на рисунке:
