Skip to main content
$metadata описывает все опубликованные наборы, их свойства, ключи, навигации, действия и функции. По нему Power BI, Excel и генераторы клиентов строят модель данных.

Форматы

CSDL JSON выдаётся по $format=json или по Accept: application/json, если в заголовке нет application/xml.

Что описано

  • Типы сущностей и наборы с именами, совместимыми со standard.odata, в пространстве имён StandardODATA.
  • Действия Post и Unpost — у каждого документа, связанные Action с параметром PostingModeOperational (см. Проведение).
  • Виртуальные таблицы регистров — связанные Function у коллекции регистра (см. Регистры).
  • Коллекции без собственного набора (ExtDimensionTypes, LeadingCalculationTypes) объявлены как ComplexType.
Если пользователю назначен профиль доступа, $metadata и служебный документ строятся по урезанной модели: скрытые наборы и поля в них не попадают.

Размер и скорость

Размер $metadata определяется составом публикации. У большой конфигурации полный состав — несколько мегабайт: в замерах на крупной конфигурации — около 5 МБ XML. Публикуйте только нужные объекты: это уменьшает документ, ускоряет обновление моделей в Power BI и снижает память сеансов веб-сервера.

Кэш между сеансами

Настройка «Хранить $metadata между сеансами» включена по умолчанию. Готовые документы хранятся в базе по ключу, который учитывает:
  • состав публикации и настройки;
  • профиль пользователя и доступные ему объекты;
  • версию платформы, конфигурации и расширений.
С кэшем первый $metadata в новом сеансе — около 0,55 с вместо 2,7 с. Повторный запрос в том же сеансе — десятки миллисекунд.

Проверка изменений конфигурации

Чтобы очистить кэш вручную, снимите и снова поставьте флажок «Хранить $metadata между сеансами».
Изменения состава публикации, настроек и профилей действуют со следующего запроса, без перезапуска веб-сервера.
Вывод CSDL может выполнять Rust-компонента (переключатель «Вывод $metadata») — см. Rust-компонента.