Ako prekonvertovať tabulárny model SSAS naspäť na PowerPivot

Konverzia PowerPivotu na serverový tabulárny model je celkom bežná operácia, keď potrebujete zdieľať svoj dátový model v PowerPivote s ďalšími užívateľmi. Čo ale v opačnom prípade – keď potrebujete dať existujúci tabulárny model zo serveru napr. obchodníkom, aby s ním mohli pracovať aj offline mimo kancelárie? V takomto prípade treba prekonvertovať tabulárny model SSAS zo serveru naspäť do Excelu do PowerPivotu. Podľa Microsoftu to nie je podporovaný scenár, ale to neznamená, že to nie je možné. Je to dokonca veľmi jednoduché 🙂

Na to, aby sme to mohli spraviť, potrebujeme vedieť, ako je uložený dátový model PowerPivotu v Exceli, a čo sa deje, keď konvertujeme PowerPivot na tabulárny model SSAS. Keď sa pozrieme na excelovský súbor, v ktorom je uložený dátový model, tak zistíme, že interne je to len premenovaný ZIP súbor – tak isto ako všetky ostatné dokumenty MS Office od verzie 2007. Excelovský súbor teda premenujeme na *.zip, a rozbalíme ho. Rozbalený súbor bude vyzerať takto:

ppivot_ssas2pp_01

Zaujímavý je v ňom podadresár xl\model. V ňom sa nachádza súbor s názvom item.data. Po troche prieskumu zistíme, že:

  1. Ide o formát so zálohou databázy tabulárneho servera SSAS,
  2. Keď otvárame okno PowerPivotu v Exceli, tak Excel na pozadí naštartuje lokálnu inštanciu Analysis Services (ktorá je šikovne skrytá do procesu Excelu), a na nej obnoví databázu tabulárneho modelu z tejto zálohy. Táto sa nachádza v TEMP adresári užívateľa, v podadresári v tvare “Vertipaq_XXXXXX”,
  3. Keď konvertujeme PowerPivot na tabulárny model, tak Data Tools zoberú tento súbor, prekopírujú ho na server, a tam vytvoria novú databázu obnovením z tejto zálohy. A voala, máme serverový model 🙂

Keď to ale ide takto, tak prečo to neskúsiť opačným smerom?

Ako prvý krok si teda spravíme zálohu databázy s tabulárnym modelom na Analysis Services. Pravdepodobne budete musieť požiadať svojho administrátora, aby ju spravil. Nezabudnite mu povedať, že táto záloha nesmie byť šifrovaná, pretože nebudeme mať kam v Exceli zadať heslo na odšifrovanie. Záloha bude jeden súbor s príponou *.abf.

V druhom kroku si vytvoríme nový excelovský súbor. V ňom otvoríme PowerPivot, a pridáme doňho nejakú tabuľku. Aká bude, je nepodstatné – podstatné je to, že po uložení tohto excelovského súboru bude tento súbor obsahovať powerpivotové dáta, a teda aj horeuvedený súbor item.data. Tento excelovský súbor uložime a zavrieme Excel.

V treťom kroku premenujeme tento excelovský súbor, a zmeníme mu príponu na *.zip. Potom tento súbor rozbalíme do osobitného adresára WinZIP-om, WinRAR-om, alebo hoci aj prieskumníkom Windows. V tomto rozbalenom adresári nájdeme podadresár xl\model, a v ňom súbor item.data. Tento súbor nahradíme zálohou z Analysis Services (horeuvedeným súborom s príponou *.abf). Pri nahradzovaní nezabudnite na to, že aj nahradený súbor sa musí volať rovnako ako pôvodný súbor – teda item.data. Následne všetky rozbalené podadresáre a súbory zbalíme naspäť do ZIP súboru, napríklad cez prieskumníka Windows:

ppivot_ssas2pp_02

Výsledný súbor premenujeme na súbor s príponou *.xlsx, a hotovo – máme úspešne prekonvertovaný tabulárny model do lokálneho PowerPivotu, vrátane dát 🙂 Teraz už len stačí súbor otvoriť a overiť, či Excel nevypíše chyby. Ak vypíše, že súbor je poškodený, tak pravdepodobne ide o niektorú z týchto príčin:

  1. výsledný excelovský súbor nemá rovnakú internú štruktúru adresárov a podadresárov ako keď ste ho vytvorili. Pravdepodobne ste zle zbalili pôvodné rozbalené súbory (napr. zbalili ste adresár s rozbalenými súbormi namiesto obsahu toho adresára – viď obrázok vyššie),
  2. na serveri bola použitá funkcionalita, ktorá nie je podporovaná v PowerPivote.

Ak je problém v bode 2), tak sa to dá vyriešiť len tak, že pred vykonaním zálohy databázy na serveri odstránite z tabulárneho modelu veci, ktoré PowerPivot nepodporuje (napríklad na kópii databázy). A až potom zazálohujete databázu, a “naoperujete” ju do excelovského súboru podľa tohto návodu. A ktoré veci bude potrebné odstrániť? Konkrétne tieto:

  1. bezpečnostné role,
  2. partície tabuliek (ak používate viac ako 3 partície v niektorej z tabuliek),
  3. prípadne ďalšie veci, ktoré sú podporované SSAS Tabular modelom, ale nie PowerPivotom – v závislosti od ich verzie.

Takto teda dostanete tabulárny model zo servera Analysis Services naspäť do excelovského PowerPivotu. Ako som spomínal v úvode – tento scenár nie je zrovna podporovaný Microsoftom – ale to neznamená, že to nie je možné spraviť. Pretože, dokým nevyskúšate, tak neviete, či to naozaj ide 🙂

Podarilo sa Vám tiež prekonvertovať SSAS modely do PowerPivotu? Narazili ste pri tom na nejaké ďalšie problémy? Ak áno, tak napíšte do komentárov pod článkom, a pokúsime sa to dotiahnuť do úspešného konca 😉