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

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

Связанная документация

Обзор

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

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

models/<filename>.yml
version: 2

sources:
- name: <string> # обязательно
description: <markdown_string>
database: <database_name>
schema: <schema_name>
loader: <string>
loaded_at_field: <column_name>
meta: {<dictionary>}
tags: [<string>]

# требуется версия v1.1+
config:
<source_config>: <config_value>

overrides: <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

tables:
- name: <string> #обязательно
description: <markdown_string>
meta: {<dictionary>}
identifier: <table_name>
loaded_at_field: <column_name>
tests:
- <test>
- ... # объявление дополнительных тестов
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>
meta: {<dictionary>}
quote: true | false
tests:
- <test>
- ... # объявление дополнительных тестов
tags: [<string>]
- name: ... # объявление свойств дополнительных колонок

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

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

Пример

models/<filename>.yml
version: 2

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

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

# Добавьте теги к этому источнику
tags:
- ecom
- pii

quoting:
database: false
schema: false
identifier: false

tables:
- name: orders
identifier: Orders_
loaded_at_field: updated_at # переопределение значений по умолчанию для источника
columns:
- name: id
tests:
- unique

- name: price_in_usd
tests:
- not_null

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