DAX (dotazovací jazyk)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 14. července 2021; kontroly vyžadují 2 úpravy .
DAX
Sémantika formulový, funkční , doménově specifický
Jazyková třída dotazovací jazyk
Objevil se v 2010
Autor Jeffrey Wang vývojový tým
Vývojář Microsoft
Uvolnění září 2018 (měsíční vydání) (2018)
Typový systém Dynamický
Hlavní implementace Microsoft Power BI Desktop , Microsoft Analysis Services , Microsoft Excel
Byl ovlivněn Microsoft Excel
ovlivnil Microsoft Power BI , Microsoft Analysis Services , Microsoft Excel
Licence n/a
Plošina x86-64, x86-32
OS Microsoft Windows

DAX ( anglicky  Data Analysis eXpressions  - výrazy pro analýzu dat ) je formulický funkční dotazovací jazyk vyvinutý a spravovaný společností Microsoft pro konstrukci výrazů a extrahování dat, která jsou umístěna v tabulkovém modelu  - model reprezentace dat ideologicky podobný vícerozměrnému modelu OLAP . Dotaz nebo výraz jazyka DAX se podobá syntaxi vzorců aplikace Excel , ve kterých jsou volány určité jazykové funkce, ale na rozdíl od aplikace Excel pracuje buď s celými sloupci datové tabulky najednou, nebo s částí těchto sloupců. Na rozdíl od Excelu je adresování dat v jakékoli buňce datové tabulky pomocí DAX nemožné, což jazyk přibližuje SQL nebo MDX .

Je to jeden ze tří klíčových prvků konceptu budování BI systémů podle Microsoftu spolu s ETL nástroji Power Query a  vizualizačním subsystémem Power View . Používání jazyka DAX je bezplatné.

Syntaxe

Protože se tvůrci jazyka DAX inspirovali syntaxí vzorce Excel [1] , lze jakýkoli dotaz jazyka DAX reprezentovat jako řetězec. Návraty vozíku, mezery, tabulátory mezi prvky dotazu jsou ignorovány a víceřádkové dotazy se používají pouze pro usnadnění čtení kódu.

Příklad vytvoření nové míry (analogické s novou funkcí z hlediska programovacích jazyků), která vrací včerejší datum:

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

Implementace PowerPivot for Excel jazyka DAX používá ":=" jako infix přiřazení namísto "=" v definicích míry; Zbytek syntaxe zůstává nezměněn. Dotazu DAX pro SSAS předchází znak EVALUATE. V jiných implementacích (například PowerPivot pro Excel, Power BI) se klíčové slovo EVALUATE, stejně jako řada dalších klíčových slov ( DEFINE, MEASURE, GROUP BYa ORDERpodobně) v uživatelském rozhraní nepoužívají a používají se automaticky.

Funkční složení

Výsledkem dotazu nebo výrazu může být tabulka nebo jediná skalární hodnota. Více než dvě stě vestavěných jazykových funkcí je rozděleno do následujících skupin:

Lokalizace

Syntaxe jazyka je částečně lokalizována: názvy funkcí jazyka jsou vždy psány v angličtině ( ABS, AVERAGE, BLANK, NOW, TODAY, SUMa tak dále) a oddělovač desetinných míst a oddělovač funkcí závisí na národním prostředí operačního systému, například v anglické verzi a tečka se používá jako oddělovač desetinných míst a čárka jako oddělovač funkcí (pokud je v požadavku více než jedna funkce) a v ruské lokalizaci se jako oddělovač desetinných míst standardně používá čárka a středník („; ”) se používá k oddělení funkcí v rámci stejného požadavku nebo parametrů funkce.

Výkon

Charakteristickým rysem jazyka je zajištění vysokého výkonu datových dotazů a zaměření na rezidentní výpočty ( angl.  in-memory computing ), díky čemuž je dosaženo zrychlení provádění dotazů a je možné interaktivně interagovat s prvky BI reportů . postavená na těchto datech, budování dashboardů s funkcemi interaktivního načítání detailů ( drill-down ), rozhraní otázka-odpověď a řada dalších podobných nástrojů.

Historie

DAX není programovací jazyk. DAX je především jazyk vzorců a také dotazovací jazyk. Pomocí jazyka DAX můžete definovat vlastní výpočty pro vypočítané sloupce, míry, vypočítané tabulky, skupiny výpočtů, řetězce vlastního formátu a výrazy filtrů v zabezpečení na základě rolí v tabulkových modelech. Stejný modul Analysis Services pro tabulkové modely se používá také v Power BI a Power Pivot pro Excel. Power BI také používá jazyk DAX pro výrazy podmíněného formátu a další dynamické vlastnosti vizuálních komponent. [3]

Při implementaci technologie sloupcového ukládání dat do paměti, která se používá v „motorech“ xVelocity (vertiPaq), byl vyžadován dotazovací jazyk, který by umožňoval manipulaci s daty uloženými ve sloupcích tabulkových dat (jako v dimenzích MDX). Na druhou stranu by jazyk musel být syntakticky podobný vzorcovému jazyku Excel, který v letech 2008-2009 znala velká většina podnikových uživatelů zabývajících se analýzou dat. Podobnost jazyka DAX s nelokalizovaným jazykem vzorců Excel založeným na angličtině je však spíše marketingovým trikem než skutečnou potřebou jednořádkových dotazů.

Vzhledem k tomu, že dotazy byly prováděny na data v paměti a nebylo vyžadováno žádné I/O , mohl nový jazyk ignorovat řadu přístupů optimalizace dotazů používaných v MDX/SQL [4] , což vedlo ke kompaktním dotazům, rychlejšímu vývoji a potenciálně lepšímu výkonu než MDX/SQL.

V roce 2010 byl DAX spolu s tabulkovým datovým modelem integrován do SSAS verze 2012 [5] a byl vydán doplněk pro Microsoft Excel 2010 Professional, jehož verze se stala Professional Plus.

Experiment byl uznán jako úspěšný, protože Microsoft později zabudoval podporu DAX do všech svých produktů řady Microsoft Analysis Services edic Enterprise a Business Intelligence (SQL Server 2014, SQL Server 2016, SQL Server 2017) [6] a rozšířených verzí Microsoft Excel pro platformu Windows (Excel 2013, Excel 2016), stejně jako cloudové implementace na platformě Azure [7] [8] .

Začátkem roku 2015 byl vydán první produkt z řady Power BI – Power BI Designer, který integroval všechny „Power“ technologie, které byly zahrnuty ve formě doplňků nebo jinak integrovány s Excelem – PowerPivot, Power Query, Power View a Power Maps. Na konci roku 2015 se tento integrovaný produkt přejmenoval na Power BI Desktop, od té doby je pro osobní použití zdarma.

Poznámky

  1. Rozhovor s vývojářem DAX (Jeffrey Wang) . Získáno 24. 8. 2018. Archivováno z originálu 24. 8. 2018. (němčina/angličtina)
  2. Typy funkcí DAX . Získáno 13. října 2013. Archivováno z originálu 15. srpna 2018.
  3. Alberto Ferrari. Vzory Dax: nejkomplexnější sbírka řešení připravených k použití v jazyce DAX pro Power BI, Anaysis Services a Power Pivot . — 2. vyd. - Las Vegas (NV), copyright 2020. - 1 sv. (xviii-396 str.) Str. - ISBN 978-1-7353652-0-6 , 1-7353652-0-3.
  4. SQL Explore. Služba extrémní analýzy (downlink) . Staženo 15. 8. 2018. Archivováno z originálu 15. 8. 2018. 
  5. SQL Server 2012 Books Online . Microsoft _ Získáno 14. 8. 2018. Archivováno z originálu 14. 8. 2018.
  6. Funkce podporované různými edicemi SQL Server 2014 (odkaz není k dispozici) . Získáno 14. 8. 2018. Archivováno z originálu 14. 8. 2018. 
  7. Vytvořte model v Azure Portal . Microsoft _ Získáno 3. června 2018. Archivováno z originálu 15. srpna 2018.
  8. Jak nastavit tabulkový datový model v Azure SSAS . Staženo 1. 5. 2017. Archivováno z originálu 14. 8. 2018.

Literatura

Odkazy