И речь совсем не о проверке на антиплагиат. Кстати, сталкивались с этим или получили диплом раньше? Хотя, в целом и антиплагиат о том же – проверке на уникальность. Её еще называют проверка на дубли.
Зачем это нужно? Чтобы потребители и пользователи увидели и могли использовать корректную информацию. Например, поиск по адресу, и пять домов с одинаковым номером, и только к одному из них подтягиваются номера квартир. Или номера транспортных маршрутов. Как вам 1, 1а, 1к, 1д и другие «единички» с мелкими приписанными буквами? Они идут в разные места, но часть маршрута общая. Иногда, подстраиваясь под дорожную обстановку, они меняют на лету таблички. Можно сесть в 1д, а оказаться в 1к и думать «я не внимателен или поменяли?» Но тут хотя бы есть разница в буквах. А представьте вашего полного тёзку? Может быть, даже родственника. Вы живёте в одном городе, на одной улице, в одной квартире. Как почтальону или звонящему по телефону различить, кто есть кто? Дублирование и отсутствие уникальности на лицо! 😊 А 100500 одинаковых файлов в разных папках?
Перед настройкой этой проверки стоит проверить, в каких таблицах какие атрибуты должны быть уникальными. Это может быть ключ таблицы, а может быть и нет. Вполне возможно, что уникальными должно быть сочетание полей, но не всех, а лишь некоторых (как в случае с тёзкой, людей можно различить по разным датам рождения).
Способы реализации проверки данных на дубли могут быть разные. Это и использование в скриптах HAVING count(*) > 1, и фильтрация выгрузки в эксель, и проверка на отсутствие дублей в коде, и ограничения UNIQUE, CHECK или специальные программы.
Еще не стоит забывать о противоречиях – записях, отличающихся хотя бы по одному полю. Это могут оказаться не уникальные записи, а ошибки. Если их пропустить – мы получим искаженный результат исследования данных. Настраивать ли эту проверку – зависит от данных и целесообразности использования ресурсов, соизмеримости с полученным результатом.
Следующая проверка, которую обычно тоже подключают в числе первых – проверка на актуальность.
И тут сначала нужно понять, что именно для ваших данных – актуально, как часто их нужно проверять и какие возможны допуски.
Какие-то данные обновляются раз в год, какие-то – раз в месяц, какие-то каждый день. Например, данные об инфляции Росстат публикует раз в месяц за прошлый месяц, и их нет смысла проверять каждый день, а котировки валют Центральный Банк обновляет ежедневно. Ключевая ставка может меняться в любой день, без четкого графика, а данные о погоде обновляют много раз в день. Данные о билетах обновляются после каждой транзакции, а критичные системы мониторят несколько раз в минуту.
Следующий вопрос – как быстро вы получаете эти данные, сразу из источника или есть какие-то поставщики данных, посредники, третьи лица. Может быть, вы строите свои витрины на обработанных данных коллег, тогда ваша актуальность будет совсем не молниеносной, а спустя несколько дней, и это тоже нормально 😊
Актуальность есть смысл проверять далеко не во всех таблицах. Например, статичные справочники, таблицы с некритичными данными, технические таблицы.
После этого следует этап, на самом деле важный для многих проверок - определиться, по какому атрибуту проверять. Есть ли в вашей таблице поле, содержащее дату? Какой у этого поля формат? Вполне может оказаться, что проще и надёжнее проверять по техническому полю "дата загрузки".
А может быть и такое, что вам вообще не нужно проверять на актуальность. Может, используются только справочники, которые меняются крайне редко и нет таблиц с регулярным обновлением.
Одна из основных проверок данных – проверка на полноту. Есть разные теории, что понимать под этим, и даже в рамках одной организации подходы могут отличаться.
Полнота данных означает, что все необходимые элементы присутствуют в наборе данных и что они полностью соответствуют требованиям задачи.
Существует несколько вариантов того, что может подразумеваться под полнотой данных:
- Наличие всех необходимых атрибутов. Например, если мы создаем базу данных клиентов, то каждый клиент должен иметь свой уникальный идентификатор, имя, фамилию, адрес электронной почты и номер телефона. Если какой-то из этих атрибутов отсутствует, то данные считаются неполными.
- Отсутствие пропусков в последовательности значений. Например, если мы составляем список товаров для интернет-магазина, то каждый товар должен иметь свой уникальный артикул и цену. Если какие-то товары отсутствуют в списке или цены на них не указаны, то данные считаются неполными.
- Достаточность объема выборки. Например, если мы проводим социологический опрос населения города N, то необходимо опросить достаточное количество респондентов, чтобы получить репрезентативную выборку. Если число опрошенных людей недостаточно велико, то данные считаются неполными.
Примеры проверки полноты данных могут быть различными в зависимости от конкретной задачи. Однако важно понимать, что любая информация должна быть полной и точной для того, чтобы ее можно было использовать в дальнейшем анализе или принятии решений. Иногда, под полнотой понимают только объём данных (например, что количество записей из таблицы 1 совпадает с количеством записей, преданных в таблицу 2), иногда – включают проверки на глубину и широту данных (есть данные за последний год и достаточное количество атрибутов заполнено), а иногда – просто на not null.
Что будет, если не проверять данные, а просто использовать их?
В лучшем случае – вам повезет и данные будут проверены на стороне источника, например, если это какие-то официальные данные или поставщик данных берет на себя ответственность.
А в худшем – вы будете принимать решения, опираясь на некорректные данные, и можете понести финансовые и репутационные потери. Если в прогнозе погоды из раза в раз будет обещано солнышко, а фактически – холодный ветер с дождём, скорее всего вы перестанете доверять этому источнику. Если на ценнике написано 100 рублей, а на кассе выясняется, что 150 – неприятненько и можно начать обходить магазин стороной. Если вам обещали построить дом за месяц, вы продали квартиру и уже готовы въезжать, а от дома готов только фундамент – вероятно, впереди судебные тяжбы и поиск жилья.
Особенно важно проверять данные, если их используете не только вы сами, но и на основе ваших результатов строит свои стратегии кто-то другой. Именно от ваших решений и качества предоставляемых вами данных будет зависеть достижение результата конечным получателем данных.
Какая ситуация с некачественными данными вспоминается? Может, когда одноклассники пошутили и сказали, что ничего не задано, а вы получили двойку? А может, когда в магазине не хватило денег из-за изменения цен? Или вам понравилась красивая фотография, а на свидании ждал сюрприз? Что было у вас? 😉
Самый простой, но и самый затратный и не очень надёжный способ – смотреть глазами. Простой, потому что не требует никакого ПО или специальных навыков. Любой человек может сравнить дату, стоимость, количество строк, объем (например, в накладной 10 кг, а фактически 1 – это будет заметно), названия и другие важные параметры. Другое дело, что это занимает рабочее время, а человеческие ошибки никто не отменял.
Следующий способ – доверить проверки программе. Если в организации есть разработчик, можно его попросить написать несложные проверки по заданным параметрам, особенно если налажен электронный документооборот. Критерии проверок определяются обычно совместно, бизнес-подразделением и разработчиками, с учетом возможностей поставщиков данных.
На рынке предоставлено огромное количество готовых продуктов для проверки качества данных (Data Quality Software), открывается простор для выбора решений. Это и отечественные разработки, например, Platform V SDP DataQuality от Сбера, и IBM InfoSphere Information Server, и OpenRefine (он же Google Refine), и Informatica Data Quality, и Oracle Data Quality, и Microsoft Data Quality Services, и SAP Data Services, и Talend Data Fabric (Qlik), и Ab Initio, и множество других. Выбор зависит от того, какие задачи нужно решать, бюджета, критичности и особенностей проверяемых данных.
Кстати, нужно понимать, что любые автоматизированные проверки нужно тщательно настраивать, и на это тоже нужно время.
Один из основных вопросов, который появляется, когда принято решение о необходимости проверки данных – на что их проверять?
Для начала, рекомендуется провести профилирование имеющихся данных – узнать, какие данные есть, из каких источников поступают, как часто обновляются. Закрыты ли этими данными все требования, или их не хватает. После профилирования становится понятно, где есть «просадки», «выбросы», на что нужно обратить особое внимание.
Обычно, начинают с проверок на дубликаты, на аномальные выбросы, на полноту данных, их целостность, точность, актуальность, уникальность и достоверность. Затем добавляют уже точечно, нужные именно вашему процессу проверки – на объем, своевременность, доступность, согласованность и другие.
Список проверок может быть огромным, и какие именно данные и на что именно проверять – зависит от процессов, в которых эти данные используются и как часто обновляются, а еще от того, где, как и кем проверяются до вас. Как думаете, есть ли важные и не важные проверки? Если да, то какие важны, а какие – не очень?
Данные, если верить википедии – это зарегистрированная информация, представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств.
Для правильной интерпретации и предоставления заказчиками корректных данных, необходимо убедиться в их качестве. Это является необходимым этапом любого проекта, подразумевающего любой анализ данных, потому что иначе алгоритмы будут давать некорректные результаты.
Если планируется любое переиспользование данных, их нужно проверять, ведь их качество влияет и на принятие решений о дальнейших действиях, и на инвестиции, и на адаптацию к изменениям извне, и помогает понимать клиентов, и распределять ресурсы, и еще много чего. А если переиспользовать данные не планируется – то зачем они вам вообще?
Качество данных - Data Quality - характеристика, показывающая степень пригодности данных к дальнейшему использованию, их соответствие предъявленным требованиям.
Например, если внезапно телефон покажет, что сегодня – сентябрь 2007 года, а доллар стоит 25 рублей, это будут однозначно некачественные данные. Ну или подтверждение работоспособности машины времени 😊 Обычно качество измеряют по нескольким критериям, чаще всего в совокупности: достоверность, точность, полнота, согласованность, доступность, надежность, своевременность, актуальность, уникальность и другие.
На пригодность данных для работы влияет сфера применения или направление отдела, который с ними работает, а также критерии оценки. Одни и те же данные могут быть пригодны для работы маркетинга, а для аналитиков – нет.
Данные в одной организации могут использоваться по-разному: для построения хранилищ данных, для дальнейшей переработки и построения витрин данных, для построения дашбордов с метриками качества данных, ведения справочников и предоставления информации конечному потребителю.
Знакомы ли вы с этим направлением деятельности? Есть ли в вашей организации подразделение, занимающееся качеством данных?