MS OLAP kockák felösszegzése (process) XMLA szkriptből

Kővári Attila BI és adattárház blogjaKővári Attila

Egy régi probléma jött most elő újra: MS OLAP kockát kell tervezni egy ORACLE adattárházra. Az integration Services (ETL eszköz) nem áll rendelkezésre, ugyanakkor meg kell oldani valahogy, hogy a partícionált kockának csak az aktuálisan töltött partícióját összegezzük fel. ETL eszköz nélkül, pusztán egy SQL server jobot tudunk használni ami alatt van egy SQL Server adatbázis kezelő is (Ha kell)

A probléma megoldására két megoldást találtam:

  • Dinamikus XMLA felösszegző script generálás .Netből vagy PowerShellből. De ehhez nem értek, úgyhogy nálam ez nem játszott
  • Dinamikus XMLA felösszegző script generálás T-SQL-ből. Ebben otthonosan mozgok, úgyhogy ezt az utat jártam végig. Úgy ahogy itt le van írva: Dynamic XMLA using T-SQL for SQL Server Analysis Services. Megj: érdemes felemelni a linked server timeoutját, mert a default 10 perc hamar kevésnek bizonyulhat egy nagyobb kocka felösszegzésénél

Lejegyzetelem ide a generált scriptet is:


Declare @CurrentPartitionID as nvarchar(255)

Declare @XMLAProcessCurrentPartition as nvarchar(4000)


Set @CurrentPartitionID = Cast(DatePart(YEAR, GetDate()) as char(4)) + ‘Q’ + Cast(DatePart(Quarter, GetDate()) as char(1))


Set @XMLAProcessCurrentPartition = N’

ProcessFull

UseExisting;


Exec (@XMLAProcessCurrentPartition) At [SSASLinkedServer]

Elválasztó

Már készül a következő cikk. Iratkozzon fel az értesítőre.

Szólj hozzá!

komment