Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлен базовый обзор обработки и преобразования запросов 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 для запроса. Например, если использовать предыдущее изображение в качестве отправной точки и изменить имя шага с Сохранить верхние строки на Верхние 20 строк, это изменение автоматически обновится в представлении скрипта.
Хотя мы рекомендуем использовать редактор Power Query для создания всего или большей части скрипта M, вы можете вручную добавлять или изменять фрагменты скрипта M. Чтобы узнать больше о языке M, перейдите на официальный сайт документации по языку M.
Примечание
Скрипт M, также называемый кодом M, является термином, используемым для любого кода, использующего язык Power Query M. В контексте этой статьи скрипт M также ссылается на код, найденный внутри запроса 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.
Подробные примеры трех возможных результатов механизма свертывания запросов см. в примерах свертывания запросов.
Сведения об индикаторах сворачивания запросов, найденных на панели "Примененные шаги", перейдите к разделу "Индикаторы сворачивания запросов"