meta
- Модели
- Источники
- Сиды
- Снимки
- Тесты
- Модульные тесты
- Аналитика
- Макросы
- Экспозиции
- Семантические модели
- Метрики
- Сохранённые запросы
models:
<resource-path>:
+meta: {<dictionary>}
models:
- name: model_name
config:
meta: {<словарь>}
columns:
- name: column_name
config:
meta: {<dictionary>} # изменено на config в версии v1.10 и затем портировано обратно в 1.9
Конфигурацию meta можно определить следующими способами:
- В разделе
modelsконфигурации в файле проекта (как показано в предыдущем примереmodels/schema.yml) - В разделе
modelsконфигурации в файле проекта (dbt_project.yml) - В Jinja‑макросе
config()внутри SQL‑файла модели
Смотрите конфигурации и свойства для получения подробной информации.
sources:
<resource-path>:
+meta: {<dictionary>}
источники:
- name: model_name
config:
meta: {<словарь>}
tables:
- name: table_name
config:
meta: {<словарь>}
columns:
- name: column_name
config:
meta: {<dictionary>} # переименовано в config в версии v1.10 и портировано обратно в 1.9
seeds:
<resource-path>:
+meta: {<dictionary>}
seeds:
- name: seed_name
config:
meta: {<словарь>}
columns:
- name: column_name
config:
meta: {<dictionary>} # изменено на config в версии v1.10 и бэкпортировано в 1.9
Конфигурация meta может быть задана:
- В разделе
seedsв файле свойств (показано в предыдущем примереseeds/schema.yml) - В разделе
seedsв файле проекта (dbt_project.yml). Подробнее см. configs and properties.
snapshots:
<resource-path>:
+meta: {<dictionary>}
snapshots:
- name: snapshot_name
config:
meta: {<словарь>}
columns:
- name: column_name
config:
meta: {<dictionary>} # изменено на config в версии v1.10 и портировано обратно в 1.9
Конфигурация meta может быть определена:
- в разделе
snapshotsфайла свойств (как показано в предыдущем примереsnapshots/schema.yml) - в разделе
snapshotsфайла проекта (dbt_project.yml) - внутри Jinja‑макроса
config()в SQL‑блоке snapshot’а
Смотрите конфигурации и свойства для получения подробной информации.
Вы не можете добавлять YAML конфигурации meta для общих тестов. Однако вы можете добавлять свойства meta к единичным тестам с помощью config() в начале файла теста.
unit_tests:
<resource-path>:
+meta: {<dictionary>}
unit_tests:
- name: <test-name>
config:
meta: {<dictionary>}
Конфигурация meta в настоящее время не поддерживается для анализов.
macros:
<resource-path>:
+meta: {<dictionary>}
макросы:
- name: macro_name
config:
meta: {<dictionary>} # изменено на config в v1.10
arguments:
- name: argument_name
exposures:
<resource-path>:
+meta: {<dictionary>}
exposures:
- name: exposure_name
config:
meta: {<dictionary>} # изменено на config в версии v1.10
Настройте meta в файле свойств ваших семантических моделей или в разделе конфигурации semantic-models в файле проекта (dbt_project.yml).
Конфигурацию meta можно определить:
- В разделе
semantic-modelsфайла свойств (как показано в предыдущем примереmodels/semantic_models.yml) - В разделе
semantic-modelsфайла проекта (dbt_project.yml). Подробнее см. в разделе configs and properties.
metrics:
<resource-path>:
+meta: {<dictionary>}
metrics:
- name: number_of_people
label: "Количество людей"
description: Общее количество людей
type: simple
type_params:
measure: people
config:
meta:
my_meta_config: 'config_value'
saved-queries:
<resource-path>:
+meta: {<dictionary>}
saved_queries:
- name: saved_query_name
config:
meta: {<словарь>}
Определение
Поле meta можно использовать для задания метаданных ресурса и оно принимает любые пары «ключ-значение». Эти метаданные компилируются в файл manifest.json, который генерируется dbt, и отображаются в автоматически сгенерированной документации.
В зависимости от ресурса, который вы настраиваете, meta может быть доступно в свойстве config и/или в качестве ключа верхнего уровня. (Для обратной совместимости meta часто (но не всегда) поддерживается в качестве ключа верхнего уровня, хотя без возможностей наследования конфигурации.)
Примеры
Чтобы показать, как использовать конфигурацию meta, приведём несколько примеров:
- Назначить владельца модели
- Обозначить столбец источника как содержащий PII
- Настроить один атрибут meta для всех seeds
- Переопределить один атрибут meta для одной модели
- Задать owner и favorite_color в dbt_project.yml как свойство config
- Назначить meta для semantic model
- Назначить meta для dimensions, measures, entities
- Доступ к значениям meta в Python-моделях
Назначить владельца модели
Дополнительно можно указать уровень зрелости модели, используя ключ model_maturity:.
models:
- name: users
config:
meta:
owner: "@alice"
model_maturity: in dev
Назначение столбца источника как содержащего PII
Похоже, вы прислали только фрагмент `sources:` без содержимого.
Пожалуйста, пришлите полный текст markdown‑файла (или хотя бы раздел целиком), который нужно перевести. Тогда я смогу корректно перевести описания и пояснения, сохранить форматирование Docusaurus и не затронуть технические элементы dbt.
- name: salesforce
tables:
- name: account
config:
meta:
contains_pii: true
columns:
- name: email
config:
meta: # changed to config in v1.10 and backported to 1.9
contains_pii: true
Настройка одного атрибута meta для всех сидов
seeds:
+meta:
favorite_color: red
Переопределение одного атрибута meta для одной модели
{{ config(meta = {
'single_key': 'override'
}) }}
select 1 as id
Назначение владельца и favorite_color в dbt_project.yml как свойства конфигурации
models:
jaffle_shop:
+meta:
owner: "@alice"
favorite_color: red
Назначение meta для семантической модели
Следующий пример показывает, как назначить значение meta для семантической модели в файлах semantic_model.yml и dbt_project.yml:
- Semantic model
- dbt_project.yml
semantic_models:
- name: transaction
model: ref('fact_transactions')
description: "Transaction fact table at the transaction level. This table contains one row per transaction and includes the transaction timestamp."
defaults:
agg_time_dimension: transaction_date
config:
meta:
data_owner: "Finance team"
used_in_reporting: true
semantic-models:
jaffle_shop:
+meta:
used_in_reporting: true
Назначение meta для измерений, метрик и сущностей
Доступ к значениям meta в Python-моделях
Чтобы получить доступ к пользовательским значениям meta в Python-моделях, сначала извлеките объект meta с помощью метода dbt.config.get(), а затем обращайтесь к нужным пользовательским значениям.
Например, если у вас есть модель с именем my_python_model и вы хотите сохранить в ней пользовательские значения, можно сделать следующее:
models:
- name: my_python_model
config:
meta:
batch_size: 1000
processing_mode: "incremental"
def model(dbt, session):
# First, get the meta object
meta = dbt.config.get("meta")
# Then access your custom values from meta
batch_size = meta.get("batch_size")
processing_mode = meta.get("processing_mode")
# Use the meta values in your model logic
df = dbt.ref("upstream_model")
if processing_mode == "incremental":
df = df.limit(batch_size)
return df