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

7a. Power Query и язык М

Глава 6. Структурированные данные

Это продолжение перевода книги Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query. В главах 4 и 5 мы познакомились со значениями и типами данных. Структурированные значения являются довольно сложными и требуют дополнительного внимания. В отличие от примитивных значений, структурированные могут включать в себя множество других значений. Эта сложность позволяет им хранить ряд примитивных значений или даже других структурированных значений, открывая широкий спектр возможностей для манипулирования данными и их анализа. Важность структурированных значений в языке М такова, что мы посвящаем им целую главу.

Мои комментарии набраны с отступом.

Предыдущая глава        Содержание    Следующая глава

Подробнее »Глава 6. Структурированные данные

Глава 5. Общие сведения о типах данных

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

Мои комментарии набраны с отступом.

Предыдущая глава        Содержание    Следующая глава

Подробнее »Глава 5. Общие сведения о типах данных

Глава 4. Общие сведения о значениях и выражениях

Это продолжение перевода книги Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query. В предыдущих главах мы рассмотрели общие сведения о языке M, интерфейс Power Query, получение доступа к данным и объединение данных. Теперь мы переходим к элементам языка M. И начнем со значения. Такой выбор естественно вытекает из предыдущей главы, поскольку каждый раз, когда мы извлекаем данные, мы получаем значение.

Мои комментарии набраны с отступом.

Предыдущая глава       Содержание    Следующая глава

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

Подробнее »Глава 4. Общие сведения о значениях и выражениях

Глава 3. Доступ к данным и их объединение

Это продолжение перевода книги Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query. Учитывая, что M – язык для извлечения и преобразования данных, естественно, что в нем большое количество функций, предназначенных для извлечения данных из различных систем, таких как файлы, папки, базы данных, веб-страницы, а также стандартизированные структуры данных и протоколы, такие как расширяемый язык разметки (XML), JavaScript Object Notation (JSON) и протокол открытых данных (OData).

Мои комментарии набраны с отступом.

Предыдущая глава       Содержание    Следующая глава

Подробнее »Глава 3. Доступ к данным и их объединение

Глава 2. Работа с Power Query/М

Это продолжение перевода книги Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query. В главе 1 Знакомство с М мы рассказали о фундаментальных аспектах языка М. В разделе «Где используется M» мы кратко представили концепцию интерфейсов Power Query, включая Power Query Desktop и Power Query Online.

В этой главе содержатся дополнительные сведения о работе с M в интерфейсе Power Query в Power BI Desktop. Изложенные здесь знания позволят вам начать писать код M с помощью графического пользовательского интерфейса (GUI), предоставляемого редактором Power Query. Этот код может быть напрямую перенесен в другие интерфейсы, такие как Excel, Power Query Online или на сайт powerbi.com. Интерфейс Power Query Desktop позволяет сгенерировать код M без его написания. Код записывается пока вы кликаете на кнопки в интерфейсе редактора. Так что вы можете начать использовать M даже не зная языка.

Мои комментарии набраны с отступом.

Предыдущая глава       Содержание    Следующая глава

Подробнее »Глава 2. Работа с Power Query/М

Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query

Я использую Power Query на работе и в игре Fantasy Premier League. При том что Power Query посвящено немало книг, языку М в каждой из них обычно уделяется одна глава. Я компенсировал этот пробел изучая англоязычные блоги: Ben Gribaudo, Chris Webb, Gil Raviv, Rick de Groot, а также телеграмм-канал Михаила Музыкина. Заметки в этих источниках были весьма поучительными, но целостную картину приходилось собирать по крупицам. Как обычно официальная документация Microsoft казалась слишком заумной для новичка. Я даже начал писать книгу об основах языка М. И тут такая удача – выход 760-страничного полного руководства по языку М!

Авторы подчеркивают, желательно, чтобы эта книга не была вашим первым знакомством с Power Query. Если это не так, рекомендую начать с Кен Пульс, Мигель Эскобар Язык М для Power Query. Большинство примеров в книге основаны на Power BI Desktop. Перевод некоторых крупных текстовых фрагментов я доверил Chat GPT, но не самого важного в этой книге. Мои комментарии набраны с отступом.  Буду признателен за замечания, если допустил неточности при переводе.

Gregory Deckler, Rick de Groot, Melissa de Korte. The Definitive Guide to Power Query (M). – UK: Packt Publishing Ltd., March 2024 – 760 p.

Подробнее »Грегори Декер, Рик де Гроот, Мелисса де Корте. Полное руководство по языку М Power Query

Power Query вызывает источник больше раз, чем вы ожидаете

В прошлый раз мы рассмотрели, как можно реализовать свёртывание запроса с помощью Table.View. Мы разобрались, почему нельзя однозначно ответить на вопрос «какие функции языка М сворачиваются?». Ответ зависит от версии Power Query, коннектора данных, аргументов функции и даже набора внешних данных, к которым осуществляется доступ.

Как вы думаете, Power Query взаимодействует с каждым внешним источником при обработке выражения только один раз? Гарантируется ли получение одинаковых результатов: а) при обработке выражения локально PQ, б) частичной свёртке в источник, в) полной свёртке?[1]

Подробнее »Power Query вызывает источник больше раз, чем вы ожидаете

Язык М 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. Управление глобальной средой, замыкание