Data Science и аналитика

Учебник dbt для начинающих

24 урока · 9 разделов · бесплатно, без регистрации

dbt (data build tool) — инструмент, который превратил написание SQL-трансформаций в инженерную дисциплину: с версионированием, тестами, документацией и автоматическим графом зависимостей. Этот курс — для тех, кто пишет SQL в хранилище данных и хочет перестать поддерживать хаос из разрозненных скриптов. Вы узнаете, что такое аналитическая инженерия и роль analytics engineer, почему трансформации переехали внутрь хранилища (ELT вместо ETL), как устроены модели, материализации и инкрементальная загрузка, как строить слои staging→intermediate→marts, писать тесты данных, генерировать документацию, делать снапшоты истории и выстраивать CI/CD. В конце — сквозной пример: пайплайн витрин из сырых данных.

Курс «dbt: аналитическая инженерия данных» состоит из 9 разделов и 24 уроков: Что такое аналитическая инженерия и dbt, Установка, подключение и первая модель, ref(), source() и граф зависимостей, Материализации и инкрементальные модели, Слои моделирования и Jinja, Тесты, документация и качество данных, Seeds, snapshots и пакеты, Конфигурация, окружения и оркестрация и CI/CD, хранилища и реальный пример. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Что такое аналитическая инженерия и dbt

    1. Аналитическая инженерия: новая роль в данных

      Кто такой analytics engineer, чем он отличается от data engineer и аналитика и почему эта роль выделилась в отдельную.

    2. Проблема, которую решает dbt

      SQL-хаос без тестов, версионирования и документации: какие конкретные боли трансформаций данных закрывает dbt.

    3. ELT против ETL: почему трансформации в хранилище

      Разница ETL и ELT, почему современные хранилища позволяют трансформировать данные на месте и почему dbt — это буква T.

  2. 2 Установка, подключение и первая модель

    1. dbt Core против dbt Cloud и установка

      Разница между бесплатным dbt Core (CLI) и платным dbt Cloud, как установить dbt и адаптер к хранилищу.

    2. profiles.yml: подключение к хранилищу

      Как настроить profiles.yml для подключения dbt к хранилищу: цели dev/prod, хост, схема, пароли через переменные окружения.

    3. Первая модель: model = SELECT

      Что такое модель в dbt: обычный SELECT в .sql-файле, который dbt превращает в таблицу или представление.

  3. 3 ref(), source() и граф зависимостей

    1. ref() и автоматический DAG

      Функция ref() связывает модели, dbt строит DAG и сам определяет порядок запуска — главная идея инструмента.

    2. source(): объявление источников

      Функция source() в dbt: как объявлять сырые внешние таблицы в YAML и ссылаться на них вместо хардкода.

  4. 4 Материализации и инкрементальные модели

    1. Материализации: view, table, ephemeral

      Три базовые материализации dbt — view, table и ephemeral: чем отличаются и когда какую выбирать.

    2. Инкрементальные модели: только новые данные

      Инкрементальные модели dbt: как обрабатывать только новые строки больших таблиц через is_incremental и unique_key.

  5. 5 Слои моделирования и Jinja

    1. Слои: staging → intermediate → marts

      Общепринятый паттерн слоёв моделей dbt: staging (чистка), intermediate (бизнес-логика), marts (витрины).

    2. Jinja: шаблонизатор поверх SQL

      Jinja в dbt: переменные, циклы и условия превращают статичный SQL в динамический и переиспользуемый код.

    3. Макросы и пакет dbt_utils

      Макросы dbt как функции для переиспользования SQL и готовые макросы из пакета dbt_utils.

  6. 6 Тесты, документация и качество данных

    1. Встроенные тесты: unique, not_null и другие

      Четыре встроенных теста dbt — unique, not_null, accepted_values, relationships — как качество данных в коде.

    2. Кастомные и singular-тесты

      Свои тесты в dbt: singular-тесты как SQL-запрос и переиспользуемые generic-тесты для качества данных.

    3. Документация и dbt docs

      Документация моделей в dbt: descriptions в YAML, команда dbt docs и интерактивный граф зависимостей (lineage).

  7. 7 Seeds, snapshots и пакеты

    1. Seeds: статичные данные из CSV

      Seeds в dbt: как загружать небольшие статичные справочники из CSV-файлов в хранилище под версионным контролем.

    2. Snapshots: история изменений (SCD type 2)

      Snapshots в dbt реализуют SCD type 2: сохраняют историю изменений строк источника с интервалами действия.

  8. 8 Конфигурация, окружения и оркестрация

    1. dbt_project.yml: конфигурация и теги

      Главный конфиг dbt_project.yml: материализации по папкам, теги моделей и иерархия настроек проекта.

    2. Запуск и выбор: run, test, build, --select

      Команды dbt run, test, build и синтаксис --select с графовыми операторами для выборочного запуска моделей.

    3. Окружения dev/prod и dbt в Airflow

      Разделение окружений dev/prod через targets и запуск dbt из Airflow как часть ELT-оркестрации.

  9. 9 CI/CD, хранилища и реальный пример

    1. CI/CD для dbt: slim CI и проверки в PR

      CI/CD для dbt: проверка изменённых моделей в pull request (slim CI) через state:modified и хуки.

    2. Хранилища, адаптеры, хуки и операции

      Адаптеры dbt под Snowflake/BigQuery/Redshift/Postgres/ClickHouse, хуки (pre/post) и операции (run-operation).

    3. Best practices и реальный пример витрин

      Лучшие практики dbt (нейминг, слои, идемпотентность, DRY), типичные ошибки и сквозной пример пайплайна витрин.