Перейти к содержимому

Язык М Power Query. Свёртывание запросов

При свёртывании запроса Power Query принимает выражение M и преобразует его частично или полностью в собственный язык запросов или язык запросов источника данных (например, перевод M в T-SQL или в запрос OData), а затем просит источник выполнить этот запрос. Вы написали код M, но свёртывание запроса выгрузило некоторую часть выражения во внешний источник данных, переписав логику M на родной язык источника.[1]

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

Подробнее »Язык М Power Query. Свёртывание запросов

Язык М Power Query. Управление глобальной средой, замыкание

В прошлый раз мы узнали, что код М обычно вычисляется в глобальной среде, состоящей из всех общих членов разделов и стандартной библиотеки. Кроме того, обычно мы не можем вводить дополнительные идентификаторы непосредственно в эту глобальную среду. Обычно… но не всегда! Сегодня мы узнаем об исключениях.

Но и это еще не всё. Знаете ли вы, что у M есть механизм для запоминания того, как получить доступ к переменным, которые позже выйдут за рамки видимости? Этот механизм называется замыканием. Он особенно полезен при генерации функций. Замыкание позволяет создавать объектоподобную конструкцию, которая поддерживает внутреннее частное состояние (private state) и взаимодействует с ней через общедоступный интерфейс (public interface; что-то вроде объекта из объектно-ориентированного программирования!).[1]

Подробнее »Язык М Power Query. Управление глобальной средой, замыкание

Язык М Power Query. Области определения идентификаторов и секции

Одно и то же имя идентификатора (например, имя переменной, поля и т.п.) в запросе Power Query может быть определено несколько раз. Если вы используете имя идентификатора, на какое из этих определений будет указывать ссылка? В этом посте мы узнаем, как M разбирается с этим. Мы также рассмотрим разделы – обычно скрытые «фреймы», лежащие в основе организации выражений, составляющих код Power Query.[1]

Рис. 1. Описание члена раздела, хранящимся в литеральном атрибуте Description

Подробнее »Язык М Power Query. Области определения идентификаторов и секции

Fantasy Premier League. Выбор капитана

В первой заметке цикла я рассказал, что ряд менеджеров Fantasy Premier League демонстрирует высокие результаты на протяжении многих сезонов. Я выделил менеджеров, входящих в ТОР-10k по итогам пяти сезонов 2017/2018–2021/22 (элиту), а также группу сравнения – аккаунты, отобранные случайным образом (поляну). Далее я показал, какие возможности для извлечения данных с сайта Fantasy Premier League предоставляет API и Excel Power Query. В третьей заметке я исследовал различия между элитой и поляной в выборе команды к первому туру. В четвертой заметке показал отличия в трансферном поведении. В пятой заметке рассказал о игре фишками. Сейчас исследую выбор капитана в сезоне 2022/23.

Выбирая капитана в первом туре, менеджеры ориентировались на итоги предыдущего 2021/22 сезона:

Рис. 1. Выбор капитана в GW1

Подробнее »Fantasy Premier League. Выбор капитана

Fantasy Premier League. Игра фишками

В первой заметке цикла я рассказал, что ряд менеджеров Fantasy Premier League демонстрирует высокие результаты на протяжении многих сезонов. Я выделил менеджеров, входящих в ТОР-10k по итогам пяти сезонов 2017/2018–2021/22 (элиту), а также группу сравнения – аккаунты, отобранные случайным образом (поляну). Далее я показал, какие возможности для извлечения данных с сайта Fantasy Premier League предоставляет API и Excel Power Query. В третьей заметке я исследовал различия между элитой и поляной в выборе команды к первому туру. В четвертой заметке показал отличия в трансферном поведении. Сейчас исследую игру фишками в сезоне 2022/23.

Но для начала посмотрим, как закончили сезон элита и поляна.

Рис. 1. Распределение результатов элиты и поляны по итогам сезона 2022/23

Подробнее »Fantasy Premier League. Игра фишками

Крис Уэбб. Функция Csv.Document M Power Query

CSV-файлы часто используются в качестве источника данных для Power Query в Excel или Power BI Desktop. Однако документация Microsoft по функции Csv.Document() ограничена и в некоторых случаях неверна. В этой довольно длинной заметке я покажу вам столько возможностей этой функции, сколько мне удалось обнаружить.

Это перевод заметки Криса Уэбба. Повествование ведется от лица Криса. Мои примечания набраны с отступом.

Рис. 1. Простой CSV-файл

Подробнее »Крис Уэбб. Функция Csv.Document M Power Query

Функция Table.FromList M Power Query

Недавно столкнулся с неожиданной ошибкой в работе функции Table.FromList() языка M Power Query. Простой код…

Запрос1[1]

… не работает, и возвращает ошибку:

Рис. 1. Неожиданное поведение функции Table.FromList()

Подробнее »Функция Table.FromList M Power Query

Язык М Power Query. Метаданные

Power Query позволяет прикрепить к значению сведения о нём. Обычно эти описательные фрагменты невидимы. Их присутствие не меняет поведение движка М. Однако код (ваш или чужой, например, функция стандартной библиотеки) может считывать и задавать эти нотации. Они известны как метаданные. Их можно использовать для передачи дополнительной информации, относящейся к значению. Метаданные применяются в информационных или диагностических целях. Они также могут быть задействованы в выражениях, поскольку метаданные определяют поведение значений.[1]

Предыдущая заметка  Следующая заметка

Возьмем, например, параметры. Они обрабатываются особым образом в пользовательском интерфейсе Microsoft Excel (и Power BI), но в самом Power Query они хранятся как обычные значения.

Рис. 1. Параметры в Microsoft Excel

Подробнее »Язык М Power Query. Метаданные

Энтони Райс. Разоблачение тайн бухгалтерского учета

Наряду с книгой Кирана Уолша Ключевые показатели менеджмента я могу рекомендовать труд Энтони Райса для знакомства с миром финансов и бухгалтерского учета. Написано очень легким языком, с большим числом примеров, это то, что нужно для введения в тему. Энтони Райс — не бухгалтер. Искусство бухгалтерского учета он постигал непросто — вел бухгалтерию своей компании. И лишь спустя пятые выходные, проведенные в борьбе с бухучетом, вдруг осознал, насколько он прост. С этого дня бухгалтерский учет утратил свою таинственность. К тому же в течение двух следующих лет Райс обнаружил, что, сосредоточившись на балансе и используя схемы и диаграммы, он может облегчить страдания других людей, блуждающих в дебрях учета. Впоследствии, потратив много времени на анализ деятельности разных компаний (сначала в качестве консультанта по стратегии, а затем занимаясь поиском компаний, которые можно было бы купить), он сделал несколько ценных открытий в области финансового анализа.

Энтони Райс. Разоблачение тайн бухгалтерского учета. Как разобраться в бухгалтерской отчетности и в финансовом анализе. М.: Олимп—Бизнес, 2006. — 352 с.

Подробнее »Энтони Райс. Разоблачение тайн бухгалтерского учета

Крис Уэбб. Устранение неполадок с обновлением веб-службы в Power BI с помощью функции диагностики Power Query

Это перевод статьи Криса Уэбба, дополненный моими комментариями с использованием Chat GPT (набраны с отступом). Повествование ведется от первого лица (Криса).

Ранее я писал в блоге о том, как устранять проблемы с обновлением веб-службы с помощью стороннего инструмента под названием Fiddler. Информация по-прежнему актуальна, но Fiddler — сложный инструмент. Установить его и дать правильные разрешения для просмотра всего, что ему нужно, непросто. К счастью, новая функция диагностики Power Query в Power BI (выпущенная в октябре 2019 г.) означает, что вам больше не нужно использовать Fiddler для такого рода работы. Полная информация о том, как использовать эту функцию, приведена здесь, но я подумал, что было бы полезно сосредоточиться на одном конкретном варианте ее использования.

Функция диагностики в Excel на момент публикации перевода не доступна.

Рис. 1. Запрет скачивания в фоновом режиме

Подробнее »Крис Уэбб. Устранение неполадок с обновлением веб-службы в Power BI с помощью функции диагностики Power Query