Документация / DBML

Зависимости данных

Ключевое слово Dep описывает зависимости данных между таблицами и столбцами — например, как представление или витрина строится из исходных таблиц.

Устройство зависимости

Зависимость состоит из трёх частей:

  1. источник (upstream) — таблица или столбец, откуда берутся данные;
  2. приёмник (downstream) — таблица или столбец, куда данные попадают после обработки;
  3. стрелка -> или <-, направленная от источника к приёмнику.

Виды зависимостей

  • уровня таблиц — обе стороны таблицы;
  • уровня столбцов — обе стороны столбцы;
  • смешанные — одна сторона таблица, другая столбец.

Короткая форма

Dep: raw_orders -> stg_orders
Dep: stg_orders <- raw_orders
Dep: raw_orders.amount -> stg_orders.revenue
Dep: stg_orders -> fct_orders.revenue
Dep: raw_events.payload -> stg_events

Встроенная форма

Table fct_orders [dep: <- stg_orders] {
  id int
  revenue decimal [dep: -> report_revenue.total]
}

Блочная форма

Объединяет несколько связей одного шага преобразования:

Dep order_staging [color: #79AD51] {
  raw_orders -> stg_orders
  raw_payments -> stg_orders
  raw_orders.amount -> stg_orders.revenue
  note: 'Объединение заказов с платежами, расчёт выручки'
  materialized: table
  query: '''Запрос преобразования'''
  owner: 'data-team'
}

Настройки блока:

  • note — описание преобразования;
  • color — цвет линии зависимости;
  • произвольные ключи (materialized, owner) сохраняются в результате.

Ограничения

  • все связи блока должны вести в одну и ту же таблицу-приёмник или её столбцы;
  • каждая направленная связь должна быть уникальной.

Обновлено: 27 сентября 2026 г.