Перейти к содержанию

Метаданные модели: model.yml

Каждая кодовая модель помимо исходного кода model.py содержит файл метаданных model.yml. Из него AW узнаёт название модели, какие источники данных ей нужны и какие поля и иерархии в ней есть.

Файл располагается в папке модели рядом с model.py:

model_shop/
├── model.py
└── model.yml

Структура файла

Корневой ключ файла — model. В нём описываются:

Ключ Описание Обязательность
name Человекочитаемое название кодовой модели Обязательно
data_sources Список источников данных, необходимых модели Необязательно
fields Список полей модели Необязательно
hiers Список иерархий модели Необязательно

Минимальный файл метаданных:

model:
  name: Моя первая модель

Источники данных: 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 — при синхронизации репозитория.