Пользователь указывает доступы к базе и создает
объект проверки. Это таблица, в столбцах которой содержится необходимая для проверки информация: текущие/прогнозные/контрольные значения метрик в разбивке по нужным параметрам — датам, городам, продуктам и т.п. Пользователь составляет SQL-запрос, который позволяет получить такую таблицу, и сохраняет его в qualityCraft.
Дальше нужно создать
проверки в виде условий на языке SQL, которые qualityCraft будет выполнять для каждой строки объекта проверки. Точнее, каждая проверка — это формула, которая:
- выдает 0, если проверка пройдена;
- 2, если qualityCraft должен выдать ошибку;
- 1, если нужно показать предупреждение.
По каждой проверке пользователь также указывает:
- сообщение, которое нужно написать, если проверка закончилась ошибкой. Это сообщение будет использовано в дашборде, чтобы бизнес-пользователь видел не просто количество ошибок, но и их содержание. Можно указать просто текст или сгенерировать сообщение с помощью SQL-формулы;
- такое же сообщение, но для случая, если проверка закончилась предупреждением;
- описание проверки двух видов: с точки зрения бизнеса (зачем нужна эта проверка? насколько серьезно, если она не проходит? как это исправить?) и с точки зрения технической методологии. Эти описания служат документацией.
Одна и та же проверка может проходить для одной строки, а для другой — заканчиваться ошибкой. Чтобы qualityCraft мог отличать строки, в него нужно завести
параметры.
Параметр — это столбец в объекте проверки, которому мы даем понятное любому человеку название и описание. Например, city — Город — Город, выбранный пользователем для доставки. Оно будет показываться по результатам проверки.
Параметры можно объединить в
иерархию, например, Год — месяц — день или Страна — Регион — Город. Тогда qualityCraft будет выполнять отдельные проверки сначала на верхнем уровне иерархии (по годам или странам), потом на следующем (по годам и месяцам или по странам и регионам) и так далее. Так вы поймете серьезность ошибки: большое расхождение наблюдается во всем наборе данных или это статистические выбросы в отдельных случаях.