Поздравляем Вы успешно реализовали тестирование данных в вашем трубопроводе! Вы знаете, что это использует инструмент или домашний код валидации, вы знаете, что закрепление ваших данных через тестирование данных абсолютно имеет решающее значение для обеспечения высококачественных надежных данных о предоставлении данных, и вы предприняли необходимые шаги, чтобы добраться туда. Все ваши проблемы с данными в настоящее время решаются, и вы можете спать надежно, зная, что ваши трубопроводы для передачи данных будут доставлять красивые, высококачественные данные для ваших заинтересованных сторон! Но подожди … не так быстро Отказ Есть только одна деталь, которые вы, возможно, пропустили: что происходит, когда ваши тесты на самом деле не удаются? Вы знаете, как вы собираетесь быть предупрежденным? Кто-нибудь контролирует оповещения? Кто отвечает за их ответ? Как бы вы могли сказать, что пошло не так? И … Как вы исправите какие-либо проблемы с данными, которые возникают?
Как взволнован как команды данных могут быть о внедрении проверки данных в своих трубопроводах — Настоящая проблема (и искусство!) Тестирование данных не только то, как вы обнаружите проблемы с данными, но и как вы на них отвечаете Отказ В этой статье мы поговорим через некоторые из ключевых этапов реагирования на тесты данных, и описывать некоторые из важных вещей, которые следует учитывать при разработке стратегии качества данных для вашей команды. Диаграмма ниже показывает шаги, которые мы будем охватывать:
- Системный ответ на неудачу
- Регистрация и оповещение
- Ответ предупреждения
- Root причина идентификации
- Резолюция выпуска
- Серьезная связь (через несколько этапов)
Реакция системы
Первая строка ответа на неудачный тест данных, прежде чем любые люди уведомляются, являются автоматическими ответами системы к неудачному отказа, которое решает, и как продолжить любые трубопроводные прогоны. Это может принять одну из следующих форм:
- Ничего не делать. Продолжайте запускать трубопровод и просто войдите в неисправность или предупреждайте команду (подробнее на этом ниже).
- Изолировать «плохие» данные, например, Переместите строки, которые не проваливают тесты на отдельный стол или файл, но продолжайте запускать трубопровод для остатка.
- Остановите трубопровод.
Реакция системы также может варьироваться в зависимости от уровня тяжести обнаруженной проблемы, а также в случае использования ниже по потоку: может быть, все в порядке, чтобы продолжать управлять трубопроводом, и только уведомить заинтересованные стороны для определенных «предупреждающих» проблем уровня, но это должно быть абсолютно не приостановлено для других , «Критические», ошибки.
Регистрация и оповещение
Хотя это абсолютно возможно для результатов проверки данных, которые будут просто записаны в некоторую форму журнала, мы предполагаем, что, по крайней мере, некоторые из ваших тестов будут достаточно критическими, чтобы потребовать оповещения. Некоторые вещи, которые следует учитывать здесь:
- Какие ошибки нуждаются в оповещении, а какие могут просто регистрироваться как предупреждение? Обязательно выберите правильный уровень серьезности для ваших предупреждений и сообщите только заинтересованными сторонами, когда он абсолютно необходимо, чтобы избежать усталости оповещения.
- Какая среда вы выбираете для предупреждений? Вы отправляете сообщения на занятую Slack Channel или чей-то почтовый ящик по электронной почте, где они могут остаться незамеченными? Выполняют ли критические оповещения с ежедневными отчетами о состоянии, которые могут быть менее актуальными для посмотрения? Использование такого инструмента, как Pagerdututy, позволяет вам точно настроить предупреждения, чтобы соответствовать уровню серьезности и необходимой отзывчивости.
- Какое своевременность предупреждений? Уведомления отправляются в определенное время или они просто появляются в какой-то момент в течение дня? Это важный фактор для рассмотрения Когда ваш механизм оповещения не удается — Кто-нибудь заметил?
Ответ предупреждения
Теперь, когда ваше оповещение красиво настроено, вы на следующем препятствии: кто на самом деле будет видеть и отвечать на эти уведомления? Некоторые факторы, которые необходимо учитывать:
- Кто получает уведомление и когда? Вверх по течению данных производителей данных, потребители данных, команда, которая принадлежит трубопроводами данных, любой другой? Убедитесь, что у вас есть четкая карта того, кто касается ваших данных, и кому нужно знать, есть ли какие-либо проблемы.
- Кто на самом деле несет ответственность за признание и расследование предупреждения? Это, вероятно, один из самых важных факторов для рассмотрения при настройке тестирования данных: кто-то действительно должен владеть ответом. Это может не всегда быть одним и тем же лицом или командой для всех типов тестов, но вам лучше иметь четкий план, чтобы избежать проблем незамеченных или игнорируемых, что, в свою очередь, может вызвать разочарование с заинтересованными сторонами. Я не говорю, что вам нужно поворотное вращение, но, может быть, … возможно, вам нужно вращение на вызове. Сказав это, пожалуйста, смотрите предыдущий абзац на тонкой настройке тяжести ваших предупреждений: по вызову не обязательно означает получение монтажных звонков в середине ночи. Это просто означает, что кто-то знает, что они несут ответственность за эти оповещения, и их команда и заинтересованные стороны знают, кто несет ответственность.
- Ваши уведомления достаточно ясно для ваших заинтересованных сторон, чтобы знать, что они подразумевают? В частности, ваши данные потребителей знают, как интерпретировать оповещение и знать, какие шаги, чтобы получить больше информации о проблеме или потенциальном разрешении? (Подсказка: имея четкую точку контакта, таких как инженер на звонках, часто помогает с этим тоже!)
Связь заинтересованных сторон
Хотя легко перейти прямо на реагирование на провал теста и выяснить, что происходит, вы, вероятно, должны на мгновение подумать о том, кому еще нужно знать. Самое главное, в большинстве случаев вы хотите позволить своим потребителям данные знают, что «что-то работает с данными», прежде чем они замечают. Конечно, это не специфично для трубопроводов для передачи данных, но часто более сложнее для потребителей данных по течению данных, чтобы увидеть, что данные «выключены» по сравнению с, скажем, веб-приложение, находящееся в непосредственной близости или глючи. Заинтересованные стороны могут быть уже уведомлены через автоматическое оповещение, либо через PlayBook, который включает уведомление правильных людей или команд в зависимости от уровня тяжести ваших предупреждений. Вы также захотите сохранить открытую линию связи с вашими заинтересованными сторонами, чтобы дать им обновления в процессе разрешения выпуска и быть доступным для ответа на любые вопросы или если (и только если) абсолютно необходимо, чтобы некоторые быстрые исправления Некоторые срочные потребности данных.
Root причина идентификации
На высоком уровне мы думаем о кореных причинах для сбоев тестирования данных, как принадлежащие одной из следующих категорий:
- Данные на самом деле правильные, но наши тесты должны быть скорректированы. Это может случиться, например, когда есть необычные, но правильные, выбросы.
- Данные действительно «сломаны», но его можно исправить. Простой пример для этого неверное форматирование дат или номеров телефонов.
- Данные действительно повреждены, и это не может быть исправлено, например, когда оно отсутствует значения.
Одним из очень распространенных источников проблем с данными, возникающими на этапе загрузки данных или приема данных, являются изменения, которые в основном вышли из контроля группы данных. В свое время работают с третьим лицами Healthcare данных, я видел различные проблемы с данными, которые возникли, казалось бы, из ниоткуда. Некоторые распространенные примеры включают в себя данные, не имеющие актуальность из-за задержки доставки данных, свойства таблиц, такие как имена столбцов и типы, изменяющиеся неожиданно, или значения и диапазоны, отнесенные от того, что ожидается из-за изменений в том, как данные генерируются. Другая основная причина проблем с приемом данных — это проблемы с фактическими проглатами или оркестовой деятельностью, которые часто проявляются как «несвежие данные». Это может произойти, когда процессы зависают, авартируют или подкрепляются из-за длительных занятий.
Теперь, как вы обратитесь к идентификации корневой причины проблем с приемом данных? Ключ здесь должен быть методичен о
- Определение точного выпуска, которая фактически происходит и
- Выявление того, что вызывает проблему.
Что касается первого, моя рекомендация — не предпринимать проблемы и тестируемые сбои при значении лица. Например, тест на нулевые значения в столбце могут потерпеть неудачу, потому что некоторые строки имеют фактические нулевые значения — или потому что этот столбец больше не существует. Убедитесь, что вы посмотрите на все сбои и определите, что именно проблема. После того, как проблема ясна, пришло время надеть свою детективную шляпу и начать расследовать, что могло бы вызвать его. Конечно, мы не можем перечислить все потенциальные причины здесь, но некоторые общие, которые вы можете проверить, включают в себя:
- Недавние изменения в процессе проглатывания (попросите ваших товарищей по команде или пройти свой журнал управления версией)
- Разбитые процессы или прерываемые соединения (файлы журнала обычно полезны)
- Задержки в доставке данных (проверьте, если все ваши исходные данные сделали его туда, где он принимает во времени)
- Вверх по течению изменений данных (проверьте данные исходных данных и подтвердите с производителями данных, будь то преднамеренные или нет) и, наконец, в то время как сбои приема данных часто вне нашего контроля, тестовые сбои на преобразованные данные обычно вызываются изменениями преобразования. код. Один из способов противодействия этим видам неожиданных побочных эффектов состоит в том, чтобы включить тестирование трубопровода данных как часть вашего процесса разработки и процессов CI/CD. Включение инженеров и ученых данных для автоматической проверки их кода, например. Против золотого набора данных, сделает его менее вероятным для нежелательных побочных эффектов, чтобы фактически перейти в производство.
Резолюция выпуска
Теперь … Как я это исправить? Конечно, нет единого подхода к фиксации проблем с данными, поскольку исправление сильно зависит от фактической причины ее — Duh. Возвращаясь к нашим рамках трех типов коренных причин для тестовых сбоев, которые мы выложили в предыдущем абзаце, мы можем рассмотреть следующие три категории «исправлений», чтобы ваши тесты снова идут зелеными:
- Если вы определите, что данные действительно правильные, но ваши тесты не удалось, вам необходимо настроить тесты, чтобы принять во внимание эти новые знания.
- Если данные фиксируются, некоторые из потенциальных разрешений включают в себя повторное использование трубопроводов, потенциально с повышенной устойчивостью к нарушениям, такими как тайм-ауты или ограничения ресурсов, или устранение кода трубопровода и идеально добавляют некоторые механизмы, чтобы позволить инженерам проверить их код для предотвратить одинаковую проблему снова.
- Если данные нарушаются за пределами вашего управления, вам может придеться подключиться к производителям данных для повторного выдачи данных, если это вообще возможно. Однако могут также быть ситуации, в которых вам нужно изолировать «сломанные» записи, наборы данных или разделы, пока проблема не будет решена, или, возможно, для хорошего. Особенно, когда вы имеете дело с третьим сторонним данными, иногда случается, что данные удаляются, изменены или больше не обновляются, до точки, где она просто больше не подходит для вашего использования.
Мои тесты данных проходят, я хороший!
ДА! Ты хочешь! Не испортить ваш день здесь, но вы также можете помнить, что ваши данные тесты передают, потому что вы просто не тестируете на правильные вещи. И поверь мне, учитывая, что почти невозможно написать тесты данных на каждую возможную возможную проблему с данными, прежде чем столкнуться в первый раз, вы, вероятно, пройдут некоторые случаи, будь то маленькие и очень редкие краевые чехлы, или что-то яркое очевидно. Я рад признать, что когда-то удалось ежедневный трубопровод для приема данных, который будет предупрежден, если отчет о записи упал Значительно из одного дня до следующего, так как это обычно было нашей самой большой проблемой. Мало что я знаю, что ошибка в нашем трубопроводе случайно Двойной Рекорд считается размером, который помимо некоторых «хм, эти трубопроводы работают очень медленные сегодня» комментарии вызвали шокирующе мало подозрений — до тех пор, пока человек фактически не смотрел на полученные приборные панели и не заметил, что наш счетчик пользователей вздрогнул в тот день.
Так что вы делаете, чтобы ваши тесты более прочными против этих «неизвестных неизвестных»? Ну, если честно, это еще не решенная проблема для нас тоже, но вот некоторые идеи:
- Используйте автоматизированный профилировщик для генерации тестов данных, чтобы увеличить тестовое покрытие в областях, которые могут быть не совсем очевидными для вас. Например, вы даже не будете рассматривать тестирование для среднего значения цифровой колонки, но автоматически сгенерированный тест может сделать ваши данные более надежными на неожиданные сдвиги, которые не поймали, просто утверждая мин и максимум этой колонны. Одним из вариантов, чтобы рассмотреть возможность понимать эти «вторичные» тесты в отдельный тестовый набор и уменьшить уровень оповещения, поэтому вы только получаете только о фактических значимых изменениях.
- Обязательно пообщайтесь со своими тестами данных в команде и выполните кодирующие обзоры тестов, когда они добавляются или изменены, точно так же, как вы бы с фактическим кодом трубопровода. Это облегчает поверхность всех предположений, которые работают над трубопроводом, оказывают о данных и выделяют какие-либо недостатки в тестах.
- Разработайте ли руководственные данные о ваших данных, возможно, также с помощью профилировщика. Автоматизированные тесты отличные, но я бы утверждал, что знакомство с данными всегда важным фактором в том, как быстро команда может заметить, когда что-то «выключено», даже когда нет теста на месте. Последним этапом вашей стратегии качества данных может быть реализовать периодический «аудит» ваших данных ваших данных, чтобы все по-прежнему выглядеть так, как они должны, и эти тесты являются полными и точными (и фактически запускаются).
Резюме
Мы действительно надеемся, что этот пост дал вам хорошее представление о различных шагах, которые следует учитывать, когда вы реализуете проверку данных для ваших трубопроводов. Имейте в виду, что развивающиеся и бегающие тесты в производстве — это только один аспект стратегии качества данных. Вам также потребуется фактически расти, как оповещение, владение ответом, связь с заинтересованными сторонами, анализ корневой причины и резолюцией выпуска, что может предпринять значительное количество времени и усилий, если вы хотите сделать это хорошо.
Если вы хотите еще несколько конкретных примеров, проверьте наши тематические исследования о том, как некоторые пользователи больших ожиданий, такие как Komodo Health , Спокойный и Avanade интегрировать большие ожидания в свои рабочие процессы данных.
Оригинал: «https://dev.to/supercokyle/your-data-tests-failed-now-what-4cl4»