TGViewer
Дмитрий Кузьмин | Инженерия данных Дмитрий Кузьмин | Инженерия данных @kuzmin_dmitry91 · 1.75K subscribers
Post #225 1.27K
🤔 Проверки, которые ты делал, но через неделю уже не помнишь.

На проектах такое встречается часто - когда нужно сделать 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 и конкретным запускам пайплайна: добавлять run_id, название задачи, batch date и статус выполнения.

➡️ В практикуме я как раз прокачиваю у студентов эту привычку: не только собрать слой или витрину, но и оставить после запуска нормальный проверяемый след.

Потому что таблица может собраться. Запрос может выполниться. А вот доверять результату всё равно можно только после проверки.

🔛 Сохраняй и внедряй.

#база_знаний
  • 🔥 18
  • ❤ 3
  • 👍 3
  • 💯 2
More from @kuzmin_dmitry91
  1. Sep 25, 2026Можно отдельно изучить SQL, Spark и Airflow, а потом всё равно не понимать, как связать их…
  2. Sep 22, 2026Почему RAG-бот иногда отвечает «не знаю» ✍️ В августе я только начинал погружаться в RAG и…
  3. Sep 18, 2026У блога появился свой герой 🐻 В последнее время здесь много пайплайнов, проверок качества…
  4. Sep 15, 2026💬 Какой результат SQL отправить бизнесу? Ребят, одна из частых ошибок в SQL-задачах состо…
  5. Sep 11, 2026Когда пайплайн упал в пятницу в 18:30, но дежуришь не ты. С пятницей! Пусть выходные пройд…
  6. Sep 10, 2026Сначала выучу весь DE-стек У меня переход в Data Engineering тормозился примерно на этой м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →