Requêter un cube Analysis Services depuis SSIS

On pourrait penser que requêter un cube OLAP avec Integration Services est trivial et pourtant, avec un collègue, nous nous sommes heurtés à quelques difficultés.

Première tentative :

Naïvement, nous créons une connexion de type OLE DB Provider for Analysis Services 9.0. On la branche sur un OLE DB Source et en guise de SQL Command, je tape ma requête MDX (les ventes par catégories depuis le DataWarehouse de AdventureWorks) :

SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS,NON EMPTY { ([Dim Product].[Dim Product Category].[Dim Product Category].ALLMEMBERS ) } ON ROWS FROM [AdventureWorks]

A la confirmation, l’avertissement suivant apparaît :

[OLE DB Source [1]] Warning: The output "OLE DB Source Output" (11) references an external data type that cannot be mapped to a Data Flow task data type. The Data Flow task data type DT_WSTR will be used instead.

Soit, qu’il en soit ainsi, un WSTR me plait bien, de plus que la preview me montre bien le résultat attendu. Je termine mon package en dirigeant le flux vers un bête FlatFile.

A l’exécution, le warning réapparaît mais plus grave, le package plante violemment(lançant SQLDumper.Exe au passage).

La solution :

Il faut en fait passer par .NET et utiliser les providers « managed« . On crée donc une ADO.NET Connection via un clic droit dans la zone des Connection Managers. Dans la liste des .NET Providers for OleDb, on choisit Analysis Services 9.0 (oui, le même mais en managé) et on le configure pour pointer sur notre cube.

Dans le Data Flow Task, on glisse un DataReader Source auquel on branche la connexion créée ci-dessus. Pas d’avertissement, on continue en branchant la sortie vers le fichier, on teste et ça marche immédiatement. Vous aurez peut-être juste besoin d’une conversion de type si vous n’êtes pas en UNICODE mais rien de difficile là-dedans (Data Conversion Transformation).

Merci à Julien sans qui je n’aurai jamais publié cet article (avant un moment).

 

PS : désolé, toutes les instructions sont en anglais car j’utilise une version US des produits, ce que je vous conseille même si vous êtes fan de la loi Toubon.

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