Свойства источников
Связанная документация
Обзор
Свойства источников могут быть объявлены в любом файле 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