Compatibility level 1000000 v SSAS Tabulare 2019

Dnes som si pri dokončovaní nového Power BI Analyzera 2.0 všimol zaujímavú vec – že podporuje compatibility level 1000000. Na tom by nebolo nič zvláštne, ale používatelia SSAS Tabularu vedia, že to číslo je za normálnych okolností medzi 1100 (SSAS Tabular 2012) a 1500 (SSAS Tabular 2019). A tak som ho teda vyskúšal 🙂

Compatibility level 1000000 pravdepodobne prislúcha pripravovaným, rozprogramovaným funkcionalitám v ďalšej verzii SSAS Tabularu. Pretože oficiálne o tom nikde nenájdete zmienku. A ja som na to tiež narazil úplnou náhodou, keď som dohľadával pár drobností v interných informáciách servera.

Existuje aj compatibility level 1000000?

Keď zavoláte nasledujúci dotaz na DMV, napr. cez SQL Server Management Studio, alebo DAX Studio:

SELECT [PropertyName], [Value] FROM $SYSTEM.DISCOVER_PROPERTIES
WHERE [PropertyName] = 'SupportedCompatibilityLevels'

…tak v SSAS Tabulare 2019 RC1 to vráti takýto výsledok:

…a v aktuálnom Power BI Desktope takýto výsledok:

Oficiálne sú zdokumentované iba levely 1100 až 1400 plus 1500. Levely 14** – medzi 1400 a 1500 – patria SSAS Tabularu 2019, aj keď 1400 patrí SSAS Tabularu 2017. Trochu bordel, ale takto to v MS vyriešili, keď potrebovali vypustiť novú funkcionalitu SSAS Tabularu 2019 do Power BI Desktopu ešte pred jej oficiálnym oznámením. Pretože tie jednotlivé medzilevely reprezentujú postupne jednotlivú funkcionalitu, ako napr. prepojenia typu many-to-many či výpočtové skupiny, ktoré si MS vo väčšine prípadov najprv otestoval na užívateľoch Power BI, a potom, keď to bolo vyladené, ich oficiálne zapol aj v preview verziách SSAS Tabularu 2019.

Compatibility level 1000000?

Čo je ale compatibility level 1000000? Verzia zo Star Treku? Alebo má schopnosti Hviezdy smrti z Hviezdnych vojen? Niečo, na čo sa môžeme tešiť za 5 storočí?

Pátral som po internete, ale absolútne nič som k tomu nenašiel. Tak som na to teda išiel metódou experimentovania.

Vytvoril som si jednoduchý dátový model v SSAS Tabulare 2019 RC1, nasadil ho, a potom som mu zmenil compatibility level na 1000000. Neprotestoval. Dokonca aj spätné overenie cez DMV potvrdilo úspešnosť zmeny:

Čo tam je ale nové?

To som sa rozhodol zistiť cez prešrotenie všetkých DMV. Keď som niektoré z nich skúšal spustiť v predchádzajúcich verziách SSAS Tabularu či verzii zabalenej v Power BI, tak niektoré z nich mi vrátili takéto chybové hlásenie:

A práve tie som skúsil na maximálnom ultra turbo leveli 1000000. Boli to tieto 2 DMV, a vrátili nasledovné výsledky:

SELECT * FROM $SYSTEM.TMSCHEMA_ANALYTICS_AIMETADATA


SELECT * FROM $SYSTEM.TMSCHEMA_QUERY_GROUPS

Výsledky boli samozrejme prázdne, lebo nič také tam ešte nie je vytvorené. Keď vlastne nemáme ani matný šajn o tom, čo to vlastne je.

V tom prvom prípade tipujem, že ide o prípravu na integráciu AI do SSAS Tabularu, tak ako je teraz integrovaná v Power BI Premium, aby bola v budúcnosti dostupná aj pre bežných užívateľov Power BI.

V tom druhom prípade by mohlo ísť buď o nejaký zoznam histórie DAX dotazov vykonaných voči modelu, alebo nejaká alternatíva k výpočtovým skupinám (po anglicky calculation groups), ktorá bude niečo robiť s dotazmi. Alebo to môže byť ešte niečo podobné databázovým pohľadom, kde si užívatelia/vývojári môžu odložiť svoje DAX dotazy a zamaskovať ich ako tabuľky pre načítanie dát. To by bola bombová vec, pretože konečne by boli k dispozícii vypočítané tabuľky, ktoré sa „obnovujú“ v reálnom čase na základe stavu reportu. A nie predpočítané dopredu ako doteraz. Niečo ako rozdiel medzi vypočítanými stĺpcami a merítkami. A komplexné reporty by sa s tým robili oveľa, oveľa ľahšie.

Čo s tým

Môžeme však iba špekulovať, čo to je, a či to vôbec niekedy vypustia. Je to nedokumentovaná funkcionalita, a ja som si ju tiež pozrel iba zo zaujímavosti, že či to myslia vážne. Funguje to, ale ani srnka netuší, čo to vlastne robí. Takže sa necháme prekvapiť, a snáď raz niekedy v budúcnosti z toho kápne nejaká zaujímavá funkcionalita 🙂