DAX | |
---|---|
Семантика | формульный, функциональный, предметно-ориентированный |
Класс языка | язык запросов |
Появился в | 2010 |
Автор | Jeffrey Wang[en] и команда разработки |
Разработчик | Microsoft |
Выпуск | Сентябрь 2018 (ежемесячные релизы) (2018) |
Система типов | Динамическая |
Основные реализации: | Microsoft Power BI Desktop, Microsoft Analysis Services, Microsoft Excel |
Испытал влияние | Microsoft Excel |
Повлиял на | Microsoft Power BI, Microsoft Analysis Services, Microsoft Excel |
Лицензия | n/a |
Платформа | x86-64, x86-32 |
ОС | Microsoft Windows |
DAX (англ. Data Analysis eXpressions — выражения для анализа данных) — формульный функциональный язык запросов, разрабатываемый и поддерживаемый компанией Microsoft, для построения выражений и извлечения данных, которые расположены в табулярной модели — модели представления данных, идеологически схожей с многомерной OLAP-моделью. Запрос или выражение на DAX напоминает синтаксис формул Excel, в котором осуществляется вызов тех или иных функций языка, но, в отличие от Excel, оперирует либо сразу целыми столбцами таблицы данных, либо частью этих столбцов. В отличие от Excel, адресное обращение к данным в какой-либо ячейке таблицы данных средствами DAX невозможно, что сближает язык с SQL или MDX.
Является одним из трёх ключевых элементов концепции построения BI-систем по версии Microsoft, наряду с ETL-средствами Power Query[en] и подсистемой визуализации Power View[en]. Использование DAX свободно от лицензионных отчислений.
Поскольку создатели DAX вдохновлялись синтаксисом формул Excel[1], то и любой запрос на 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
и так далее), а десятичный разделитель и разделитель функций зависит от локали операционной системы, например, в англоязычной версии точка используется в качестве десятичного разделителя, а запятая в качестве разделителя функций (если функций в запросе больше одной), а в русской локализации для десятичного разделителя по умолчанию используется запятая, а для разделения функций внутри одного запроса или параметров функции используется точка с запятой («;»).
Особенностью языка является обеспечение высокой производительности запросов к данным и ориентированность на резидентные вычисления (англ. in-memory computing), за счёт чего достигается ускорение выполнения запросов и появляется возможность интерактивного взаимодействия с элементами построенных на этих данных BI-отчётов, построения информационных панелей[en] с функциями интерактивной подгрузки детализаций (drill-down), вопросно-ответных интерфейсов и ряда других подобных средств.
При реализации технологии столбцового хранения данных в памяти, которое используется в «движках» xVelocity (vertiPaq), потребовался язык запросов, который бы обеспечивал манипуляцию с данными, хранящимися в столбцах табличных данных (как в измерениях MDX). С другой стороны, язык должен был бы быть синтаксически похож на язык формул Excel, который к 2008—2009 году был знаком подавляющему числу бизнес-пользователей, занимающихся анализом данных. Однако похожесть DAX на нелокализованный, базирующийся на английском языке, язык формул Excel является скорее маркетинговым ходом, чем реальной необходимостью в одностроковых запросах.
Поскольку запросы производились к данным в оперативной памяти и не требовались операции ввода-вывода, новый язык мог игнорировать ряд подходов к оптимизации запросов, используемых в MDX/SQL[3], за счёт чего достигалась компактность запросов, более высокая скорость разработки и, потенциально, более высокая производительность по сравнению с MDX/SQL.
В 2010 году DAX вместе с табулярной моделью данных был интегрирован в SSAS версии 2012[4] и выпущено дополнение для Microsoft Excel 2010 Professional, версия которого стала именоваться Professional Plus.
Эксперимент был признан успешным поскольку в дальнейшем Microsoft встраивала поддержку DAX во все свои продукты линейки Microsoft Analysis Services редакций Enterprise и Business Intelligence (SQL Server 2014, SQL Server 2016,SQL Server 2017)[5] и расширенные версии Microsoft Excel для платформы Windows (Excel 2013, Excel 2016), а также облачные реализации на платформе Azure[6][7].
В начале 2015 года был выпущен первый продукт линейки Power BI — Power BI Designer в котором были интегрированы все «Power»-технологии, входившие в виде дополнений или иным образом интегрированные с Excel — PowerPivot, Power Query, Power View и Power Maps. В конце 2015 года этот интегрированный продукт сменил название на Power BI Desktop, c того же момента он свободен от лицензионных отчислений для персонального использования.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .