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


Работа с представлением запроса DAX

Используйте представление запросов DAX в Power BI для просмотра и работы с запросами выражений анализа данных (DAX) в семантических моделях.

Запросы DAX

В Power BI формулы DAX определяют различные типы вычислений для данных, а также настраивают безопасность ролей. Запросы DAX возвращают данные из модели.

Запросы DAX похожи на запросы SQL, так как они показывают, что у вас уже есть данные. Запросы DAX не создают элементы в модели или визуальных элементах отчета.

Запросы DAX имеют две основные части:

  • Инструкция EVALUATE, которая является обязательной. Он указывает, какие данные возвращает запрос и как они возвращаются.
  • Оператор DEFINE, который является необязательным. Он позволяет определять формулы DAX, например меру, для использования в запросе. Меры, созданные или обновленные с помощью запроса DAX DEFINE, — это меры с областью действия запроса DAX, выполняемые только в контексте запроса DAX. В модель можно добавить меры, ограниченные областью действия запроса DAX, с помощью действий обновления модели в CodeLens или кнопки "Обновить модель с изменениями".

Дополнительные сведения о работе запросов в запросах DAX см. в справочнике по DAX.

Открыть представление запроса DAX

В Power BI Desktop щелкните значок представления запросов DAX слева.

Снимок экрана: значок представления запроса DAX в Power BI Desktop.

В рабочей области службы Power BI или портала Fabric выберите Написать запросы DAX в контекстном меню.

Снимок экрана точки входа для создания запросов DAX в контекстном меню семантической модели.

На странице сведений о семантической модели службы Power BI или портала Fabric выберите в верхней части страницы Написание запросов DAX.

Снимок экрана: точка доступа для написания запросов DAX на странице сведений о семантической модели данных.

Макет представления запросов DAX

Давайте рассмотрим более подробное представление запросов DAX в Power BI Desktop.

Схема, показывющая макет представления запросов DAX.

Представление запроса DAX содержит следующие элементы:

Лента

Лента представления запросов DAX имеет общие действия, используемые при написании запросов DAX.

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

Давайте рассмотрим элементы на ленте:

Формат

Нажмите кнопку "Формат ленты" или используйте SHIFT+ALT+F для форматирования текущего запроса. Запрос оформлен с помощью табуляций. Функции DAX переводятся в ВЕРХНИЙ РЕГИСТР, и добавляются дополнительные строки. Форматирование запроса DAX считается лучшей практикой и улучшает читаемость запросов DAX. Форматирование также отступов выполняется таким образом, что можно свернуть и развернуть разделы запроса.

Снимок экрана: кнопка

Комментировать и раскомментировать

Нажмите кнопку "Закомментировать", чтобы добавить двойную обратную косую черту (//) в начало строки, в которой курсор находится или все выбранные строки. Это действие примечает строки. При выполнении запроса DAX эти строки игнорируются.

Нажмите кнопку Uncomment на ленте, чтобы удалить // в начале строки, где находится курсор, или всех выделенных строк. Он не работает в строках, в которых добавляется несколько строковый комментарий нотации.

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

Снимок экрана кнопок

Поиск и замена

Выберите кнопку «Найти» на ленте или нажмите CTRL+F для поиска текста в редакторе запросов DAX. Поиск включает параметры для сопоставления регистра, сопоставления целого слова, использования регулярного выражения и перебора всех совпадений для текущего запроса. Вы также можете выбрать шеврон слева от поля "Найти ", чтобы ввести "Заменить".

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

Нажмите кнопку "Заменить" на ленте или используйте CTRL+H для поиска и замены текста в редакторе запросов DAX. Замена включает параметры для сохранения регистра и замены по одному или сразу все.

Снимок экрана: функция 'Замена' на ленте представления запросов DAX.

Палитра команд

Чтобы открыть окно командной палитры, нажмите кнопку командной палитры на ленте или используйте сочетание клавиш CTRL+ALT+P. Вы можете найти дополнительные действия редактора запросов DAX и просмотреть связанные сочетания клавиш.

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

Командная строка

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

Запуск и отмена

Кнопка "Выполнить " выполняет запрос DAX или выбранные строки запроса. Состояние запроса после выполнения появится в нижней строке состояния.

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

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

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

Обновление модели с учетом изменений

Кнопка "Обновить модель с изменениями" добавляет или перезаписывает меры модели с формулами DAX, взятыми из мер, охватываемых запросом DAX. Меры с областью запроса DAX — это формулы DAX в блоке DEFINE MEASURE . Кроме того, можно добавить или перезаписать меры модели по отдельности с помощью текста CodeLens, который отображается над каждым из них.

Редактор запросов DAX

Представление запроса DAX включает редактор запросов, где можно создавать и изменять запросы. Это больше, чем просто большая строка формул DAX. Это более мощный и имеет множество сходств с редактором DAX, доступным в Visual Studio Code.

Редактор запросов DAX содержит следующие элементы:

Предложения и Intellisense

Введите ваш запрос и получите помощь с предложениями и Intellisense во время редактирования.

Снимок экрана: редактор запросов DAX intellisense.

Используйте «ВВОД» или «TAB», чтобы добавить выделенный "intellisense", или «SHIFT+ВВОД» или «ALT+ВВОД», чтобы перейти к другой строке без добавления параметра "intellisense". При нажатии ESC закрываются все наложения.

Наведите указатель мыши, чтобы просмотреть формулы мер

Если мера включена в запрос DAX, вы можете навести указатель мыши на него, чтобы просмотреть формулу, имя и описание.

Снимок экрана с функцией наведения указателя мыши для просмотра формулы меры.

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

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

Обновление мер модели с помощью CodeLens

Использование DEFINE MEASURE полезно при создании измерений, сначала позволяя создавать их как измерения, ограниченные областью запроса DAX. Можно изменить несколько мер в одном окне, а затем запустить запрос, чтобы просмотреть результаты всех или только некоторых из них с определенной группой по столбцам. Вам не нужно создавать таблицу в визуальном представлении отчета и переключаться между формулами показателей. CodeLens идет дальше, предоставляя подсказки, когда измерение уже существует в модели. Они предлагают быстрые ссылки для добавления меры или перезаписи меры в модели.

CodeLens — это кликабельный текст, который отображается над блоком DEFINE MEASURE. Для мер, охватываемых запросом DAX, которые еще не присутствуют в модели, появится CodeLens «Обновить модель: Добавить новую меру», который добавляет меру в модель при нажатии. Для мер с областью действия запроса DAX, уже присутствующих в модели, и когда формула DAX для меры с областью действия отличается, отображается CodeLens Обновление модели: Перезаписать меру. Это изменяет меру модели на эту формулу DAX при щелчке.

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

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

Рабочий процесс обновления мер

Быстрые действия лампочки и CodeLens можно использовать вместе в полном рабочем процессе:

  1. В контекстном меню меры выберите "Быстрые запросы", а затем "Оценить", чтобы запрос был создан для вас в новой вкладке "Запрос".
  2. Выберите меру в запросе, чтобы определить или определить со ссылками, добавив инструкцию DEFINE.
  3. Обновите формулы DAX для измерения, затем выполните запрос DAX, чтобы увидеть результаты.
  4. Когда изменение отображается должным образом, используйте модель обновления CodeLens: перезапишите параметр, чтобы сохранить его обратно в модель.

Ниже приведен более визуальный способ понять рабочий процесс:

Схема рабочего процесса.

Сетка результатов

При выполнении запроса результаты отображаются в сетке результатов .

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

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

Если запрос приводит к ошибке, отображается сетка результатов.

Снимок экрана: сообщение об ошибке в сетке результатов.

Кнопка копирования передает ошибку в буфер обмена. Начало ошибки указывает, где в запросе находится ошибка. На изображении выше ошибка: Query (4, 23) The value for 'Sales 2' can't be determined. Either the column doesn't exist, or there is no current row for this column.

И "Запрос (4, 23)" указывает, что ошибка находится в строке 4 и в символе 23.

Вкладки запросов

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

Снимок экрана: вкладки

Каждая вкладка включает индикатор состояния:

  • Индикатор не отображается перед выполнением запроса.
  • Зеленый флажок указывает на успешное выполнение запроса.
  • Красный крест указывает на ошибку.
  • Заполненный квадрат в кругу указывает, что запрос был отменен.
  • Часы показывают, что запрос выполняется.

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

Сохранение запросов DAX

Вкладки запросов DAX сохраняются в файле при сохранении его из Power BI Desktop, и при следующем открытии файла вы сможете продолжать работу с того же места. Если вы используете режим разработчика для сохранения проекта Power BI, каждая вкладка запроса сохраняется как файл .dax в папке DAXQueries, находящейся в папке семантической модели, или в папке отчета, если они созданы в отчете с активным подключением. Дополнительные сведения см. в документации по режиму разработчика Power BI.

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

Вкладки представления запросов DAX удаляются при закрытии, когда вы пишете запросы DAX из службы Power BI или портала Fabric.

Панель «Данные»

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

Быстрые запросы

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

В любом месте
  • Определите все меры в модели , создайте запрос со всеми формулами мер, отображаемыми в запросе. Легко найти все формулы измерений.

  • Определение новой меры создает запрос с заданным блоком мер. Используйте это, чтобы создать собственную меру в режиме запросов DAX, а затем добавить её в модель, когда вы будете готовы.

Таблицы
  • Отображение первых 100 строк создает запрос с помощью SELECTCOLUMNS(), чтобы отобразить первые 100 строк таблицы. Столбцы перечислены в каждой строке, чтобы упростить изменение путем закомментирования строк. Команда ORDER BY также используется для указания порядка сортировки.

    Снимок экрана, показывающий первые 100 строк.

  • Отображение статистики столбцов создает запрос со статистическими данными для каждого столбца в таблице. См. множество формул для агрегирования столбцов, таких как MIN, MAX, AVERAGE, COUNT и многое другое.

  • Определение всех мер в этой таблице создаёт запрос, в котором формулы мер этой таблицы представлены в виде запроса.

Столбцы
  • Отображение предварительного просмотра данных создает запрос с помощью DISTINCT() для просмотра значений столбца.

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

  • Отображение статистики столбцов создает запрос, показывающий статистические сведения для этого конкретного столбца. См. множество формул для агрегирования столбца как MIN, MAX, AVERAGE, COUNT и многое другое. Возвращаемый запрос зависит от типа данных столбца, отображающего различные статистические данные для числовых, текстовых и датовых столбцов.

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

Меры
  • Оценка создает запрос для отображения результата меры. SUMMARIZECOLUMNS() используется, чтобы можно было добавить группировку по любым столбцам, чтобы отобразить измерение по конкретным группам, таким как Страна, Продукт и т. д.

    Снимок экрана: оценка меры.

  • Определение и оценка создает запрос для отображения результата меры и отображения формулы меры в инструкции DEFINE, которая затем может быть изменена.

    Снимок экрана: определение и оценка меры.

  • Определение со ссылками и оценка создает запрос для отображения результата меры и отображения не только формулы меры в инструкции DEFINE, которая может быть изменена, но и любые другие меры, на которые ссылается формула меры. Измените любую часть в полном контексте меры.

    Снимок экрана с определением с помощью ссылок и оценкой.

Получение визуальных запросов DAX из анализатора производительности

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

В представлении отчета перейдите на ленту "Оптимизация", а затем выберите Анализатор производительности. Нажмите кнопку "Начать запись", а затем обновите визуальные элементы. В следующей таблице разверните визуальный элемент, чтобы просмотреть параметры копирования запроса или его запуска в представлении запроса DAX. Выберите "Выполнить в представлении запроса DAX", чтобы добавить визуальный запрос в виде новой вкладки "Запрос" в представлении запроса DAX и запустить его.

Снимок экрана: визуальные запросы DAX в функции анализатора производительности.

Представление запросов DAX и динамическое подключение в Power BI Desktop

Power BI Desktop позволяет подключаться к опубликованной семантической модели Power BI, выбрав "Подключиться " при выборе семантической модели в концентраторе данных OneLake. В правом нижнем углу представления отчета отображается подключен в реальном времени к семантической модели Power BI. Используйте представление запроса DAX для написания запросов DAX во время активного подключения.

Меры модели

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

Меры отчета

При подключении в режиме реального времени к опубликованной семантической модели Power BI можно создавать меры отчета. Создайте меры отчета с помощью действия "Новая мера " в представлении "Отчет " и " Модель ". Показатели отчета доступны только в текущем отчете. После создания меры отчета в представлении запросов DAX отображается параметр Определить с помощью ссылок и оценить. Запросы DAX выполняются на семантической модели, поэтому меры отчетов всегда должны быть преобразованы в меры, которые заданы областью запроса DAX в блоке DEFINE MEASURE, поскольку они не существуют в самой модели.

Кнопка Обновить модель с изменениями и параметры CodeLens обновления модели недоступны для мер отчета.

Представление запроса DAX в вебе

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

  • Пользователь может изменять модели данных в службе Power BI (предварительная версия) Необходимо включить параметр рабочей области Power BI для записи запросов DAX. Дополнительные сведения см в разделе "Изменение моделей данных в службе Power BI".
  • Запросы DAX отбрасываются при закрытии. Запросы DAX в Power BI Desktop сохраняются в модели, а семантическая модель может содержать запросы DAX, которые уже сохранены в модели. Представление запросов DAX в Интернете не отображает ранее сохраненные запросы DAX в семантической модели, а созданные в Интернете запросы не сохраняются после закрытия браузера.
  • Для записи запросов DAX требуется разрешение на запись в семантической модели. Средства просмотра рабочих областей должны использовать Power BI Desktop с динамическим подключением к семантической модели для записи запросов DAX.

Невозможно добавить запрос DAX в качестве параметра с помощью ?query= после URL-адреса, чтобы связаться с представлением запросов DAX в Интернете.

Рекомендации и ограничения

Рекомендации, которые следует учитывать:

  • 500+ строк в редакторе запросов DAX имеет заметное задержку при вводе.
  • Быстрые действия иконки для шагов отображаются только в том случае, если на вкладке запросов отсутствует оператор DEFINE.
  • Палитра команд показывает некоторые команды, которые еще не работают.
  • Сетка результатов не отображает столбцы и меры с указанным форматом, например "Валюта", "Целое число с тысячами" и т. д.
  • Настройка начальной интеграции Git из рабочей области не включает запросы DAX, сохраненные в опубликованной семантической модели. Узнайте больше об интеграции с Fabric Git.

Ограничения, которые следует учитывать:

  • Не более 15 МБ данных на запрос. После превышения 15 МБ текущая строка завершается, но больше строк не записывается.

  • Не более 1 000 000 значений на запрос. Если вы запрашиваете 20 столбцов, можно вернуть максимум 50 000 строк (1 миллион, разделенный на 20).

  • Определите все меры в этой таблице или модели недоступны при наличии более 500 мер.

  • Выполнение запросов DAX в Интернете имеет другие ограничения:

    • На запрос возвращается не более 99 999 строк.
    • Разрешение на запись данных в семантическую модель. Пользователи, имеющие разрешение на выполнение сборки, могут использовать Power BI Desktop для подключения в режиме реального времени и использования представления запросов DAX для выполнения запросов DAX.
    • Доступно только для недефесмантических семантических моделей. Вы можете использовать Power BI Desktop для динамического подключения к семантической модели по умолчанию и использовать представление запросов DAX для выполнения запросов DAX.

    Замечание

    К 30 ноября 2025 г. все семантические модели Power BI по умолчанию отключены от своих элементов и становятся независимыми семантическими моделями. Их можно сохранить, если вы по-прежнему используете их для отчетов или панелей мониторинга или безопасно удалите их, если они больше не нужны. Дополнительные сведения см. в Блоге: отделение семантических моделей по умолчанию для существующих элементов в Microsoft Fabric.

    • Чтобы записывать запросы DAX, необходимо включить настройку рабочей области Power BI «Пользователь может изменять модели данных в службе Power BI (предварительная версия)». Дополнительные сведения см. в разделе "Изменение моделей данных" в служба Power BI