Конфигурации источников
Доступные конфигурации
Общие конфигурации
Общие конфигурации предоставляют более широкие операционные настройки, применимые к нескольким типам ресурсов. Как и конфигурации, специфичные для ресурсов, они также могут быть заданы в файле проекта, файлах свойств или в файлах, специфичных для ресурсов.
- Project YAML file
- Properties YAML file
Настройка источников
Источники можно настраивать с помощью блока config: в их .yml-определениях или через файл dbt_project.yml в секции sources:. Такая конфигурация особенно полезна для настройки источников, импортированных из пакета.
Вы можете отключать источники, импортированные из пакета, чтобы они не отображались в документации или чтобы для таблиц источников, импортированных из пакетов, не запускались проверки свежести источников.
-
Примечание: Чтобы отключить таблицу источника, вложенную в properties YAML-файл в подкаталоге, необходимо указать путь к этому properties YAML-файлу с учетом подкаталогов, а также имя источника и имя таблицы в проектном YAML-файле (
dbt_project.yml).
В следующем примере показано, как отключить таблицу источника, вложенную в properties YAML-файл в подкаталоге:dbt_project.yml
Примеры
В следующих примерах показано, как настраивать источники в вашем dbt‑проекте.
— Отключить все источники, импортированные из пакета
— Условно включить один источник
— Отключить один источник из пакета
— Настроить источник с event_time
— Настроить meta для источника
— Настроить свежесть источника
Отключить все источники, импортированные из пакета
Чтобы применить конфигурацию ко всем источникам, подключенным из пакета,
укажите эту конфигурацию под именем проекта в секции
sources: как часть пути к ресурсу.
sources:
events:
+enabled: false
Условно включить один источник
При определении источника вы можете отключить весь источник или отдельные таблицы источника, используя встроенное свойство config. Также можно указать database и schema, чтобы переопределить целевую базу данных и схему:
sources:
- name: my_source
database: raw
schema: my_schema
config:
enabled: true
tables:
- name: my_source_table # enabled
- name: ignore_this_one # not enabled
config:
enabled: false
Вы также можете настраивать отдельные таблицы источников и использовать переменные в качестве входных значений для этих конфигураций:
sources:
- name: my_source
tables:
- name: my_source_table
config:
enabled: "{{ var('my_source_table_enabled', false) }}"
Отключить один источник из пакета
Чтобы отключить конкретный источник из другого пакета, укажите путь к ресурсу в конфигурации, включив в него имя пакета и имя источника. В этом примере мы отключаем источник clickstream из пакета events.
sources:
events:
clickstream:
+enabled: false
Аналогично, вы можете отключить конкретную таблицу источника, указав путь к ресурсу с именем пакета, именем источника и именем таблицы:
sources:
events:
clickstream:
pageviews:
+enabled: false
Настроить источник с event_time
Настроить meta для источника
Используйте поле meta для назначения метаданных источникам. Это полезно для хранения дополнительного контекста, документации, логирования и других целей.
Например, вы можете добавить meta‑информацию к источнику clickstream, чтобы указать сведения о системе-источнике данных:
sources:
events:
clickstream:
+meta:
source_system: "Google analytics"
data_owner: "marketing_team"
Настроить свежесть источника
Используйте блок freshness, чтобы задать ожидания по тому, как часто таблица обновляется новыми данными, и чтобы генерировать предупреждения и ошибки, если эти ожидания не выполняются.
dbt сравнивает наиболее свежую временную метку обновления, рассчитанную на основе колонки, метаданных хранилища или пользовательского запроса, с текущим временем в момент запуска проверки свежести.
Вы можете указать один или оба параметра warn_after и error_after. Если ни один из них не задан, dbt не будет рассчитывать снимки свежести для таблиц в этом источнике. Подробнее см. в разделе freshness.
Ниже приведен пример файла dbt_project.yml, использующего конфигурацию freshness:
sources:
<resource-path>:
+freshness:
warn_after:
count: 4
period: hour
Пример конфигурации источника
Ниже приведен корректный пример конфигурации источников для проекта со следующими характеристиками:
name: jaffle_shop- Пакет
events, содержащий несколько таблиц источников
name: jaffle_shop
config-version: 2
...
sources:
# project names
jaffle_shop:
+enabled: true
events:
# source names
clickstream:
# table names
pageviews:
+enabled: false
link_clicks:
+enabled: true