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

Анализ наших сборок

Анализ наших сборок

  • ⌚ dbt отслеживает, сколько времени заняла сборка каждой модели, когда она началась, когда закончилась, статус завершения (ошибка, предупреждение или успех), тип материализации и многое другое.
  • 🖼️ Эта информация хранится в нескольких файлах, которые dbt называет артефактами.
  • 📊 Артефакты содержат огромное количество информации в формате JSON, поэтому их не так просто читать, но dbt Cloud упаковывает самые полезные фрагменты информации в аккуратную визуализацию для вас.
  • ☁️ Если вы не используете Cloud, мы все равно можем использовать вывод dbt Core CLI, чтобы понять наши запуски.

Время выполнения модели

Вот где визуализация времени выполнения модели в dbt Cloud становится чрезвычайно полезной. Если мы настроили Задачу в dbt Cloud для запуска наших моделей, мы можем использовать вкладку Model Timing, чтобы определить наши самые долго выполняющиеся модели.

Диаграмма времени выполнения модели в dbt Cloud

  • 🧵 Этот вид позволяет нам видеть наши потоки, распределенные по времени (до 64 потоков, мы в данный момент используем 4, поэтому у нас 4 трека). Вы можете представить каждый поток как полосу на шоссе.
  • ⌛ Мы видим выше, что customer_status_histories занимает больше всего времени, поэтому мы можем захотеть сделать её инкрементальной.

Если вы не используете dbt Cloud, это не проблема! Мы не получаем красивую визуализацию из коробки, но мы можем использовать вывод из dbt Core CLI, чтобы проверить время выполнения наших моделей, и это отличная возможность познакомиться с этим выводом.

Вывод dbt Core CLI

Если вы когда-либо запускали dbt, будь то build, test, run или что-то еще, вы видели вывод, подобный приведенному ниже. Давайте более внимательно посмотрим, как его читать.

Вывод CLI из команды dbt build

  • Для каждой модели есть две записи: начало сборки модели и завершение, которое будет включать время, затраченное на выполнение модели. Также включен тип модели. Например:
20:24:51  5 of 10 START sql view model main.stg_products ......... [RUN]
20:24:51 5 of 10 OK created sql view model main.stg_products .... [OK in 0.13s]
  • 5️⃣  На обеих строках мы видим, что наша модель stg_products является 5-й из 10 объектов, которые строятся, отметку времени, когда она началась, что она была определена в SQL (в отличие от python), и что это было представление.
  • 🆕  На первой строке мы видим отметку времени, когда модель начала.
  • ✅  На второй строке — которая не обязательно идет сразу после, благодаря потокам другие модели могут начинаться и заканчиваться, пока эта модель выполняется — мы видим запись о завершении, которая добавляет статус, в данном случае OK, и время сборки, молниеносные 0.13 секунды. Это неудивительно, учитывая, что мы знаем о представлениях.
  • 🏎️  Представления обычно должны занимать менее секунды или двух, это таблицы и инкрементальные модели, за которыми вы захотите следить более внимательно с помощью этих инструментов.

Пакет dbt Artifacts

  • 🎨  Наконец, когда дело доходит до анализа ваших запусков dbt, вы не остаетесь без красивых визуализаций, если используете dbt Core. Это не настроено из коробки, но если вы хотите более глубоко изучить ваш проект, вы можете использовать пакет dbt Artifacts.
  • 👩‍🎨  Это предоставляет модели, которые вы можете визуализировать для каждого аспекта вашего проекта на очень детальном уровне.
  • ⌚  Вы можете использовать его для создания собственной визуализации времени выполнения модели в вашем BI-инструменте и любых других отчетов, которые вам нужны для контроля вашей стратегии материализации.
0