Obtenir les métadonnées d’un cube via PowerShell

Cas pratique : obtenir la liste des attributs des dimensions leurs caractéristiques et leurs croisements avec les groupes de mesures (sous format exploitable type Excel évidemment).

Une solution pragmatique eut été d’affecter un stagiaire à cette tâche et de lui demander de prendre le projet et de tout transcrire dans un fichier Excel.
Mais, évidemment, je n’ai pas pour habitude de procéder de la sorte et j’avais besoin de la liste très rapidement.

Je me suis donc tourné vers PowerShell car je sais qu’il y a une extension pour SQL Server et plus précisément pour Analysis Services.

Ce billet n’a pas pour but de vous apprendre PowerShell mais de vous montrer les commandes utiles pour fouiller dans SSAS.

Pour commencer, il faut charger les commandes SSAS :

[Reflection.Assembly]::LoadWithPartialName
("Microsoft.AnalysisServices")

Ensuite, on se connecte au serveur (vous noterez que j’utilise des variables – $server, $cubeid, etc.)

$server = New-Object Microsoft.AnalysisServices.Server
$server.connect($servername)

Ensuite, on récupère le cube dans la bonne base de données

$cube = $server.Databases.Item($database).Cubes.Item($cubeid)

Enfin, je n’ai plus qu’à itérer sur les groupes de mesures pour récupérer les données

foreach ($mg in $cube.MeasureGroups)
{
    foreach ($dim in $mg.Dimensions) {
        foreach ($attr in $dim.CubeDimension.Attributes) {
            $row = $mg.Name + ‘,’+
             $mg.ID + ‘,’+
             $dim.Dimension.Name + ‘,’ +
             $dim.Dimension.ID + ‘,’ +
             $dim.GetType().ToString()
            $row | out-file -append $filename
        }
    }
}

Le modèle objet d’Analysis Services n’est pas compliqué même si ce n’est pas trivial non plus.
Vous pouvez trouver des informations sur ce modèle dans la MSDN ici : http://msdn.microsoft.com/fr-fr/library/microsoft.analysisservices.cube(v=SQL.105).aspx

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s