Советы и рекомендации по dbt
Используйте эту страницу для получения ценных идей и практических советов, чтобы улучшить ваш опыт работы с dbt. Независимо от того, новичок вы в dbt или опытный пользователь, эти советы помогут вам работать более эффективно и результативно.
Следующие советы организованы по следующим категориям:
- Советы по пакетам для оптимизации вашего рабочего процесса.
- Продвинутые советы и техники для максимального использования возможностей dbt.
Если вы разрабатываете с использованием dbt Cloud IDE, вы можете обратиться к странице горячих клавиш, чтобы сделать разработку более продуктивной и простой для всех.
Советы по пакетам
Используйте эти пакеты dbt для оптимизации вашего рабочего процесса:
Пакет | Описание |
---|---|
dbt_codegen | Используйте пакет для генерации YML файлов для ваших моделей и источников, а также SQL файлов для ваших промежуточных моделей. |
dbt_utils | Пакет содержит макросы, полезные для ежедневной разработки. Например, date_spine генерирует таблицу со всеми датами между указанными в параметрах. |
dbt_project_evaluator | Пакет сравнивает ваш проект dbt с перечнем наших лучших практик и предоставляет рекомендации и руководства по обновлению ваших моделей. |
dbt_expectations | Пакет содержит множество тестов, выходящих за рамки встроенных в dbt. |
dbt_audit_helper | Пакет позволяет сравнивать результаты двух запросов. Используйте его при рефакторинге существующей логики, чтобы убедиться, что новые результаты идентичны. |
dbt_artifacts | Пакет сохраняет информацию о ваших запусках dbt непосредственно на вашей платформе данных, чтобы вы могли отслеживать производительность моделей с течением времени. |
dbt_meta_testing | Этот пакет проверяет, что ваш проект dbt достаточно протестирован и задокументирован. |
Продвинутые советы и техники
- Используйте структуру пап ок в качестве основного метода выбора.
dbt build --select marts.marketing
проще и более устойчив, чем полагаться на маркировку каждой модели. - Рассматривайте задания с точки зрения частоты сборки и SLA. Запускайте модели с почасовой, ежедневной или еженедельной частотой сборки вместе.
- Используйте where config для тестов, чтобы проверить утверждение на подмножестве записей.
- store_failures позволяет вам изучать записи, которые вызывают сбои тестов, чтобы вы могли либо исправить данные, либо изменить тест по мере необходимости.
- Используйте пороги severity, чтобы установить допустимое количество сбоев для теста.
- Используйте incremental_strategy в конфигурации вашей инкрементальной модели, чтобы реализовать наиболее эффективное поведение в зависимости от объема ваших данных и надежности уникальных ключей.
- Установите
vars
в вашемdbt_project.yml
, чтобы определить глобальные значения по умолчанию для определенных условий, которые затем можно переопределить с помощью флага--vars
в ваших командах. - Используйте for loops в Jinja, чтобы DRY повторяющуюся логику, такую как выбор серии столбцов, для которых необходимо применить одинаковые преобразования и шаблоны именования.
- Вместо того чтобы полагаться на post-hooks, используйте grants config для устойчивого применения разрешений в хранилище.
- Определите пороги source-freshness для ваших источников, чтобы избежать выполнения преобразований на данных, которые уже были обработаны.
- Используйте оператор
+
слева от моделиdbt build --select +model_name
, чтобы запустить модель и все ее вышестоящие зависимости. Используйте оператор+
справа от моделиdbt build --select model_name+
, чтобы запустить модель и все, что от нее зависит. - Используйте
dir_name
, чтобы запустить все модели в пакете или директории. - Используйте оператор
@
слева от модели в настройке CI без учета состояния, чтобы протестировать ее. Этот оператор запускает всех родителей и детей выбора, а также родителей его детей, которые в новой схеме CI, вероятно, еще не существуют. - Используйте флаг --exclude, чтобы исключить подмножество моделей из выбора.
- Используйте флаг --full-refresh, чтобы перестроить инкрементальную модель с нуля.
- Используйте seeds для создания ручных таблиц поиска, таких как почтовые индексы для штатов или маркетинговые UTM для кампаний.
dbt seed
создаст их из CSV в вашем хранилище и сделает их доступными дляref
в ваших моделях. - Используйте target.name, чтобы изменять логику в зависимости от того, какую среду вы используете. Например, чтобы строить в одну схему разработки во время разработки, но использовать несколько схем в производстве.
Связанные документы
0