Перейти к основному содержимому

Расширенная CI enterprise

Процессы непрерывной интеграции помогают повысить управление и улучшить качество данных. Кроме того, для этих CI задач вы можете использовать функции Расширенной CI, такие как сравнение изменений, которые предоставляют детали об изменениях между тем, что в настоящее время находится в вашей производственной среде, и последним коммитом pull-запроса, давая вам возможность наблюдать, как изменения данных зависят от изменений в коде. Анализируя изменения данных, которые вносит код, вы можете гарантировать, что всегда поставляете надежные продукты данных в процессе разработки.

Как включить эту функцию

Вы можете подключиться к Расширенной CI в dbt Cloud. Пожалуйста, обратитесь к Доступ к функциям Расширенной CI в аккаунте, чтобы узнать, как включить её в вашем аккаунте dbt Cloud.

Больше функций

dbt Labs планирует предоставить дополнительные функции Расширенной CI в ближайшем будущем. Больше информации скоро.

Предварительные условия

  • У вас есть аккаунт dbt Cloud Enterprise.
  • У вас включены функции Расширенной CI.
  • Вы используете поддерживаемую платформу данных: BigQuery, Databricks, Postgres или Snowflake. Поддержка дополнительных платформ данных появится скоро.

Функция сравнения изменений

Для CI задач, в которых включена опция dbt compare, dbt Cloud сравнивает изменения между последним применённым состоянием производственной среды (по умолчанию с отсрочкой для снижения затрат на вычисления) и последними изменениями из pull-запроса, когда открывается pull-запрос или добавляются новые коммиты.

dbt сообщает о различиях в сравнении в:

  • dbt Cloud — Показывает изменения (если есть) в первичных ключах данных, строках и столбцах на вкладке Сравнение на странице Детали выполнения задачи.
  • Pull-запрос от вашего Git-провайдера — Показывает сводку изменений в виде комментария Git.
Пример вкладки СравнениеПример вкладки Сравнение

Оптимизация сравнений

Когда в вашей модели указан столбец event_time, сравнение изменений может оптимизировать сравнения, используя только пересекающийся временной интервал (то есть временной интервал, существующий как в CI, так и в производственной среде), помогая избежать неправильных изменений количества строк и возвращать результаты быстрее.

Это полезно в таких сценариях, как:

  • Подмножество данных в CI — Когда CI строит только подмножество данных (например, за последние 7 дней), сравнение изменений интерпретировало бы исключенные данные как "удаленные строки". Настройка event_time позволяет избежать этой проблемы, ограничивая сравнения пересекающимся временным интервалом, предотвращая ложные предупреждения об удалении данных, которые просто отфильтрованы в CI.
  • Более свежие данные в CI, чем в производстве — Когда ваша CI задача включает более свежие данные, чем в производстве (потому что она выполнялась более недавно), сравнение изменений пометило бы дополнительные строки как "новые" данные, хотя это просто более свежие данные в CI. С настроенным event_time сравнение включает только общий временной интервал и корректно отражает фактические изменения в данных.
event_time обеспечивает точное сравнение одного и того же временного среза данных между вашими средами CI и производства.event_time обеспечивает точное сравнение одного и того же временного среза данных между вашими средами CI и производства.

О кэшированных данных

После сравнения изменений dbt Cloud сохраняет кэш не более чем из 100 записей для каждой измененной модели для целей предварительного просмотра. Кэшируя эти данные, вы можете просматривать примеры измененных данных без повторного выполнения сравнения с хранилищем данных каждый раз (оптимизация для снижения затрат на вычисления). Для отображения изменений dbt Cloud использует кэшированную версию образца записей данных. Эти записи данных запрашиваются из базы данных с использованием конфигурации подключения (например, пользователь, роль, учетная запись службы и так далее), установленной в среде CI задачи.

Вы контролируете, какие данные использовать. Это может включать синтетические данные, если данные до производства или разработки строго регулируются или являются конфиденциальными.

  • Выбранные данные кэшируются в системах dbt Labs на срок до 30 дней. Никакие данные не сохраняются в системах dbt Labs после этого периода.
  • Кэш зашифрован и хранится в Amazon S3 или Azure blob storage в регионе вашего аккаунта.
  • dbt Labs не будет получать доступ к кэшированным данным из Расширенной CI для своей выгоды, и данные используются только для предоставления услуг по вашему указанию.
  • Сторонние субподрядчики, кроме субподрядчиков по хранению, не будут иметь доступа к кэшированным данным.

Если вы получите доступ к выполнению CI задачи, которому более 30 дней, вы не сможете увидеть результаты сравнения. Вместо этого появится сообщение, указывающее, что данные устарели.

Пример сообщения об устаревших данных на вкладке СравнениеПример сообщения об устаревших данных на вкладке Сравнение

Разрешения на подключение

Функция сравнения изменений использует те же учетные данные, что и CI задача, как определено в среде CI задачи. Администратор dbt Cloud должен убедиться, что учетные данные клиента CI соответствующим образом ограничены, так как все пользователи аккаунта клиента смогут просматривать результаты сравнения и кэшированные данные.

Если используется динамическое маскирование данных в хранилище данных, кэшированные данные больше не будут динамически маскированы в выводе Расширенной CI, в зависимости от разрешений пользователей, которые их просматривают. dbt Labs рекомендует ограничить доступ пользователей к немаскированным данным или рассмотреть возможность использования синтетических данных для функциональности тестирования Расширенной CI.

Пример учетных данных в настройках пользователяПример учетных данных в настройках пользователя
0