От хаоса в 1С к инкрементальному DWH на Postgres, Airflow и dbt
Оригинальная статья на denvic.tech
Александр Мазалов (Senior Data Engineer & Data Architect) описывает реальный кейс миграции с хаотичной архитектуры на основе 1С и KNIME к современному инкрементальному DWH на Postgres, Airflow и dbt.
Проблема
Прежняя архитектура ежедневно копировала всю базу 1С в MS SQL Server — процесс занимал 3–4 часа и регулярно падал. KNIME требовал 40 ГБ ОЗУ, SQL-скрипты были перегружены JOIN-ами, а данные отставали на двое суток. Результат — недоверие к цифрам, ручные проверки и несогласованные метрики.
Решение: слоистая архитектура
Stage-слой
Инструмент «Экстрактор 1С в BI» от Денвик выгружает только дельты (новые и изменённые записи), отслеживая даже корректировки задним числом. Минуты вместо часов.
DDS-слой (Airflow + PostgreSQL)
Один DAG управляет обновлением ~50 таблиц: уникальные ID, очистка данных, SCD2 для хранения истории. CI/CD через GitLab — двухуровневая среда (TEST в Docker → PROD).
Обработка стоков (Kafka + партиции)
300 млн строк с ретроактивными изменениями и обновлением каждый час. Kafka через Confluent буферизирует пики, а два DAG в Airflow обрабатывают данные батчами с динамическим партицированием по дате.
Витрины (dbt-core + dbt-af)
Доменная структура моделей, принцип DRY через макросы, автоматическая генерация DAG-ов через dbt-af. Аналитики самостоятельно разрабатывают витрины с ревью дата-инженера.
Результат
| Было | Стало |
|---|---|
| Данные 2-дневной давности | Обновления каждый час |
| 40 ГБ ОЗУ на пересчёт | Эффективное использование ресурсов |
| Дни на новую витрину | 24 часа на новую витрину |
| Ручные проверки | Автоматические тесты в dbt |
| Высокая нагрузка на 1С | Минимальная нагрузка |
Стек
PostgreSQL, Apache Airflow, dbt-core, dbt-af (Toloka/dmp-labs), Kafka (Confluent), GitLab CI/CD, Docker, Power BI Report Server, Yandex DataLens.
Этот кейс — отличная иллюстрация того, как связка Airflow + dbt с правильной инженерной дисциплиной превращает хаос в управляемую data-платформу.
