Версия: 2.0
Набор данных
Данные, добавленные в область Values визуала, автоматически связываются с внутренним набором данных dataset в представлении Vega или Vega-Lite. Он обновляется при добавлении и удалении столбцов и мер, а также при изменении числа строк — например, из-за изменения контекста фильтрации.
Связь данных визуала со спецификацией
Хотя данные передаются из Power BI, спецификация должна содержать ссылку на именованный набор dataset. Иначе при разборе спецификации значения не попадут в кодирование. Убедитесь, что в ней есть следующий фрагмент.
Vega-Lite:
{
...
"data": { "name": "dataset" }
...
}
Vega:
{
...
"data": [
{ "name": "dataset" }
]
...
}
Все встроенные шаблоны Deneb используют этот подход. Если сомневаетесь, создайте спецификацию из шаблона [empty] и используйте её как основу.
Детализация и контекст строки
Внутри визуала набор данных обрабатывается примерно так же, как в обычном табличном визуале: число строк определяется уникальными сочетаниями значений всех добавленных столбцов и мер.
Предположим, визуалу переданы следующие данные:

При разборе спецификации в неё передаётся структура, подобная следующему JSON:
{
"dataset": [
{ "City": "Auckland", "Mean Temperature": 14.62 },
{ "City": "Christchurch", "Mean Temperature": 9.49 },
{ "City": "Dunedin", "Mean Temperature": 6.83 },
{ "City": "Hamilton", "Mean Temperature": 13.27 },
{ "City": "Lower Hutt", "Mean Temperature": 12.12 },
{ "City": "North Shore", "Mean Temperature": 14.62 },
{ "City": "Tauranga", "Mean Temperature": 12.99 },
{ "City": "Waitakere", "Mean Temperature": 14.62 },
{ "City": "Wellington", "Mean Temperature": 12.12 }
]
}
Сохранение состояния представления при обновлении данных
По умолчанию при обновлении набора данных из Power BI — например, после изменения среза, перекрёстного фильтра или фильтра страницы — Deneb заново компилирует спецификацию и создаёт представление Vega. Его состояние сбрасывается: масштаб, положение, текущая страница панелей и значения сигналов, изменённые элементами ввода.
Начиная с версии 2.0 можно включить Enable patching for hosted datasets («Применять обновления к размещённым наборам данных»). Эта настройка находится в разделе Continuous view панели Project setup редактора. Тогда новые данные передаются в уже существующее представление Vega, сохраняя его состояние. По умолчанию настройка выключена. Соседняя настройка Row threshold for patching задаёт максимальное число строк, при котором используется такое обновление.

Ограничения и особенности:
- Обновление применяется, если в новом наборе не больше строк, чем задано порогом. По умолчанию порог — 500 строк. При превышении Deneb заново компилирует спецификацию и создаёт представление.
- Есть жёсткий предел 5 000 строк: выше него обновление существующего представления не используется независимо от настройки. При большом числе записей или сложной обработке основной поток может не справиться, а производительность — значительно снизиться.
- Если обновление не удалось по другой причине, например из-за силового преобразования с агрегированными данными, Deneb выполнит полную перекомпиляцию. Причина будет указана в предупреждении панели Logs.
- Раздел Continuous view панели Project setup показывает, активно ли обновление существующего представления для текущего набора данных.
Это новая возможность, которая ещё оценивается. Включайте её после проверки визуала при реальных обновлениях данных — срезах, перекрёстной фильтрации и других действиях. Если поведение становится непоследовательным, отключите настройку и сообщите об ошибке.
Вспомогательные поля
В панели Data или при просмотре объекта datum примитива через подсказку можно увидеть дополнительные поля, которых нет в модели данных. Они предоставляют вспомогательную информацию из семантической модели или поддерживают интерактивность.
Поля уровня строки
Эти поля добавляются к каждой строке набора данных.
__row__
Поле __row__ — индекс исходной строки, начиная с нуля. Оно всегда добавляется, чтобы Deneb и автор визуала могли установить связь строки с исходным запросом. Это нужно Power BI для подсказок, контекстного меню и перекрёстной фильтрации. Подробнее см. в разделе «Интерактивность».
__selected__
Если включена перекрёстная фильтрация, поле __selected__ показывает состояние выбора строки. Его можно использовать в кодировании, например увеличивать прозрачность невыбранных примитивов. Подробнее см. в разделе «Перекрёстная фильтрация».
Поля уровня столбца или меры
Для каждого столбца и меры из области Values Deneb создаёт запись в разделе Supporting Fields: dataset панели Project setup:

По умолчанию включены только некоторые вспомогательные поля, чтобы не перегружать набор данных. Правила для разных категорий описаны ниже.
- Каждое поле включается отдельно: раскройте столбец или меру в дереве и установите нужные флажки.
- Небольшая цветная точка в заголовке означает, что столбец или мера создаёт хотя бы одно вспомогательное поле — по умолчанию или вследствие настройки.
- Если назначение изменено, команда Reset в правом верхнем углу заголовка возвращает настройки по умолчанию для этого поля.

Вспомогательные поля делятся на три основные категории.
Управление перекрёстным выделением
Эти настройки доступны, только если для визуала включено перекрёстное выделение. Они позволяют отдельно кодировать исходное значение меры и её значение в контексте выделения, что полезно для некоторых диаграмм.
По умолчанию для мер включено только Highlight value. Столбцы не поддерживают значения перекрёстного выделения, поэтому такой настройки для них нет.
Информация о форматировании из семантической модели
Все столбцы и меры содержат информацию о форматировании. В набор передаётся исходное значение — с ним удобнее работать. Если нужна строка формата, в том числе динамическая для каждой строки, или уже отформатированное значение, включите соответствующие вспомогательные поля.
По умолчанию эти поля выключены.
Параметры полей
Столбцы и меры, относящиеся к параметру полей Power BI, можно объединить с другими составляющими того же параметра в столбцы со значениями-массивами. За это отвечает Consolidate field parameters в разделе Semantic model integration панели Project setup. Подробнее см. в разделе «Параметры полей».
Ссылки на столбцы и меры
В спецификации используйте отображаемое имя столбца или меры из области Values, а не имя из модели данных.
Если поле переименовано или удалено, обновите спецификацию.
Специальные символы в именах столбцов и мер
Имена полей модели данных могут содержать разные символы. Однако у Vega, Vega-Lite и JSON есть особые правила для привязки полей и выражений, содержащих ., [, ], \ и ".
При передаче в набор данных визуала Deneb заменяет эти символы подчёркиванием _. Поэтому автору не нужно самостоятельно экранировать их по правилам языков.
Эквивалентная операция JavaScript для собственных инструментов:
displayName.replace(/([\\".[\]])/g, "_");
Например, имя этой меры содержит точку:

В свойстве field точку нужно заменить подчёркиванием:
{
...
"x": {
"field": "$ Sales_Current",
"type": "quantitative"
}
...
}
Если такое поведение нежелательно, переименуйте столбец или меру в области Values, убрав специальные символы до передачи данных визуалу.
Добавление других наборов данных
В спецификации Vega можно добавить другие объекты в массив data. В Vega-Lite можно задать отдельные наборы для слоёв или несколько именованных наборов. При этом учитывайте следующее:
- Сертифицированным визуалам AppSource запрещено получать данные и ресурсы извне. Поэтому внешние файлы в них загружать нельзя.
- В отдельной версии можно попробовать загружать данные по внешним адресам, но на запросы действуют ограничения CORS, связанные с безопасностью пользовательских визуалов Power BI.
- Для данных из модели рекомендуется считать именованный источник
"dataset"основной точкой входа в спецификацию.
Особенности преобразования данных
Vega и Vega-Lite поддерживают преобразования, которые меняют исходные данные. Для некоторых визуализаций они необходимы, но изменение контекста строки может сделать часть возможностей недоступной, особенно интерактивность. Подробнее см. в разделе «Интерактивность».
Ограничение числа строк запроса
По умолчанию Deneb ограничивает набор данных 30 000 строками.
Ограничение можно переопределить, но число возвращённых строк всё равно зависит от доступных ресурсов и решения Power BI.
Чтобы переопределить ограничение, откройте Data management в панели форматирования Power BI:

Включите Override row limit. Power BI будет запрашивать дополнительные строки порциями по 10 000:

По умолчанию также включено Show data loading notes: оно показывает автору краткие пояснения об особенностях этой возможности.
Учитывайте, что Power BI заново загружает данные визуала при добавлении или удалении полей из Values, изменении контекста фильтрации и изменении свойств панели настроек. Большинство действий в редакторе само по себе не вызывает перезагрузку данных.
Редактирование спецификации с большим набором данных может ухудшить производительность. Подробнее о рисках и способах их уменьшения см. в разделе «Производительность».
Когда вы освоились с поведением загрузки или готовы опубликовать отчёт, отключите Show data loading notes, чтобы пользователи видели более простой экран состояния:
