Поделиться через


Работа с представлением TMDL в Power BI Desktop (предварительная версия)

Представление TMDL позволяет выполнять скрипты, изменять и применять изменения к объектам семантической модели с помощью современного редактора кода с помощью языка определения табличной модели (TMDL) в Power BI Desktop, повышения эффективности разработки и обеспечения полной видимости и контроля над метаданными семантической модели.

Представление TMDL предоставляет альтернативный интерфейс для семантического моделирования с помощью кода, а не графического пользовательского интерфейса, например представления модели.

Представление TMDL предлагает следующие преимущества:

  • Улучшенная эффективность разработки с помощью редактора с широкими возможностями кода, включая поиск и замена, сочетания клавиш, многострочный редактирование и многое другое.
  • Увеличьте возможность повторного использования, просто создавая, распространяя и снова используя скрипты TMDL среди разработчиков семантической модели. Например, используйте централизованный сайт SharePoint для совместного использования повторно используемых объектов семантической модели, таких как таблицы календаря или группы вычислений аналитики времени.
  • Получите больше контроля и прозрачности, отображая все семантические объекты и свойства модели, и позволяя изменять элементы, недоступные в пользовательском интерфейсе Power BI Desktop, например IsAvailableInMDX или DetailRowsDefinition.

Включение функции предварительной версии

Чтобы использовать представление TMDL, необходимо включить функцию предварительной версии. В Power BI Desktop выберите Файл > Параметры и настройки > Параметры > Предварительные версии и установите флажок рядом с Представление TMDL.

Скрипт для TMDL

В Power BI Desktop щелкните значок представления TMDL , расположенный в левой части окна, как показано на следующем рисунке.

Снимок экрана: представление языка определения табличной модели T-M-D-L.

При открытии представления TMDL редактор кода изначально пуст. Вы можете выполнить скрипт любого объекта семантической модели, например таблицы, меры или столбца, выбрав объекты из области данных и перетащив их в редактор кода:

Снимок экрана: перетаскивание объекта семантической модели на холст представления T-M-D-L.

При использовании представления TMDL и перетаскивании объекта из области данных Power BI выполняет скрипты всех метаданных объекта на текущую вкладку в виде TMDL или открывает новую вкладку, если текущая вкладка не пуста, как скрипт createOrReplace TMDL выбранных объектов, как показано на следующем рисунке:

Снимок экрана: автоматически создаваемые метаданные T-M-D-L.

Кроме того, можно щелкнуть правой кнопкой мыши объект в представлении данных и выбрать скрипт TMDL на новой вкладке или в буфер обмена, показанном на следующем рисунке:

Снимок экрана: щелчок правой кнопкой мыши объекта в представлении данных для создания кода метаданных T-M-D-L Power BI.

Подсказка

  • Вы можете выполнить скрипт целых разделов — меры, таблицы или столбцы— путем перетаскивания раздела в редактор кода для скрипта всех объектов в разделе.
  • Множественное выделение поддерживается путем нажатия клавиши CTRL перед записью объектов в сценарии в редакторе кода TMDL-вида.

Редактор кода

После создания скрипта объекта семантической модели или вставки скрипта TMDL в редактор кода можно использовать комплексные функции кода, предоставляемые редактором кода представления TMDL. Функции работы с кодом позволяют просматривать метаданные модели или вносить изменения, которые позже можно применить к семантической модели.

Семантическое выделение

Семантическое выделение встроено в редактор кода, что улучшает удобочитаемость путем применения различных цветов к частям кода на основе смысла. Такое кодирование цветов упрощает понимание структуры и функциональности кода TMDL, как показано на следующем рисунке.

Снимок экрана: кодирование цветов и семантический выделение для кода метаданных T-M-D-L.

Вы также можете развернуть или свернуть разделы скрипта TMDL, как показано на следующем рисунке:

Снимок экрана: свертывание разделов кода в редакторе кода.

Автозаполнение

Автозавершение встроено в редактор кода и предлагает интеллектуальные предложения во время ввода. Автозаполнение может ускорить рабочий процесс, уменьшить вероятность ошибок и помочь вам понять параметры кода, динамически предлагая возможные значения или свойства, учитывая положение курсора.

Снимок экрана: автозавершение в редакторе кода.

Вы также можете активировать функцию автозаполнения в любом месте, нажав Ctrl+Пробел.

Подсказки

Подсказка контекста отображается при наведении курсора мыши, предоставляя сведения о каждом объекте или свойстве TMDL.

Снимок экрана: подсказка контекста, показанная на указателе мыши в редакторе кода, отображающая сведения о объекте или свойстве TMDL.

Действия кода

Если курсор находится на волнистой линии или выделенном тексте, в представлении TMDL отображается значок лампочки, указывающий на доступные операции по коду, такие как генерация тегов происхождения или исправление опечаток в именах свойств.

Снимок экрана представления TMDL в редакторе кода со значком лампочки рядом с волнистой линией, указывающей на доступные команды, такие как создание тегов происхождения.

Снимок экрана: представление TMDL в редакторе кода со значком лампочки рядом с волнистой линией, показывающего доступные действия для работы с кодом, такие как исправление опечаток в именах свойств.

Форматирование кода

Отформатируйте код TMDL, нажав клавиши SHIFT+ALT+F или нажав кнопку "Формат" на ленте.

Снимок экрана редактора кода с отформатированным кодом TMDL с помощью параметра

Вы также можете отформатировать выделенный текст с помощью параметра "Выбор формата" в контекстном меню.

Снимок экрана: редактор кода с кодом TMDL, отформатированным с помощью сочетания клавиш Shift + Alt + F.

Диагностика ошибок

Встроенная диагностика ошибок редактора кода помогает выявлять и устранять проблемы путем выделения ошибок языка TMDL в редакторе кода с подробными сообщениями, которые предоставляют рекомендации по их разрешению. Кроме того, сводка об ошибке доступна в области "Проблемы", что позволяет легко переходить к расположению ошибки в редакторе кода, как показано на следующем рисунке.

Снимок экрана: диагностика ошибок в редакторе кода.

Применение изменений к семантической модели

Когда вы будете готовы, нажмите кнопку "Применить ", чтобы выполнить скрипт TMDL для семантической модели и применить изменения кода TMDL.

Снимок экрана: применение скрипта с помощью кнопки

При успешном выполнении отображается уведомление, а изменение моделирования применяется к семантической модели.

Снимок экрана: баннер успешного выполнения в редакторе кода, указывающий на успешное применение изменений.

В случае сбоя отображается уведомление об ошибке, чтобы показать, что изменения моделирования не были применены к семантической модели. Дополнительные сведения об ошибке можно просмотреть, выбрав ссылку "Показать сведения " в уведомлении, которая затем расширяет область вывода и отображает сведения об ошибке.

Снимок экрана: баннер сбоя в редакторе кода, указывающий, что изменения не были успешными.

Замечание

Представление TMDL изменяет только метаданные семантической модели, не обновляя данные или не влияя на отчет. Если изменения требуют обновления данных, например изменение выражения PowerQuery или вычисляемого выражения столбца, необходимо вручную обновить таблицу или модель, чтобы изменения вступили в силу. Кроме того, переименование поля в просмотре TMDL может нарушить визуальные элементы в отчете, использующие это поле.

Предварительный просмотр изменений в семантической модели

Представление TMDL позволяет просматривать изменения скриптов, отображая предварительную версию семантической модели до и после выполнения скрипта, показанную в виде диффа кода TMDL. Предварительный просмотр изменений скриптов особенно полезен при копировании скриптов из других источников, что позволяет оценить их влияние перед их выполнением в семантической модели.

При нажатии кнопки "Предварительный просмотр " отображается дифф TMDL для семантической модели до и после выполнения скрипта TMDL на открытой вкладке.

Снимок экрана: кнопка предварительного просмотра для предварительного просмотра изменений скрипта.

Параллельное окно отображается в правой области, как показано на следующем рисунке.

Снимок экрана панели предварительного просмотра ожидаемых изменений скрипта.

Красные и зеленые поля выделяют изменения, с красными полями, указанными удаленными или измененными линиями, и зеленым цветом, указывающим на новые линии.

Снимок экрана: красные и зеленые выделения для ожидающих изменений скрипта.

Замечание

Сравнение относится не напрямую к скрипту TMDL, отображаемому в настоящее время, а к всестороннему сравнению семантической модели до и после выполнения скрипта. Таким образом, некоторые свойства могут быть упорядочены по-разному, чем показано на вкладке, привязываясь к свойству или упорядочению объектов по умолчанию TMDL.

Предпросмотр только для чтения, но вы можете продолжать редактировать скрипт. Чтобы обновить предварительный просмотр после изменений, нажмите кнопку "Обновить предварительный просмотр ", как показано на баннере на следующем рисунке.

Снимок экрана: кнопка предварительного просмотра обновления.

В правом верхнем углу экрана предварительного просмотра есть панель инструментов, которая обеспечивает навигацию по всем диффам кода, что позволяет переключаться между встроенными или параллельными диффами, просмотром или скрытием без изменений регионов и закрытием представления предварительного просмотра.

Снимок экрана: панель инструментов для предварительного просмотра скрипта.

При предварительном просмотре изменений в семантической модели следует учитывать несколько соображений.

  • Представление TMDL сбрасывает настройки представления на значения по умолчанию при каждом выполнении предварительного просмотра.
  • Предпросмотр выполняется только с допустимым изменением TMDL. Недопустимые скрипты TMDL не будут выполнять предварительный просмотр, и в области вывода отображается ошибка.

Вкладки скриптов TMDL

В представлении TMDL можно одновременно использовать несколько вкладок скриптов, которые можно переименовать или удалить.

Снимок экрана: несколько вкладок в представлении T-M-D-L.

Содержимое вкладок представления TMDL сохраняется при сохранении отчета Power BI Desktop, чтобы вы могли продолжить работу с этим файлом при следующем его открытии. При сохранении в проект Power BI (PBIP) каждая вкладка скрипта сохраняется в формате .tmdl в папке /TMDLScripts, как показано на следующем рисунке.

Снимок экрана: структура файла для сохранения вкладок в файле Power BI Desktop.

Подсказка

Вы можете открывать и изменять скрипты TMDL в Visual Studio Code, и они будут правильно перезагружены после перезапуска Power BI Desktop.

В области "Проблемы и выходные данные" отображаются ошибки и сообщения, относящиеся к вкладке скрипта, которая в настоящее время выбрана и отображается. Переключение на другую вкладку скрипта TMDL обновляет обе области с информацией, соответствующей выбранной и отображаемой в данный момент вкладке.

Вы можете нажать кнопку "Очистить ", чтобы очистить сообщения области вывода .

Снимок экрана кнопки очистки, используемой для очистки сообщений в области вывода.

Сообщения хранятся только для каждого сеанса Power BI Desktop, поэтому перезапуск Power BI Desktop очищает все выходные сообщения для всех вкладок скриптов.

Запрос на обновление уровня совместимости

Уровень совместимости семантической модели Power BI определяет доступные функции. Представление TMDL позволяет добавлять любой объект или свойство служб Analysis Services, даже если он недоступен на текущем уровне совместимости. При применении изменения, требующего обновления уровня совместимости, представление TMDL предоставляет запрос, указывающий, какой объект или объекты требуют обновления.

Снимок экрана: представление TMDL в Power BI с запросом на обновление уровня совместимости. Сообщение указывает, что текущий уровень совместимости 1550 ниже требуемого уровня 1601 для свойства FormatStringDefinition и спрашивает, следует ли обновлять и повторно применять изменение.

Переименование объектов с помощью представления TMDL

Чтобы переименовать объект в представлении TMDL, необходимо выполнить скрипт родительского объекта. Например, переименование столбца требует написания скриптов таблицы, а переименование таблицы требует написания скриптов всей семантической модели. Дополнительные сведения об иерархии табличной объектной модели см. в следующем документе: иерархия табличной объектной модели.

С помощью представления TMDL массовое переименование можно эффективно выполнять с помощью простых шаблонов поиска и замены. Например, можно переименовать все столбцы таблицы в нижний регистр, выполнив следующие действия.

Откройте представление TMDL, создайте скрипт таблицы, которую вы планируете изменить.

Нажмите клавиши CTRL+F, чтобы открыть диалоговое окно поиска и замены, и убедитесь, что включен параметр регулярного выражения.

Снимок экрана представления TMDL в Power BI с активированной функцией поиска и замены. Окно ввода для замены активно, с возможностью переключения между режимами поиска и замены, которая выделена на панели инструментов над редактором кода.

Введите следующие шаблоны в полях поиска и замены и нажмите кнопку "Заменить все".

Действие Шаблон или замена
Поиск (^\s+column\s+)(.+)
Заменить $1\L$2

Снимок экрана: экран конфигурации модели данных Power BI с определением таблицы product с двумя столбцами: product (string) и productkey (int64), а также их свойствами метаданных.

Запустите скрипт TMDL, чтобы переименовать все столбцы таблицы в нижний регистр мгновенно:

Снимок экрана: таблица продуктов Power BI с 14 столбцами, включая бренд, категорию, цвет, производитель, продукт, productkey, подкатегорию, стоимость единицы, цену единицы и атрибуты веса.

Обратите внимание, что имя столбца отличается от свойства sourceColumn.

Снимок экрана: конфигурация модели данных Power BI с определением столбца productKey с типом данных int64, где источникColumn сопоставляется с ProductKey в исходных данных.

Синхронизация между таблицей семантической модели и запросом Power Query зависит от sourceColumn, сохраняя имена независимо. При открытии редактора Power Query будут отображаться имена столбцов, которые соответствуют исходномуColumn, а не имени столбца модели. Кроме того, переименование столбца в пользовательском интерфейсе не будет автоматически добавлять шаг переименования в запрос до тех пор, пока sourceColumn и имя столбца не совпадут.

Снимок экрана: редактор запросов Power BI, показывающий данные продукта со столбцами ProductKey, Product Code, Product Code, Product и Manufacturer, с 16 запросами, видимыми в области навигации.

Представление в TMDL и проект в Power BI

При сохранении работы в качестве проекта Power BI (PBIP) вы получаете доступ к метаданным определения семантической модели в виде файлов TMDL, предоставляя полезный интерфейс управления версиями и совместного разработки, а также позволяет вносить изменения в семантические модели за пределами Power BI Desktop. Однако при изменении файлов TMDL в PBIP необходимо перезапустить Power BI Desktop, чтобы перезагрузить эти изменения. В отличие от этого, представление TMDL следует интеллектуальной модели сценариев, что позволяет эффективно применять изменения непосредственно к семантической модели, редактируемой в Power BI Desktop с помощью TMDL, независимо от того, является ли формат файла PBIX или PBIP.

Вы можете легко интегрировать оба интерфейса. Например, можно обновить определение TMDL в PBIP для быстрого изменения без запуска Power BI Desktop и использовать представление TMDL, если Power BI Desktop уже открыт для эффективной реализации ряда изменений в семантической модели с помощью TMDL. Оба подхода предлагают широкий и согласованный интерфейс программирования TMDL.

Распространенные варианты использования представления TMDL

Сценарий: Мне нужно повторно использовать или поделиться таблицей семантической модели с её полным определением, включая столбцы, выражение Power Query, конфигурацию сортировки и другие элементы в другой семантической модели.

Решение: Откройте семантику модели с помощью таблицы, создайте скрипт с помощью представления TMDL. Скопируйте скрипт в другое окно Power BI Desktop, откройте вкладку представления TMDL и примените скрипт.



Сценарий: Я назвал все таблицы префиксами "dim_" или "fact_". Я хотел бы удалить эти префиксы без ручного обновления каждой из более чем 100 таблиц.

Решение: Откройте представление TMDL, скрипт семантической модели, найдите префикс (поддерживаются регулярные выражения) и замените его пустым текстом.



Сценарий: Мне нужно создать перспективу в семантической модели, чтобы использовать персонализированные визуальные элементы. Однако не удается создать или изменить его с помощью графического интерфейса Power BI Desktop.

Решение: Откройте представление TMDL, создайте пустую вкладку (или используйте скрипт с существующей точки зрения), а затем создайте или измените перспективу с помощью TMDL. Этот метод применяется также к другим метаданным семантической модели, которые не имеют графического интерфейса, например переводов, выражений детализации строк и прочих.

createOrReplace
      perspective SalesView
        perspectiveTable Sales
            perspectiveMeasure 'Sales Amount'
            perspectiveMeasure 'Sales Qty'
            perspectiveColumn Quantity
            perspectiveColumn 'Amount'


Сценарий: Мне нужно изменить выражение Power Query таблицы без активации обновления.

Решение: Создайте скрипт таблицы, измените выражение Power Query и примените изменения. Представление TMDL не требует обновления данных.



Сценарий: Мне нужно переключить режим хранения таблицы с DirectQuery на import, и наоборот

Решение: Скрипт таблицы, обновление режима секционирования и применение изменений.



Сценарий: При необходимости необходимо создать резервную копию определения семантической модели, прежде чем вносить значительные изменения и легко откатить к предыдущему определению.

Решение: Напишите скрипт для семантической модели или ее определенных частей, которые вы хотите сохранить как резервную копию. Затем внесите изменения в другие представления, и при необходимости вернитесь в представление TMDL, чтобы восстановить предыдущие метаданные, запустив сохраненный скрипт.



Соображения и ограничения

Представление TMDL в настоящее время находится в предварительной версии, поэтому учитывайте следующие ограничения:

  • Представление TMDL можно использовать для изменения любого объекта или свойства в семантической модели. Однако неполные или неправильные изменения могут привести к непредвиденному поведению. Дополнительные рекомендации по этим операциям см. в статье "Разработка моделей".
  • В палитре команд отображаются некоторые команды, которые сейчас не поддерживаются.
  • Настройка начальной интеграции Git из рабочей области не будет включать скрипты представления TMDL, сохраненные в опубликованной семантической модели. Дополнительные сведения см. в статье об интеграции с Fabric Git .
  • Вы не можете создать сценарии для таких групп обозревателя моделей, как меры, столбцы и т. д.

В следующих статьях описано больше о TMDL и его использовании.