Метаданные модели: model.yml¶
Каждая кодовая модель помимо исходного кода model.py содержит
файл метаданных model.yml. Из него AW узнаёт название модели, какие источники
данных ей нужны и какие поля и иерархии в ней есть.
Файл располагается в папке модели рядом с model.py:
Структура файла¶
Корневой ключ файла — model. В нём описываются:
| Ключ | Описание | Обязательность |
|---|---|---|
name |
Человекочитаемое название кодовой модели | Обязательно |
data_sources |
Список источников данных, необходимых модели | Необязательно |
fields |
Список полей модели | Необязательно |
hiers |
Список иерархий модели | Необязательно |
Минимальный файл метаданных:
Источники данных: data_sources¶
Каждый элемент списка data_sources описывает источник, из которого модель
получает данные:
| Ключ | Описание |
|---|---|
name |
Идентификатор источника внутри модели (англ. символы, подчёркивание, цифры). Именно по нему источник доступен в коде модели через data_sources.<name> |
alias |
Человекочитаемое название источника |
type |
Тип источника: table — обычная таблица источника, sql — SQL-запрос к источнику |
model:
name: Модель товары-покупатели-заказы
data_sources:
- name: customers
alias: Покупатели
type: table
- name: products
alias: Товары
type: table
- name: orders
alias: Заказы
type: sql
Соответствие между идентификатором из model.yml и реальным источником данных
AW устанавливается при подключении модели в аккаунте технического
администратора.
Поля модели: fields¶
Список fields декларативно описывает поля, которые модель отдает пользователям:
| Ключ | Описание | Обязательность |
|---|---|---|
name |
Название поля (англ. символы, подчёркивание и цифры) | Обязательно |
alias |
Человекочитаемое название поля | Необязательно |
type |
Тип поля. Одно из значений: string, number, float, date, bool |
Обязательно |
model:
name: Модель заказов
fields:
- name: id
alias: Идентификатор заказа
type: number
- name: summa
alias: Сумма заказа
type: float
- name: created_at
alias: Дата создания
type: date
Иерархии: hiers¶
Список hiers описывает иерархии — группы полей, которые в AW образуют
уровни детализации (например, год → месяц → день):
| Ключ | Описание |
|---|---|
name |
Название иерархии (англ. символы, подчёркивание и цифры) |
alias |
Человекочитаемое название иерархии |
fields |
Список названий полей модели (от верхнего уровня к нижнему) |
model:
name: Модель заказов
hiers:
- name: order_date
alias: Дата заказа
fields: ["order_year", "order_month", "order_day"]
Поля, входящие в иерархию, должны быть описаны в fields и присутствовать
в итоговом датафрейме модели — их удобно добавлять операцией
add_calc_field.
Пример полного файла¶
model:
name: Модель товары-покупатели-заказы
data_sources:
- name: customers
alias: Покупатели
type: table
- name: products
alias: Товары
type: table
- name: orders
alias: Заказы
type: sql
fields:
- name: id
alias: Идентификатор заказа
type: number
- name: summa_with_discount
alias: Сумма со скидкой
type: float
hiers:
- name: order_date
alias: Дата заказа
fields: ["order_year", "order_month", "order_day"]
Корректность метаданных проверяется автоматически: локально —
тестом test_meta, в AW — при синхронизации репозитория.