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

Свойства источников

Обзор

Свойства источников могут быть объявлены в любом файле properties.yml в вашем каталоге models/ (как определено в конфигурации model-paths). Свойства источников — это «особые свойства», потому что вы не можете настраивать их в файле dbt_project.yml или с помощью блоков config(). Подробнее см. Конфигурация и свойства.

Вы можете назвать эти файлы как угодно, и вложить их на любую глубину в подкаталоги внутри каталога models/:

models/<filename>.yml
sources:
- name: <string> # обязательно
description: <markdown_string>
database: <database_name>
schema: <schema_name>
loader: <string>

# требуется v1.1+
config:
<source_config>: <config_value>
freshness:
# перенесено в config в v1.10
loaded_at_field: <column_name>
warn_after:
count: <positive_integer>
period: minute | hour | day
error_after:
count: <positive_integer>
period: minute | hour | day
filter: <where-condition>
meta: {<dictionary>} # перенесено в config в v1.10
tags: [<string>] # перенесено в config в v1.10

# объявлено устаревшим в v1.10
overrides: <string>

quoting:
database: true | false
schema: true | false
identifier: true | false

tables:
- name: <string> # обязательно
description: <markdown_string>
identifier: <table_name>
data_tests:
- <test>
- ... # объявите дополнительные тесты
config:
loaded_at_field: <column_name>
meta: {<dictionary>}
tags: [<string>]
freshness:
warn_after:
count: <positive_integer>
period: minute | hour | day
error_after:
count: <positive_integer>
period: minute | hour | day
filter: <where-condition>

quoting:
database: true | false
schema: true | false
identifier: true | false
external: {<dictionary>}
columns:
- name: <column_name> # обязательно
description: <markdown_string>
quote: true | false
data_tests:
- <test>
- ... # объявите дополнительные тесты
config:
meta: {<dictionary>}
tags: [<string>]
- name: ... # объявите свойства дополнительных колонок

- name: ... # объявите свойства дополнительных таблиц источников

- name: ... # объявите свойства дополнительных источников

Пример

models/<filename>.yml

sources:
- name: jaffle_shop
database: raw
schema: public
loader: emr # только для информации (произвольный текст)

config:
# перенесено в config в v1.10
loaded_at_field: _loaded_at # настраивается для всех источников
# поля meta отображаются в автоматически сгенерированной документации
meta: # перенесено в config в v1.10
contains_pii: true
owner: "@alice"

# Добавьте теги для этого источника
tags: # перенесено в config в v1.10
- ecom
- pii

quoting:
database: false
schema: false
identifier: false

tables:
- name: orders
identifier: Orders_
config:
# перенесено в config в v1.10
loaded_at_field: updated_at # переопределяет настройки источника по умолчанию
columns:
- name: id
data_tests:
- unique

- name: price_in_usd
data_tests:
- not_null

- name: customers
quoting:
identifier: true # переопределяет настройки источника по умолчанию
columns:
data_tests:
- unique

Нашли ошибку?

0
Loading