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

meta

dbt_project.yml
models:
<resource-path>:
+meta: {<dictionary>}

models/schema.yml

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‑файла модели

Смотрите конфигурации и свойства для получения подробной информации.

Определение

Поле meta можно использовать для задания метаданных ресурса и оно принимает любые пары «ключ-значение». Эти метаданные компилируются в файл manifest.json, который генерируется dbt, и отображаются в автоматически сгенерированной документации.

В зависимости от ресурса, который вы настраиваете, meta может быть доступно в свойстве config и/или в качестве ключа верхнего уровня. (Для обратной совместимости meta часто (но не всегда) поддерживается в качестве ключа верхнего уровня, хотя без возможностей наследования конфигурации.)

Примеры

Чтобы показать, как использовать конфигурацию meta, приведём несколько примеров:

Назначить владельца модели

Дополнительно можно указать уровень зрелости модели, используя ключ model_maturity:.

models/schema.yml

models:
- name: users
config:
meta:
owner: "@alice"
model_maturity: in dev

Назначение столбца источника как содержащего PII

models/schema.yml

Похоже, вы прислали только фрагмент `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 для всех сидов

dbt_project.yml
seeds:
+meta:
favorite_color: red

Переопределение одного атрибута meta для одной модели

models/my_model.sql
{{ config(meta = {
'single_key': 'override'
}) }}

select 1 as id

Назначение владельца и favorite_color в dbt_project.yml как свойства конфигурации

dbt_project.yml
models:
jaffle_shop:
+meta:
owner: "@alice"
favorite_color: red

Назначение meta для семантической модели

Следующий пример показывает, как назначить значение meta для семантической модели в файлах semantic_model.yml и 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

Назначение meta для измерений, метрик и сущностей

Доступ к значениям meta в Python-моделях

Чтобы получить доступ к пользовательским значениям meta в Python-моделях, сначала извлеките объект meta с помощью метода dbt.config.get(), а затем обращайтесь к нужным пользовательским значениям.

Например, если у вас есть модель с именем my_python_model и вы хотите сохранить в ней пользовательские значения, можно сделать следующее:

models/schema.yml
models:
- name: my_python_model
config:
meta:
batch_size: 1000
processing_mode: "incremental"
models/my_python_model.py
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

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

0