Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Power Query вычисляет запрос M, чтобы определить данные и преобразования, необходимые для его результата. Во время вычисления свёртывание запроса пытается преобразовать поддерживаемые преобразования в операции, которые может выполнять источник данных. Преобразования, которые не поддерживают свертывание, выполняются в механизме Power Query.
Что такое скрипт Power Query M?
Скрипт M, также называемый кодом M, является набором функций языка формулы Power Query M и синтаксиса, который Power Query оценивается для получения результата запроса. У каждого запроса есть M-скрипт, независимо от того, создает ли его Power Query, пишете ли вы его в расширенном редакторе или вводите в пустом запросе.
Подсказка
Скрипт M можно рассматривать как рецепт, описывающий подготовку данных.
Наиболее распространенным способом создания скрипта M является использование редактора Power Query. Например, при подключении к источнику данных, например базе данных SQL Server, обратите внимание на правой части экрана, что есть раздел, который называется примененным действием. В этом разделе показаны все шаги или преобразования, используемые в запросе. В этом смысле редактор Power Query служит интерфейсом для создания соответствующего скрипта M для необходимых преобразований и гарантирует допустимость используемого кода.
Замечание
Скрипт M используется в редакторе Power Query:
- Отображение запроса в виде ряда шагов и позволяет создавать или изменять шаги.
- Показать схему.
В этом SQL Server примере область "Примененные шаги" содержит следующие действия:
- Источник: делает подключение к источнику данных. В этом случае это подключение к базе данных SQL Server.
- Навигация: переходит к определенной таблице в базе данных.
- Удалены другие столбцы: выбирает, какие столбцы из таблицы следует хранить.
- Отсортированные строки: сортирует таблицу с помощью одного или нескольких столбцов.
- Сохранялись верхние строки: фильтрует таблицу, чтобы сохранить только некоторые строки в верхней части таблицы.
Просмотр и изменение скрипта M в Power Query
Этот набор имен шагов является удобным способом просмотра скрипта языка 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 ссылается на код Power Query M в запросе, к которому можно получить доступ через расширенный редактор или представление скрипта запроса в строке формул.
Как Power Query оценивает запрос M
Power Query вычисляет скрипт M, определяя необходимые выходные данные и способ его создания. Для запросов, использующих внешний источник данных, оценка включает запрос данных из источника, обработку преобразований, выполняемых в подсистеме Power Query, и загрузку результата в место назначения.
На следующей схеме рассматривается процесс, который возникает при оценке запроса в Power Query.
- Скрипт M, найденный в расширенном редакторе, отправляется в подсистему Power Query. Также включаются другие важные сведения, такие как учетные данные и уровни конфиденциальности источника данных.
- Power Query определяет, какие данные необходимо извлечь из источника данных и отправить запрос в источник данных.
- Источник данных отвечает на запрос от Power Query путем передачи запрошенных данных в Power Query.
- Power Query получает входящие данные из источника данных и выполняет любые преобразования с помощью подсистемы Power Query при необходимости.
- Power Query загружает преобразованный результат в место назначения.
Замечание
В этом потоке показан запрос, считывающийся из базы данных SQL Server. Для запроса без внешнего источника данных Power Query по-прежнему оценивает скрипт M и создает результат, но этапы запроса и передачи данных не применяются.
Как свертывание запросов оптимизирует оценку запросов
Когда Power Query считывает скрипт M, он запускает скрипт с помощью процесса оптимизации для более эффективной оценки запроса. В этом процессе определяется, какие шаги (преобразования) из запроса можно выгрузить в источник данных. Он также определяет, какие другие шаги необходимо оценить с помощью подсистемы 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) выполняет преобразования, которые не удалось сложить или выгрузить в источник данных.
- Power Query загружает преобразованный результат в место назначения.
Замечание
В зависимости от преобразований и источников данных, используемых в скрипте M, Power Query определяет, следует ли передавать или буферивать входящие данные.
Что делает свертка запросов в Power Query
Цель свертывания запроса — передать как можно больше вычислений запроса на источник данных, который сам может выполнять преобразования запроса.
Механизм свертывания запросов выполняет эту задачу путем перевода скрипта M на язык, который может интерпретировать и выполнять источник данных. Затем она отправляет оценку в источник данных и отправляет результат этой оценки в Power Query.
Эта операция часто обеспечивает более быстрое выполнение запроса, чем извлечение всех необходимых данных из источника данных и выполнение всех преобразований, необходимых в подсистеме Power Query.
При использовании интерфейса get data experience Power Query описывает процесс, который в конечном итоге позволяет подключаться к источнику данных. При этом Power Query использует ряд функций на языке M, классифицированных как accessing data functions. Эти конкретные функции используют механизмы и протоколы для подключения к источнику данных с помощью языка, который может понять источник данных.
При преобразованиях, следующих за функцией источника данных, механизм свертывания запросов проверяет, можно ли перенести их выполнение в источник данных вместо обработки в ядре Power Query.
Это важно
Функции источника данных, обычно показанные как исходный шаг запроса, запрашивают данные в источнике данных на собственном языке. Для преобразований, выполняемых после функции источника данных, Power Query пытается выполнить свёртывание запроса только в том случае, если соединитель и преобразования поддерживают его. Механизм может переводить и объединять поддерживаемые преобразования в один запрос источника данных.
Результаты свертывания запросов в Power Query
В зависимости от структуры запроса может быть три возможных результата в механизме свертывания запросов:
| Результат свёртывания запросов | Обработка в источнике данных | Обработка в подсистеме Power Query |
|---|---|---|
| Полное свертывание запроса | Источник данных обрабатывает все преобразования запросов. | Минимальная обработка выполняется в подсистеме Power Query. |
| Частичное свертывание запросов | Источник данных обрабатывает преобразования, которые Power Query могут переводить на собственный язык запросов. | Подсистема Power Query обрабатывает оставшиеся преобразования. |
| Нет сворачивания запросов | Источник данных возвращает запрошенные исходные данные без обработки преобразований запросов. | Модуль Power Query обрабатывает все необходимые преобразования. |
Источники данных, поддерживающие свертывание запросов
Поддержка свертывания запросов зависит от соединителя, источника данных и преобразований в запросе. Соединители для структурированных источников данных с возможностями обработки запросов, такие как SQL Server и OData Feed, обычно поддерживают свертывание запросов. Источники без обработчика запросов, например CSV и Excel файлов, не поддерживают свертку запросов.
Во время оптимизации подсистема Power Query может изменить порядок действий запроса. Использование источника данных с большим количеством ресурсов обработки и возможностей свертывания запросов может снизить время загрузки запросов, так как обработка происходит в источнике данных вместо подсистемы Power Query.
Проверьте свертывание запросов в Power Query Online
В Power Query Online используйте индикаторы свертывания запросов рядом с примененными шагами, чтобы определить, какие шаги свертываются. Вы также можете использовать план запроса, чтобы узнать, какие операции выполняются в источнике данных и какие операции выполняются в подсистеме Power Query. Эти функции доступны только в Power Query Online.
Если доступно, используйте Просмотреть собственный запрос или Просмотреть запрос источника данных, чтобы изучить запрос, который Power Query отправляет в источник данных. Доступность зависит от соединителя.