Interested Article - DAX (язык запросов)

DAX ( англ. Data Analysis eXpressions выражения для анализа данных ) — формульный функциональный язык запросов , разрабатываемый и поддерживаемый компанией Microsoft , для построения выражений и извлечения данных, которые расположены в — модели представления данных, идеологически схожей с многомерной OLAP -моделью. Запрос или выражение на DAX напоминает синтаксис формул Excel , в котором осуществляется вызов тех или иных функций языка, но, в отличие от Excel, оперирует либо сразу целыми столбцами таблицы данных, либо частью этих столбцов. В отличие от Excel, адресное обращение к данным в какой-либо ячейке таблицы данных средствами DAX невозможно, что сближает язык с SQL или MDX .

Является одним из трёх ключевых элементов концепции построения BI -систем по версии Microsoft, наряду с ETL -средствами и подсистемой визуализации . Использование DAX свободно от лицензионных отчислений.

Синтаксис

Поскольку создатели DAX вдохновлялись синтаксисом формул Excel , то и любой запрос на DAX может быть представлен как строка. Переводы каретки, пробелы, знаки табуляции между элементами запроса игнорируются, а многострочные запросы используются только для упрощения чтения программного кода.

Пример создания новой меры (аналог новой функции с точки зрения языков программирования), которая возвращает вчерашнюю дату:

Вчерашняя дата = TODAY () - 1

В реализации DAX в PowerPivot для Excel в качестве инфикса для присвоение вместо знака «=» в определениях мер используется «:=»; В остальном синтаксис остаётся неизменным. DAX-запрос для SSAS предваряет служебное слово EVALUATE . В других реализациях (например, PowerPivot для Excel, Power BI) служебное слово EVALUATE , а также ряд других служебных слов ( DEFINE , MEASURE , GROUP BY , ORDER и тому подобные) не используются в пользовательском интерфейсе и применяются автоматически.

Функциональный состав

Результатом работы запроса или выражения может быть таблица или единичное, скалярное значение. Более чем две сотни встроенных функций языка подразделяются на следующие группы:

  • функции с табличным значением
    • функции фильтров
    • агрегатные функции
    • функции логики операций со временем
  • скалярные функции
    • функции даты и времени
    • статистические функции
    • логические функции
    • функции фильтров
    • математические и тригонометрические функции
    • текстовые функции
    • функции иерархии
    • функции логики операций со временем .

Локализация

Синтаксис языка имеет частичную локализацию: названия функций языка пишутся всегда на английском ( ABS, AVERAGE, BLANK, NOW, TODAY, SUM и так далее), а десятичный разделитель и разделитель функций зависит от локали операционной системы, например, в англоязычной версии точка используется в качестве десятичного разделителя, а запятая в качестве разделителя функций (если функций в запросе больше одной), а в русской локализации для десятичного разделителя по умолчанию используется запятая, а для разделения функций внутри одного запроса или параметров функции используется точка с запятой («;»).

Испорченная кодировка в справке Power BI Desktop

Производительность

Особенностью языка является обеспечение высокой производительности запросов к данным и ориентированность на ( англ. ), за счёт чего достигается ускорение выполнения запросов и появляется возможность интерактивного взаимодействия с элементами построенных на этих данных BI -отчётов, построения с функциями интерактивной подгрузки детализаций ( drill-down ), вопросно-ответных интерфейсов и ряда других подобных средств.

Вопросно-ответный интерфейс

История

При реализации технологии столбцового хранения данных в памяти, которое используется в «движках» xVelocity (vertiPaq), потребовался язык запросов, который бы обеспечивал манипуляцию с данными, хранящимися в столбцах табличных данных (как в измерениях MDX). С другой стороны, язык должен был бы быть синтаксически похож на язык формул Excel, который к 2008—2009 году был знаком подавляющему числу бизнес-пользователей, занимающихся анализом данных. Однако похожесть DAX на нелокализованный, базирующийся на английском языке, язык формул Excel является скорее маркетинговым ходом, чем реальной необходимостью в одностроковых запросах.

Поскольку запросы производились к данным в оперативной памяти и не требовались операции ввода-вывода , новый язык мог игнорировать ряд подходов к оптимизации запросов, используемых в MDX/SQL , за счёт чего достигалась компактность запросов, более высокая скорость разработки и, потенциально, более высокая производительность по сравнению с MDX/SQL.

В 2010 году DAX вместе с табулярной моделью данных был интегрирован в SSAS версии 2012 и выпущено дополнение для Microsoft Excel 2010 Professional, версия которого стала именоваться Professional Plus.

Эксперимент был признан успешным поскольку в дальнейшем Microsoft встраивала поддержку DAX во все свои продукты линейки Microsoft Analysis Services редакций Enterprise и Business Intelligence (SQL Server 2014, SQL Server 2016,SQL Server 2017) и расширенные версии Microsoft Excel для платформы Windows (Excel 2013, Excel 2016), а также облачные реализации на платформе Azure .

В начале 2015 года был выпущен первый продукт линейки Power BI — Power BI Designer, в котором были интегрированы все «Power»-технологии, входившие в виде дополнений или иным образом интегрированные с Excel — PowerPivot, Power Query, Power View и Power Maps. В конце 2015 года этот интегрированный продукт сменил название на Power BI Desktop, c того же момента он свободен от лицензионных отчислений для персонального использования.

Примечания

  1. . Дата обращения: 24 августа 2018. 24 августа 2018 года. (нем./англ.)
  2. . Дата обращения: 13 октября 2013. 15 августа 2018 года.
  3. . Дата обращения: 15 августа 2018. Архивировано из 15 августа 2018 года.
  4. . Microsoft . Дата обращения: 14 августа 2018. 14 августа 2018 года.
  5. . Дата обращения: 14 августа 2018. Архивировано из 14 августа 2018 года.
  6. . Microsoft . Дата обращения: 3 июня 2018. 15 августа 2018 года.
  7. . Дата обращения: май 2017. 14 августа 2018 года.

Литература

Ссылки

  • . Вопросы DAX чаще всего рассматриваются в секциях Desktop и Developer
  • Русскоязычное и одно из крупнейших профессиональных сообществ по вопросам Excel и Power BI. Не связанное с Microsoft
Источник —

Same as DAX (язык запросов)