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

7a. Power Query и язык М

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

Система типов Power Query помогает понять значения, с которыми мы работаем, описать типы данных, ожидаемых от пользовательских функций, дает доступ к документации (которую может отображать IntelliSense) и предоставляет механизм информирования пользователей о структуре данных, которые могут отображаться в хост-среде, например, для настройки типов столбцов.[1]

Подход M к типам на макроуровне заключается в следующем:

  • Каждое значение имеет свой тип.
  • Тип сам по себе является значением.
  • Типы используются для классификации значений.

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

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

Язык М Power Query. Обработка ошибок

В М можно вызвать и обработать ошибки во время выполнения. Если из других языков программирования вы знакомы с идеей исключения, обработка ошибок Power Query отличается по крайней мере одним существенным моментом.[1]

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

Рис. 1. Три поля записи error; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

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

Язык М Power Query. Структура управления

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

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

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

Язык М Power Query. Табличное мышление

Зачем вам понимание того, как Power Query думает о таблицах? В конце концов, вы пишете выражение, движок делают свою работу, в итоге получается таблица. Все довольны, и какое вам дело, что «за кулисами»… Верно? Да… до тех пор, пока вы не столкнетесь с проблемами производительности, не измените значение во время обработки или не возникнет ошибка брандмауэра… И что тогда? Понимание того, как M обрабатывает таблицы, является важным преимуществом при разработке эффективных запросов, позволяет избежать изменчивость результатов и обеспечить конфиденциальность данных. К табличному мышлению языка М относятся следующие темы: потоковая передача, свертывание запросов, буферизация, ключевые столбцы, встроенное кэширование, брандмауэр…[1]

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

Подробнее »Язык М Power Query. Табличное мышление

Язык М Power Query. Синтаксис таблиц

Таблицы – основа Power Query. Вы пишите запросы, чтобы подсоединиться к одному или нескольким источникам, извлечь, объединить и обработать данные, а затем вернуть результаты в виде таблицы в Excel (или Power BI). В связи с таблицами можно изучать много интересного, но мы сосредоточимся на синтаксисе. Предыдущий пост мы завершили мыслью о том, что по поведению таблицы похожи на списки и записи. При этом таблицы больше, чем просто список записей. Начнем рассмотрение с того, что общего в списках и таблицах.[1]

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

Рис. 1. Таблица в редакторе Power Query; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

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

Язык М Power Query. Типы list, record (список и запись)

Возможно, вы склонны пропустить изучение списков и записей, и сразу перейти к таблицам. И действительно, в большинстве запросов вы в основном работаете с таблицами. А таблицы состоят из значений примитивных типов, о которых вы узнали в предыдущих заметках. Так зачем же вам list и record? Оказывается, таблица ведет себя так же, как список и запись. Если вы хотите использовать все возможности, которые предлагает таблица, изучите list и record. Кроме того, существует связь между выражением let и типом record. Так что, полезного вам чтения![1]

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

Рис. 1. Список в редакторе Power Query

Подробнее »Язык М Power Query. Типы list, record (список и запись)

Язык М Power Query. Типы logical, null и binary

Эта заметка завершает обзор примитивных типов языка М: текст, число, дата/время, логический, бинарный и null.[1]

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

Рис. 1. Выражение if возвращает логическое значение

Подробнее »Язык М Power Query. Типы logical, null и binary

Язык М Power Query. Временные типы

В M представлено целое семейство временных типов: date, time, datetime, datetimezone и duration. У этих типов много общего, поэтому мы рассмотрим их иначе, чем типы text и number. Сначала мы представим каждый тип и рассмотрим его уникальные аспекты. Затем изучим, как различные типы в этом семействе взаимодействуют друг с другом. И наконец расскажем об общей функциональности, свойственной всем типам в семействе.[1]

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

Рис. 1. Тип date

Подробнее »Язык М Power Query. Временные типы

Язык М Power Query. Типы – Число (Number)

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

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

Подробнее »Язык М Power Query. Типы – Число (Number)

Язык М Power Query. Типы – Введение и текст (строки)

Изучите запрос Power Query под микроскопом. Что вы увидите? Данные, пульсирующие между выражениями. Увеличьте масштаб. Вы различите отдельные элементы данных, составляющие этот поток. Элементы данных группируются в зависимости от типа содержащихся в них значений: некоторые содержат текст, другие – дату и время, третьи – значения ИСТИНА или ЛОЖЬ. Конечно же, куда без чисел!?

В языке M поддерживается довольно много типов значений. Типам свойственно особое поведение. Например, для даты и времени существует специальное правило сложения: добавьте время к дате, и вы получите дату-время. Описание всех типов занимает много места. В этой заметке мы рассмотрим специфику текста (строк). Другие типы оставим на потом.[1]

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

Подробнее »Язык М Power Query. Типы – Введение и текст (строки)