На проектах такое встречается часто - когда нужно сделать SQL проверку, ты написал select count(*), проверил даты, посмотрел дубли, всё увидел и пошёл дальше в разработку.
А потом этот же вопрос возвращается через пару дней. И ты вспоминаешь, что делал, какие таблицы проверял, ищешь нужный скрипт, вспоминаешь даты. Короче классика)
➡️ Мне нравится привычка: даже маленькая проверка должна оставлять след. Чтобы результат проверки можно было потом открыть в таблице.
Например, можно завести простую служебную таблицу:
create table if not exists dq_check_log (
checked_at timestamp default now(),
layer_name text,
table_name text,
check_name text,
status text,
check_value numeric,
details text
);
Допустим, после сборки витрины нужно проверить, что за нужную дату вообще появились строки:
insert into dq_check_log (
layer_name,
table_name,
check_name,
status,
check_value,
details
)
select
'marts',
'sales_daily',
'rows_for_date',
case when count(*) > 0 then 'PASS' else 'FAIL' end,
count(*)::numeric,
'rows in sales_daily for 2026-05-01'
from marts.sales_daily
where dt = date '2026-05-01';
Одна проверка и одна строка в журнале. Но потом она сильно помогает.
Можно открыть историю и увидеть, какие проверки проходили, когда они проходили и где впервые стало пусто:
select *
from dq_check_log
order by checked_at desc
limit 20;
Я бы начинал хотя бы с таких проверок:
есть ли строки за нужный период;
нет ли дублей на уровне витрины;
не пустые ли ключевые поля;
сходится ли сумма с предыдущим слоем;
не уехала ли дата.
Но если пайплайн повторяется, если к нему возвращаются, если результат смотрит кто-то ещё, проверка без следа теряется.
А уже дальше этот же подход можно привязывать к Airflow, Spark jobs и конкретным запускам пайплайна: добавлять ru
n_id, название задачи, batch date и статус выполнения.➡️ В практикуме я как раз прокачиваю у студентов эту привычку: не только собрать слой или витрину, но и оставить после запуска нормальный проверяемый след.
Потому что таблица может собраться. Запрос может выполниться. А вот доверять результату всё равно можно только после проверки.
🔛 Сохраняй и внедряй.
#база_знаний
