Accueil > .Net, C#, Sql Server, SSAS > [C# 4] Requêter un cube

[C# 4] Requêter un cube

Durant mes projets, j’ai également eu le plaisir de faire la connaissance des Cubes (SSAS).

Enfin, c’est pas moi qui bossais dessus, heureusement…

En fait, il y avait notre cube donc, et des rapports avec SSRS qui tapaient dessus.

Les rapports, je les utilisais au format HTML4.0 (j’en reparle bientôt).

Mais là, c’était…dramatiquement long à charger (avant optimisation).

D’où l’interrogation suivante : est-ce que ça ne serais pas plus rapide de prendre les requêtes faites sur le Cube (requêtes MDX) et de les intégrer dans une DAL pour finalement générer le HTML sur le site ?

C’est pertinent, comme question.

Mais avant de répondre, il faut plusieurs éléments :

  • Savoir comment requêter un Cube (c’est plus pratique)
  • Avoir les requêtes MDX (elles s’inventent pas !)
  • Tester et comparer

Déjà, pour interroger un Cube, il y a un pré-requis :

Microsoft.AnalysisServices.AdomdClient.dll.

Il faut aller sur la MSDN et télécharger « Microsoft ADOMD.NET ».

Là, une fois installé, on référence notre DLL dans le projet, on met le using sur Microsoft.AnalysisServices.AdomdClient et on peut commencer à coder.

Voilà le code, du moins son condensé :

string connectionString = "Provider=MSOLAP.4;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=<MyCube>;Data Source=<MySource>";

string requete = "SELECT NON EMPTY { [Measures].[j_Field1], [Measures].[j_Field2] } ON COLUMNS, NON EMPTY { ([DIMENSION_NAME].[Id].[Id].ALLMEMBERS * [DIMENSION_WHO].[Id].[Id].ALLMEMBERS ) } ON ROWS FROM [MYCUBE]";

AdomdConnection connection = new AdomdConnection();
connection.ConnectionString = connectionString;
connection.Open();

AdomdCommand command = _connection.CreateCommand();
command.CommandText = requete;
AdomdDataReader reader = command.ExecuteReader();

connection.Close();

Après, c’est comme toutes les requêtes, on travaille sur le DataReader, donc tout va bien !

A noter, quand même, que j’ai choisis la requête la plus simple…

Mais honnêtement, les requêtes sont super complexes, mais c’est le seul problème qui peut être rencontré.

Mise à jour – 20/02/2013

Bon, comme ce billet à du succès et que les liens spécifiés étaient morts, je mets à jour avec des liens valident🙂
Decouverte du langage MDX Partie 1
Decouverte du langage MDX Partie 2
Decouverte du langage MDX Partie 3
Decouverte du langage MDX Partie 4

Catégories :.Net, C#, Sql Server, SSAS
  1. Aucun commentaire pour l’instant.
  1. 31/12/2012 à 16:04

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

%d blogueurs aiment cette page :