Общие сведения об оценке запросов и сворачивании запросов в Power Query

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

Скрипт Power Query M

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

Совет

Скрипт M можно рассматривать как рецепт, описывающий подготовку данных.

Наиболее распространенным способом создания скрипта M является использование редактора Power Query. Например, при подключении к источнику данных, например базе данных SQL Server, вы заметите в правой части экрана, что есть раздел, который называется примененными шагами. В этом разделе отображаются все шаги или преобразования, используемые в запросе. В этом смысле редактор Power Query служит интерфейсом для создания соответствующего скрипта M для преобразований, которые вы используете, и гарантирует, что используемый код является допустимым.

Примечание.

Скрипт M используется в редакторе Power Query:

  • Отображение запроса в виде ряда шагов и разрешение на создание или изменение новых шагов.
  • Отображение представления схемы.

Изображение примененных шагов и представления предварительного просмотра данных.

На предыдущем изображении выделен раздел примененных шагов, содержащий следующие действия:

  • Источник: делает подключение к источнику данных. В этом случае это подключение к базе данных SQL Server.
  • Навигация: переходит к определенной таблице в базе данных.
  • Удалены другие столбцы: выбирает, какие столбцы из таблицы следует хранить.
  • Отсортированные строки: сортирует таблицу с помощью одного или нескольких столбцов.
  • Сохранялись верхние строки: фильтрует таблицу, чтобы сохранить только определенное количество строк в верхней части таблицы.

Этот набор имен шагов является понятным способом просмотра скрипта M, созданного Power Query для вас. Существует несколько способов просмотра полного скрипта M. В Power Query можно выбрать Расширенный редактор на вкладке "Вид". Вы также можете выбрать Расширенный редактор из группы запросов на вкладке "Главная". В некоторых версиях Power Query можно также изменить представление строки формул, чтобы отобразить скрипт запроса, перейдя на вкладку "Вид" и в группе макетов выберите скрипт представления>скрипта запроса.

Изображение с полным скриптом M и соответствующими именами примененных шагов.

Большинство имен, найденных на панели "Примененные шаги ", также используются в скрипте M. Шаги запроса именуются с помощью именованных идентификаторов на языке M. Иногда дополнительные символы упаковываются вокруг имен шагов в M, но эти символы не отображаются в примененных шагах. Например #"Kept top rows", классифицируется как идентификатор кавычки из-за этих дополнительных символов. Идентификатор кавычки можно использовать для разрешения любой последовательности нулевых или более символов Юникода, включая ключевое слово, пробелы, комментарии, операторы и знаки препинания. Дополнительные сведения об идентификаторах языка M см . в лексической структуре.

Все изменения, внесенные в запрос с помощью редактора Power Query, автоматически обновляют скрипт M для запроса. Например, используя предыдущее изображение в качестве отправной точки, при изменении имени шага шага "Сохранить верхние строки " в качестве 20 строк это изменение будет автоматически обновлено в представлении скрипта.

Изображение с примененным именем шага изменилось на первые 20 строк, которые также обновляют скрипт M.

Хотя мы рекомендуем использовать редактор Power Query для создания всего или большей части скрипта M, вы можете вручную добавлять или изменять фрагменты скрипта M. Чтобы узнать больше о языке M, перейдите на официальный сайт документации по языку M.

Примечание.

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

Оценка запросов в Power Query

На следующей схеме рассматривается процесс, который возникает при оценке запроса в Power Query.

Схема оценки запросов в виде обзора.

  1. Скрипт M, найденный в расширенном редакторе, отправляется в подсистему Power Query. Также включаются другие важные сведения, такие как учетные данные и уровни конфиденциальности источника данных.
  2. Power Query определяет, какие данные необходимо извлечь из источника данных и отправить запрос в источник данных.
  3. Источник данных отвечает на запрос из Power Query путем передачи запрошенных данных в Power Query.
  4. Power Query получает входящие данные из источника данных и при необходимости выполняет любые преобразования с помощью подсистемы Power Query.
  5. Результаты, производные от предыдущей точки, загружаются в место назначения.

Примечание.

Хотя в этом примере демонстрируется запрос с База данных SQL в качестве источника данных, концепция применяется к запросам с источником данных или без нее.

Когда Power Query считывает скрипт M, он запускает скрипт с помощью процесса оптимизации для более эффективной оценки запроса. В этом процессе определяется, какие шаги (преобразования) из запроса можно выгрузить в источник данных. Он также определяет, какие другие шаги необходимо оценить с помощью подсистемы Power Query. Этот процесс оптимизации называется свертывания запросов, где Power Query пытается отправить максимально возможное выполнение в источник данных для оптимизации выполнения запроса.

Внимание

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

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

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

Схема оценки запросов, объясняющая процесс оптимизации.

  1. Скрипт M, найденный в расширенном редакторе, отправляется в подсистему Power Query. Также предоставляются другие важные сведения, такие как учетные данные и уровни конфиденциальности источника данных.
  2. Механизм свертывания запросов отправляет запросы метаданных в источник данных для определения возможностей источника данных, схем таблиц, связей между разными таблицами в источнике данных и т. д.
  3. На основе полученных метаданных механизм свертывания запросов определяет, какие сведения необходимо извлечь из источника данных и какой набор преобразований необходимо выполнить внутри подсистемы Power Query. При необходимости он отправляет инструкции двум другим компонентам, которые при необходимости извлекают данные из источника данных и преобразуют входящие данные в подсистеме Power Query.
  4. После получения инструкций внутренними компонентами Power Query Power Query Power Query отправляет запрос в источник данных с помощью запроса источника данных.
  5. Источник данных получает запрос из Power Query и передает данные в подсистему Power Query.
  6. После того как данные будут находиться внутри Power Query, подсистема преобразования внутри Power Query (также известная как подсистема mashup) выполняет преобразования, которые не могут быть сложены обратно или выгружены в источник данных.
  7. Результаты, производные от предыдущей точки, загружаются в место назначения.

Примечание.

В зависимости от преобразований и источника данных, используемого в скрипте M, Power Query определяет, будет ли он передавать или буферит входящие данные.

Обзор свертывания запросов

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

Механизм свертывания запросов выполняет эту задачу, переводя скрипт M на язык, который можно интерпретировать и выполнять источником данных. Затем она отправляет оценку в источник данных и отправляет результат этой оценки в Power Query.

Эта операция часто обеспечивает гораздо быстрее выполнение запросов, чем извлечение всех необходимых данных из источника данных и выполнение всех преобразований, необходимых в подсистеме Power Query.

При использовании интерфейса получения данных Power Query поможет вам выполнить процесс, который в конечном итоге позволяет подключаться к источнику данных. При этом Power Query использует ряд функций на языке M, классифицированном как доступ к функциям данных. Эти конкретные функции используют механизмы и протоколы для подключения к источнику данных с помощью языка, который может понять источник данных.

Однако шаги, описанные в запросе, — это шаги или преобразования, которые механизм свертывания запросов пытается оптимизировать. Затем проверка, если их можно выгрузить в источник данных вместо обработки с помощью подсистемы Power Query.

Внимание

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

В зависимости от структуры запроса может быть три возможных результата в механизме свертывания запросов:

  • Полное свертывание запросов: когда все преобразования запросов будут отправлены обратно в источник данных и минимальная обработка происходит в подсистеме Power Query.
  • Частичное свертывание запросов: если только несколько преобразований в запросе, а не все, можно отправить обратно в источник данных. В этом случае в источнике данных выполняется только подмножество преобразований, а остальные преобразования запросов происходят в подсистеме Power Query.
  • Нет свертывания запросов: если запрос содержит преобразования, которые не могут быть переведены на собственный язык запросов источника данных, либо потому что преобразования не поддерживаются, либо соединитель не поддерживает свертку запросов. В этом случае Power Query получает необработанные данные из источника данных и использует подсистему Power Query для достижения выходных данных, необходимых для обработки необходимых преобразований на уровне подсистемы Power Query.

Примечание.

Механизм свертывания запросов в основном доступен в соединителях для структурированных источников данных, таких как, но не ограничен, Microsoft SQL Server и веб-канал OData. На этапе оптимизации подсистема иногда может переупорядочение шагов в запросе.

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

Следующие шаги

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

Сведения о сворачивании запросов, найденных на панели "Примененные шаги ", перейдите к разделу "Свертывание запросов"