Годовые итоги Deneb
Наступило замечательное время года, когда я подвожу итоги своего вклада в сообщество для участия в программе Microsoft MVP. Частью этой работы является оценка развития Deneb, поэтому я решил заодно рассказать о его использовании и о некоторых последних событиях.
Оглядываясь назад
Когда я начал выяснять, возможно ли и целесообразно ли создать Deneb, была, вероятно, середина 2020 года. После проверки некоторых идей в конце 2020 года работа набрала темп. В апреле 2021 года мы открыли предварительную версию для всех, к сентябрю отправили её в AppSource, а в ноябре 2021 года прошли сертификацию.
Я не мог заранее понять, устроит ли людей создание визуальных элементов с помощью такого инструмента, как Deneb. Мне давно нравятся языки Vega и Vega-Lite, но их перенос в Power BI всегда вызывал вопрос: насколько хорошо их примут? Языки мощные, но работа с ними отличается от привычного подхода Power BI. Однако для меня они решали реальные задачи, поэтому я был рад создать этот инструмент и продолжать его поддерживать.
Deneb задумывался и остаётся бесплатным визуальным элементом с открытым исходным кодом и поддержкой сообщества. С самого начала я говорил, что для долгосрочной жизнеспособности нужны принятие проекта сообществом и совместная работа. Уже на старте появились замечательные люди, которые поняли идею и охотно делились тем, чему научились и чего достигли. Это было очень приятно видеть. Многие примеры до сих пор доступны на странице сообщества, и авторы продолжают их дополнять. Загляните туда и поддержите их добрым словом и признательностью. Я бесконечно благодарен за их постоянную поддержку. И, как всегда, большое спасибо нашим экспертам сообщества, которые добровольно отвечают на вопросы и позволяют мне сосредоточиться на разработке и сопровождении. Спасибо и таким сообществам, как r/PowerBI и форумы Fabric Community, где многие делятся опытом и примерами или рассказывают о Deneb как о решении.
Чего мы достигли в использовании
Но вернёмся к жизнеспособности проекта. В это время в прошлом году я оценивал использование Deneb за год программы MVP и был поражён: около 75 000 скачиваний разработчиками из примерно 10 000 организаций. Это скачивания в отчёты их авторами. К сожалению, невозможно узнать, сколько конечных пользователей видят эти визуальные элементы и работают с ними в своих аналитических системах: Deneb сертифицирован, а значит, мы не можем собирать телеметрию для таких измерений. Всё, что я знаю об использовании, — сведения, которыми люди любезно делятся: примеры, случайно встреченные рекомендации другим или отзывы в AppSource. Там уже 28 отзывов с оценкой 5 звёзд, и их число растёт!
При аналогичной оценке в этом году я надеялся хотя бы сохранить прежний темп скачиваний. Но результат превзошёл ожидания: на момент написания статьи почти 113 000 скачиваний из более чем 16 000 организаций, рост примерно на 48% относительно предыдущего периода 🎉
Это отличные новости для бесплатной визуализации данных с открытым исходным кодом и дальнейшего распространения экосистемы Vega в Power BI. Ещё одна замечательная новость: проекты Vega недавно включены в список проектов, поддерживаемых NumFOCUS, а новые выпуски каждого языка уже скоро появятся!
Версия Deneb 1.7, выпущенная в прошлом году, очень близка к моему первоначальному представлению о том, как всё должно работать в Power BI. Но с тех пор мы многому научились, а пользователи предложили отличные идеи через систему отслеживания задач нашего репозитория GitHub.
Часть идей уже реализована. Некоторые возможны, но их трудно воплотить с нынешней архитектурой. Другие замечательные предложения пока невозможно реализовать из-за ограничений экосистемы пользовательских визуальных элементов, которой управляет Microsoft. Мне крайне не повезло с продвижением изменений в этой области, но я продолжу обращаться к команде с предложениями. Если ситуация изменится, возможно, мы сможем открыть доступ к этим возможностям.
Тем временем в Power BI появились функции и инструменты, такие как параметры полей и PBIR. Они расширяют соответственно возможности визуальных элементов и возможности управления исходниками отчётов. Формат шаблона Deneb «v1» — спецификация Vega или Vega-Lite и простые метаданные — довольно ограничен. Его трудно расширять через систему свойств визуального элемента без существенных сложностей. Если вы хотите использовать PBIR вместе с Deneb, нынешний подход не слишком понятен.
Что дальше?
Я хочу, чтобы Deneb существовал ещё много лет и оставался бесплатным визуальным элементом с открытым исходным кодом для сообщества. Для этого нужна более удобная основа развития. Последние 6 месяцев я планировал, проверял идеи и разрабатывал то, каким будет будущее проекта. Если получится сохранить нынешний темп, через несколько месяцев появятся более конкретные сведения, работающие функции для демонстрации и ориентировочная дата, когда эта версия станет доступнее.
Вот на что уже сейчас можно рассчитывать.
Deneb 1.x
- Нынешняя Deneb v1 останется в AppSource и будет сохранять сертификацию постоянно, чтобы ваши визуальные элементы и отчёты продолжали работать.
- Я буду исправлять ошибки, поддерживать безопасность и совместимость с обновлениями API пользовательских визуальных элементов, чтобы нынешний набор функций оставался пригодным для дальнейшего использования.
- Я буду поддерживать языки Vega и Vega-Lite в максимально актуальном состоянии в пределах нынешних выпусков «v5». Если будущие крупные версии языков нарушат обратную совместимость, обновления остановятся на v5.
- v1 останется бесплатной, с открытым исходным кодом и поддержкой сообщества на условиях MIT.
Deneb 2.x
- Самое крупное изменение касается системы свойств и сохранения состояния, которая интегрируется с хранилищем свойств Power BI. Она станет гораздо более централизованной и расширяемой для новых функций. У неё будет отдельная JSON-схема, позволяющая разработчикам проверять изменения за пределами отчёта через PBIR.
- Из-за этих изменений в AppSource появится отдельный сертифицированный визуальный элемент Power BI с другим уникальным идентификатором. Визуальные элементы в ваших отчётах останутся v1, пока вы не замените их новым визуальным элементом.
- Заменить v1 на v2 на месте, как иногда можно сделать со встроенными визуальными элементами, не получится. У нас нет низкоуровневого доступа для переноса свойств. Поскольку мы хотим существенно очистить метаданные визуального элемента, старые свойства v1 для управления состоянием будут удалены.
- Вероятный способ переноса — экспорт нынешнего визуального элемента в шаблон v1 и импорт этого шаблона в визуальный элемент v2. Он сам преобразует данные, и вы сможете продолжить работу. Мне хотелось бы сделать этот процесс доступным и через API для тех, кто переносит визуальные элементы скриптами и PBIR. Это будет зависеть от сложности и свободного времени, но я постараюсь найти возможность.
Следующие новые функции уже подтверждены и в основном реализованы в нынешних сборках v2:
- Связанные данные (
dataset) будут передаваться в представление Vega потоковыми обновлениями, без повторной обработки всего набора. Повторная обработка в v1 вызывает полную перерисовку. Потоковый подход предотвращает сброс представления при событиях холста, например перекрёстной фильтрации, и должен открыть гораздо больше сценариев для динамических интерактивных визуальных элементов. - Параметры полей будут поддерживаться по собственному имени, а не по имени внутреннего столбца или меры, которые они подставляют. Нам потребовались изменения со стороны Microsoft и существенная переработка архитектуры, но управлять ими станет возможно. Первоначальное предложение немного меняется, однако в целом хорошо показывает, как параметры будут представлены в наборе данных. Если вам удобнее, мы также постараемся официально поддерживать прежний способ, при котором пользователи обходили ограничения за счёт нестандартного моделирования семантической модели.
- Появится поддержка детализации. Как минимум на уровне
dataset: действия из заголовка визуального элемента будут влиять на запрос его данных. - Вы сможете выбирать необходимые вспомогательные столбцы, например форматирования или перекрёстного выделения, вместо того чтобы включать в набор данных всё.
- Улучшатся отображение и удобство работы с сигналами, привязанными к элементам ввода.
По мере продвижения в этом списке появится ещё многое. Надеюсь, хотя бы часть нынешних пунктов уже заинтересовала вас.
Ещё раз спасибо всем за постоянную поддержку. С нетерпением жду следующего года и дальнейшего развития!
Всего наилучшего,
DM-P