Наличие продублированной информации или утраченной информации может стать причиной некорректной статистики. Очистка данных выполняется в области подготовки данных до загрузки преобразованных данных в хранилище. Существует множество средств для очистки данных с разным уровнем функциональности, но всё же большой объём работы часто приходится выполнять вручную или с помощью низкоуровневых программ, трудных и для написания, и для использования. Проблемы отдельных источников данных Проблемы отдельного источника данных на уровне схемы +---------------------------------+---------------------------------+-----------------------------------+ |Область/Проблема |Загрязнённые данные |Причины/Примечания | +----------------+----------------+---------------------------------+-----------------------------------+ |Атрибут |Недопустимое значение |ДатаРожд='20.13.90' |Значение вне допуст. обл. | +----------+----------------------+---------------------------------+-----------------------------------+ |Строка |Нарушение логических |Возраст=22, |Возраст не соответствует дате ро- | | |связей |ДатаРожд='20.12.90' |ждения | +----------+----------------------+---------------------------------+-----------------------------------+ |Тип строки|Нарушение уникальности|Сотр1=(Фам='Петренко', ТабN=123) |Нарушена уникальность идентифика- | | | |Сотр2=(Фам='Шевченко', ТабN=123) |ционного номера | +----------+----------------------+---------------------------------+-----------------------------------+ |Источник |Нарушение целостности |Сотр=(Фам='Петренко', КодОТ.) |<...> | | |ссылок | | | | +----------------------+ | | | |Проблема отдельных ис-| | | | |точников данных на | | | | |уровне элемента | | | +----------+----------------------+---------------------------------+-----------------------------------+ |Атрибут |Утраченные значения |ИдКод=9999..99 |Невведенные значения (бессмысленные| | | | |либо неопределённые) | | +----------------------+---------------------------------+-----------------------------------+ | |Орфографические ошибки|Город='Хмельницкий' |Опечатки либо фонетические ошибки | | +----------------------+---------------------------------+-----------------------------------+ | |Зашифрованные значения|Категория='В' | | | |и аббревиатуры |Должность='Сисадмин' | | | +----------------------+---------------------------------+-----------------------------------+ | |Вложенные значения |Имя='Петренко И. 12.02.80 Одесса'|Множество значений в одном атрибуте| | +----------------------+---------------------------------+-----------------------------------+ | |Значения, не соответс-|Город='Украина' | | | |твующие своим полям | | | +----------+----------------------+---------------------------------+-----------------------------------+ |Строка |Нарушение логических |Город='Одесса' |Индекс не соответствует городу | | |связей |Индекс=44065 | | +----------+----------------------+---------------------------------+-----------------------------------+ |Тип строки|Перестановка слов |Имя1='Петренко И.' |Встречается в полях свободного фор-| | | |Имя2='Ив.Петров' |мата | | +----------------------+---------------------------------+-----------------------------------+ | |Дубл. записи |Сотр1=(ФИО='Петренко Иван') | | | | |Сотр2=(ФИО='Петренко И.') | | | +----------------------+---------------------------------+-----------------------------------+ | |Противоречивые записи |Сотр1=('Петров Иван', | | | |записи | ДатаРожд='12.02.80') | | | | |Сотр2=('Петров И.', | | | | | ДатаРожд='12.12.80') | | +----------+----------------------+---------------------------------+-----------------------------------+ |Источник |Неверные ссылки |Сотр1=(ФИО='Петров', КодОтд=17) |Отдел 17 существует, но Петров в | | | | |нём не работает | +----------+----------------------+---------------------------------+-----------------------------------+ Проблемы множества источников данных Каждый источник может содержать загрязнённые, перекрывающие или противоречащие друг другу данные. Причина -- независимая разработка и внедрение оперативных систем. Основные проблемы при проектировании схемы -- это конфликты наименований и структурные конфликты. Конфликты наименований: одно имя используется для разных объектов, или наоборот -- разные имена для одного объекта. Структурные конфликты связаны с разным представлением одного и того же объекта в разных источниках (разная структура компонентов, разные типы данных, разные ограничения целостности). Даже одинаковые по типу атрибуты могут по-разному интерпретироваться. В разных источниках данные могут быть представлены на разных уровнях агрегации, например, в одном источнике -- продажи за день, в другом -- за неделю. Поэтому основной проблемой очистки данных из множества источников является поиск перекрывающихся данных (проблема идентичности объектов, проблема исключения дубликатов, проблема слияния/удаления). Бывает, что источники могут дополнять друг друга отдельной информацией. Тогда продублированная информация должна быть удалена, а дополняющая должна быть проконсолидирована. Ист1 Заказчик +--+----------------+---------------+-------------------------+---+ |Id|Имя |Улица |Город |Пол| +--+----------------+---------------+-------------------------+---+ |11|Евгения Петренко|Ул. Шевченко, 2|Белгород-Днестровский, |0 | | | | |Одесская обл. | | +--+----------------+---------------+-------------------------+---+ |24|Евгений Петренко|Пр. Шевченко, 2|Бг-Днестровский, Од. обл.|1 | +--+----------------+---------------+-------------------------+---+ Клиент +---------+--------+-------+---+-------------------+---------+ |N клиента|Фам. |Имя |Род|Адрес |Телефон | +---------+--------+-------+---+-------------------+---------+ |24 |Петренко|Евгений| М |Николаевская обл., |333 22 11| | | | | |Первомайск, | | | | | | |ул. Шевченко, 2 | | +---------+--------+-------+---+-------------------+---------+ |493 |Петренко|Евг. М.| Ж |Од. обл., Белгород-|555 44 32| | | | | |-Днестровский, | | | | | | |ул. Шевченко, 2 | | +---------+--------+-------+---+-------------------+---------+ Клиенты +---+--------+-------+---+---------------+---------------------+------------+-------+--+---------+ |Код|Фам. |Имя |Род|Улица |Город |Область |Телефон|Id|N клиента| +---+--------+-------+---+---------------+---------------------+------------+-------+--+---------+ | 1 |Петренко|Евгения| Ж |ул. Шевченко, 2|Белгород-Днестровский|Одесская |5554433|11| 493 | | 2 |Петренко|Евгений| М |ул. Шевченко, 2|Белгород-Днестровский|Одесская |5554433|11| | | 3 |Петренко|Евгений| М |ул. Шевченко, 2|Первомайск |Николаевская|5554433|11| 24 | Методы очистки данных Очистка данных включает в целом несколько этапов: 1) анализ данных: выявление подлежащих удалению видов ошибок и несоответствий с использованием ручной проверки данных и аналитических программ для получения метаданных о свойствах данных и, соответственно, выявления проблем качества данных; 2) определение порядка и правил преобразования данных: преобразования должны, насколько возможно, определяться с помощью запросов, и маппирование запросов с автоматической генерацией кодов преобразований; 3) подтверждение: необходимо протестировать возможные копии данных, здесь могут быть несколько итераций, поскольку ошибки могут быть обнаружены после определённых преобразований; 4) преобразование; 5) противоток очищенных данных.