Разбор и очистка дат рождения

Введение

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

Исходные данные

Таблица "Даты рождения":

Имя поля Метка поля
 birthDate Дата рождения
 firstName Имя
 lastName Фамилия
 surName Отчество
 clientID Код клиента

Таблица "Кодировка месяца":

Имя поля Метка поля
 monthName Месяц строковый
 monthShortName Первые 3 буквы
 monthNumber Номер месяца

Алгоритм

  1. Разбор даты представленной в строковом виде.
  2. Разбор даты представленной в числовом виде.
  3. Преобразование даты в единый формат dd/mm/yyyy.
  4. Формирование примечаний при некорректном разборе дат рождения.

Сценарий

Сценарий разбора и очистки дат рождения.
Рисунок 1. Сценарий разбора и очистки дат рождения.

 Даты рождения и Кодировка месяца

Данные узлы позволяют импортировать табличные данные из текстового файла. В сценарии они используются для импорта таблиц "Даты рождения" и "Кодировка месяца". Все параметры задаются в соответствии с описанием входных данных.

 Разбор даты рождения — месяц задан строкой

Первичный разбор исходных данных: выбираются такие даты рождения, где месяц задан в виде строки.

Описание показателей представлено в таблице:

Имя поля Метка поля Описание
 birthDay День рождения Извлечение символов дня из формата
d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd
 birthMonth Месяц рождения Извлечение первых трех символов строкового месяца из формата
d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd
 birthYear Год рождения Извлечение символов года из формата
d/month/yy и dd/month/yyyy и формата yy-month-d и yyyy-month-dd

 Месяц задан строкой

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

В мастере настройки задано такое условие: "Месяц рождения не пустое".

 Присоединение кодировки месяца

Отфильтрованные данные, в которых месяц рождения задан строкой, дополняются значениями из справочной таблицы "Кодировка месяца", с целью сопоставить название месяца с его номером.

Мастер настройки показан на рисунке:

Мастер настройки узла "Слияние" — "Присоединение кодировки месяца".
Рисунок 2. Мастер настройки узла "Слияние" — "Присоединение кодировки месяца".

 Разбор даты рождения — месяц задан числом

Разбиение даты, заданной числом, на дни, месяцы и годы.

Описание показателей представлено в таблице:

Имя поля Метка поля Описание
 birthDay День рождения Извлечение значения дня из форматов
d/m/yy, dd/mm/yyyy, m/d/y, mm/dd/yyyy, yy/m/d, yyyy/mm/dd, dmyy,
ddmmyyyy, mdy, mmddyyyy, yymd, yyyymmdd
 birthMonth Месяц рождения Извлечение значения месяца из форматов
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
 birthYear Год рождения Извлечение значения года из форматов
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

 Год рождения не определился

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

В мастере настройки задано условие: "Год рождения пустое".

 Разбор дат с некорректными значениями компонентов

Разбиение даты, которая, вероятно, задана ошибочно, на дни, месяцы и годы.

Описание показателей представлено в таблице:

Имя поля Метка поля Описание
 birthDayErr День рождения Ошибка Извлечение значения дня из форматов
d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd
 birthMonthErr Месяц рождения Ошибка Извлечение значения месяца из форматов
d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd
 birthYearErr Год рождения Ошибка Извлечение значения года из форматов
d/m/yy, dd/mm/yyyy, yy/m/d, yyyy/mm/dd

 Преобразование компонент дат в единый формат — Примечания: Некорректные исходные даты

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

Сценарий в узле "Подмодель".
Рисунок 3. Сценарий в узле "Подмодель".

Далее будут рассмотрены включенные в "Подмодель" узлы.

 Преобразование компонент дат в единый формат

Преобразование даты в единый формат DD, MM, YYYY.

Описание показателей представлено в таблице:

Имя поля Метка поля Описание
 birthDayTransform Преобразованный день Преобразование значения дня к стандартному
двузначному виду
 birthMonthTransform Преобразованный месяц Преобразование значения месяца к стандартному
двузначному виду
 birthYearTransform Преобразованный год Преобразование значения года к стандартному
четырехзначному виду

 Формирование очищенной даты

Преобразование даты в единый формат DD.MM.YYYY типа Дата/Время.

Описание показателя представлено в таблице:

Имя поля Метка поля Описание
 clearBirthDate Очищенная дата рождения Сборка дня, месяца и года в одну строку типа Дата/Время

 Расчет — Возраст на момент очистки

Расчет возраста клиента на момент проведения очистки.

Описание показателя представлено в таблице:

Имя поля Метка поля Описание
 age Возраст на момент очищения Расчет возраста для всех распознанных дат

 Примечания: Некорректные исходные даты

Комментарий о корректности/некорректности полученной даты.

Описание показателя представлено в таблице:

Имя поля Метка поля Описание
 comment Комментарий Добавление комментария о корректности/некорректности полученной даты

 Присоединение дат, восстановленных по строковому значению месяца

Объединение очищенных строк, дата в которых задана строкой, а также строк, в которых дата задана корректным числом.

Мастер настройки узла показан на рисунке:

Мастер настройки узла "Объединение" — "Присоединение дат восстановленных по строковому значению месяца".
Рисунок 4. Мастер настройки узла "Объединение" — "Присоединение дат восстановленных по строковому значению месяца".

 Преобразование компонент дат в единый формат — Примечания: Некорректные исходные даты

Этот компонент повторно выполняет привязанную к нему подмодель с другими входными данными.

 Итоги очистки

Окончательное объединение очищенных данных.

Мастер настройки узла показан на рисунке:

Мастер настройки узла "Объединение" — "Итоги очистки".
Рисунок 5. Мастер настройки узла "Объединение" — "Итоги очистки".

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

Результирующая таблица расчетов.
Рисунок 6. Результирующая таблица расчетов.

Компоненты

Файлы

Скачать

results matching ""

    No results matching ""