Продвинутый CI EnterpriseEnterprise +
Процессы непрерывной интеграции помогают повысить управление и улучшить качество данных. Кроме того, для этих CI задач вы можете использовать функции Расширенной CI, такие как сравнение изменений, которые предоставляют детали об изменениях между тем, что в настоящее время находится в вашей производственной среде, и последним коммитом pull-запроса, давая вам возможность наблюдать, как изменения данных зависят от изменений в коде. Анализируя изменения данных, которые вносит код, вы можете гарантировать, что всегда поставляете надежные продукты данных в процессе разработки.
Вы можете включить Advanced CI в dbt. Подробнее о том, как включить эту функцию в вашей учетной записи dbt, см. в разделе Account access to Advanced CI features.
Предварительные требования
- У вас есть учетная запись dbt уровня Enterprise или Enterprise+.
- У вас включены Advanced CI features.
- Вы используете поддерживаемую платформу данных: BigQuery, Databricks, Postgres, Redshift или Snowflake. Поддержка дополнительных платформ данных появится в ближайшее время.
Функция сравнения изменений
Для CI jobs, в которых включена опция dbt compare, dbt сравнивает изменения между последним применённым состоянием production‑окружения (по умолчанию используется deferral для снижения вычислительных затрат) и последними изменениями из pull request каждый раз, когда pull request открывается или в него отправляются новые коммиты.
dbt сообщает о различиях в сравнении в:
- dbt — Показывает изменения (если они есть) в первичных ключах, строках и столбцах данных на вкладке Compare tab на странице Job run details.
- Pull request от вашего провайдера Git — Показывает сводку изменений в виде комментария Git.
Оптимизация сравнений
Когда в вашей модели указан столбец event_time, сравнение изменений может оптимизировать сравнения, используя только пересекающийся временной интервал (то есть временной интервал, существующий как в CI, так и в производственной среде), помогая избежать неправильных изменений количества строк и возвращать результаты быстрее.
Это полезно в таких сценариях, как:
- Подмножество данных в CI — Когда CI строит только подмножество данных (например, за последние 7 дней), сравнение изменений интерпретировало бы исключенные данные как "удаленные строки". Настройка
event_timeпозволяет избежать этой проблемы, ограничивая сравнения пересекающимся временным интервалом, предотвращая ложные предупреждения об удалении данных, которые просто отфильтрованы в CI. - Более свежие данные в CI, чем в производстве — Когда ваша CI задача включает более свежие данные, чем в производстве (потому что она выполнялась более недавно), сравнение изменений пометило бы дополнительные строки как "новые" данные, хотя это просто более свежие данные в CI. С настроенным
event_timeсравнение включает только общий временной интервал и корректно отражает фактические изменения в данных.
event_time обеспечивает точное сравнение одного и того же временного среза данных между вашими средами CI и производства.О кэшированных данных
После сравнения изменений dbt сохраняет кэш из не более чем 100 записей для каждой изменённой модели в целях предпросмотра. Благодаря кэшированию этих данных вы можете просматривать примеры изменённых данных, не запуская повторное сравнение с хранилищем данных каждый раз (что помогает снизить вычислительные затраты). Для отображения изменений dbt использует кэшированную версию выборки записей данных. Эти записи данных запрашиваются из базы данных с использованием конфигурации подключения (например, пользователя, роли, service account и т.д.), которая задана в окружении CI‑job.
Вы контролируете, какие данные использовать. Это может включать синтетические данные, если данные до производства или разработки строго регулируются или являются конфиденциальными.
- Выбранные данные кэшируются в системах dbt Labs на срок до 30 дней. Никакие данные не сохраняются в системах dbt Labs после этого периода.
- Кэш зашифрован и хранится в Amazon S3 или Azure blob storage в регионе вашего аккаунта.
- dbt Labs не будет получать доступ к кэшированным данным из Расширенной CI для своей выгоды, и данные используются только для предоставления услуг по вашему указанию.
- Сторонние субподрядчики, кроме субподрядчиков по хранению, не будут иметь доступа к кэшированным данным.
Если вы получите доступ к выполнению CI задачи, которому более 30 дней, вы не сможете увидеть результаты сравнения. Вместо этого появится сообщение, указывающее, что данные устарели.
Разрешения на подключение
Функция сравнения изменений использует те же учетные данные, что и задание CI, как это определено в окружении задания CI. Администратор dbt должен убедиться, что клиентские учетные данные CI имеют корректные ограничения, поскольку все пользователи учетной записи клиента смогут просматривать результаты сравнения и кэшированные данные.
Если используется динамическое маскирование данных в хранилище данных, кэшированные данные больше не будут динамически маскированы в выводе Расширенной CI, в зависимости от разрешений пользователей, которые их просматривают. dbt Labs рекомендует ограничить доступ пользователей к немаскированным данным или рассмотреть возможность использования синтетических данных для функциональности тестирования Расширенной CI.


