Общие сведения об оценке запросов и сворачивании запросов в 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, но эти символы не отображаются в примененных шагах. Например #"Kept top rows"
, классифицируется как идентификатор кавычки из-за этих дополнительных символов. Идентификатор кавычки можно использовать, чтобы разрешить использовать любую последовательность символов Юникода в качестве идентификатора, включая ключевые слова, пробелы, комментарии, операторы и пунктуаторы. Дополнительные сведения об идентификаторах языка M см . в лексической структуре.
Все изменения, внесенные в запрос с помощью редактора Power Query, автоматически обновляют скрипт M для запроса. Например, при использовании предыдущего изображения в качестве отправной точки при изменении имени шага шага "Сохранить верхние строки" это изменение автоматически обновляется в представлении скрипта.
Хотя мы рекомендуем использовать редактор Power Query для создания всего или большей части скрипта M, вы можете вручную добавлять или изменять фрагменты скрипта M. Чтобы узнать больше о языке M, перейдите на официальный сайт документации по языку M.
Примечание.
Скрипт M, также называемый кодом M, является термином, используемым для любого кода, использующего язык Power Query M. В контексте этой статьи скрипт M также ссылается на код, найденный внутри запроса Power Query и доступный через расширенное окно редактора или через представление скрипта в строке формул.
Оценка запросов в Power Query
На следующей схеме рассматривается процесс, который возникает при оценке запроса в Power Query.
- Скрипт M, найденный в расширенном редакторе, отправляется в подсистему Power Query. Также включаются другие важные сведения, такие как учетные данные и уровни конфиденциальности источника данных.
- Power Query определяет, какие данные необходимо извлечь из источника данных и отправить запрос в источник данных.
- Источник данных отвечает на запрос из Power Query путем передачи запрошенных данных в Power Query.
- Power Query получает входящие данные из источника данных и при необходимости выполняет любые преобразования с помощью подсистемы Power Query.
- Результаты, производные от предыдущей точки, загружаются в место назначения.
Примечание.
Хотя в этом примере демонстрируется запрос с База данных SQL в качестве источника данных, концепция применяется к запросам с источником данных или без нее.
Когда Power Query считывает скрипт M, он запускает скрипт с помощью процесса оптимизации для более эффективной оценки запроса. В этом процессе определяется, какие шаги (преобразования) из запроса можно выгрузить в источник данных. Он также определяет, какие другие шаги необходимо оценить с помощью подсистемы Power Query. Этот процесс оптимизации называется свертывания запросов, где Power Query пытается отправить максимально возможное выполнение в источник данных для оптимизации выполнения запроса.
Внимание
Следуют все правила из языка формул Power Query M (также известного как язык M). В частности, отложенная оценка играет важную роль во время процесса оптимизации. В этом процессе Power Query понимает, какие конкретные преобразования из запроса необходимо оценить. Power Query также понимает, какие другие преобразования не нужно оценивать, так как они не нужны в выходных данных запроса.
Кроме того, при использовании нескольких источников при оценке запроса учитывается уровень конфиденциальности данных каждого источника данных. Дополнительные сведения: за кулисами брандмауэра конфиденциальности данных
На следующей схеме показаны шаги, которые происходят в этом процессе оптимизации.
- Скрипт M, найденный в расширенном редакторе, отправляется в подсистему Power Query. Также предоставляются другие важные сведения, такие как учетные данные и уровни конфиденциальности источника данных.
- Механизм свертывания запросов отправляет запросы метаданных в источник данных для определения возможностей источника данных, схем таблиц, связей между разными таблицами в источнике данных и т. д.
- На основе полученных метаданных механизм свертывания запросов определяет, какие сведения необходимо извлечь из источника данных и какой набор преобразований необходимо выполнить внутри подсистемы Power Query. При необходимости он отправляет инструкции двум другим компонентам, которые при необходимости извлекают данные из источника данных и преобразуют входящие данные в подсистеме Power Query.
- Когда внутренние компоненты Power Query получат инструкции, Power Query отправляет запрос в источник данных с помощью запроса источника данных.
- Источник данных получает запрос из Power Query и передает данные в подсистему Power Query.
- После того как данные будут находиться внутри Power Query, подсистема преобразования внутри Power Query (также известная как подсистема mashup) выполняет преобразования, которые не могут быть сложены обратно или выгружены в источник данных.
- Результаты, производные от предыдущей точки, загружаются в место назначения.
Примечание.
В зависимости от преобразований и источников данных, используемых в скрипте 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.
Связанный контент
Подробные примеры трех возможных результатов механизма свертывания запросов см. в примерах свертывания запросов.
Сведения о сворачивании запросов, найденных на панели "Примененные шаги ", перейдите к разделу "Свертывание запросов"