Linked Server SSAS


 

Grace à une question posée par Steve Simon sur une mailing liste “secrète” j’ai effectué quelques tests afin de valider le bon fonctionnement de la commande OpenQuery() sur un cube tabulaire en DAX !

 

Linked Server

La création de serveurs liés dans SQL Server n’est plus à présenter, cela permet au moteur de base de données SQL Server d’exécuter des commandes sur des sources de données OLEDB situées en dehors de l’instance.

Linked Server

En général, les serveurs liés sont configurés pour permettre d’exécuter une instruction Transact-SQL qui inclut des tables situées dans une autre instance ou dans une autre base de données comme Oracle, DB2, Access, Excel,… A ce titre j’avais écrit un article sur la création d’un serveur lié sur une base de données Informix : http://www.pulsweb.fr/serveur-lie-informix/.

Un autre exemple que j’aime bien sur l’utilisation d’un serveur lié : Klout avait besoin de créer un cube multidimensionnel sur des données hébergées dans un clusteur Hadoop. La solution fut d’utiliser SQL Server comme relais ou proxy pour exécuter des commandes sur une source de données OLEDB (MSDASQL) via le driver Hive ODBC :

HiveLinkedServer

 

SSAS Multidimensionnel (MDX)

La commande T-SQL sp_addlinkedserver permet de créer un serveur lié, ici sur un cube SSAS Multidimensionnel :

La commande OPENQUERY() permet d’exécuter une requête sur le serveur lié spécifié.

[box type=”idea”]Remarque : OPENQUERY peut également être utilisé comme table cible d’une instruction INSERT, UPDATE ou DELETE. Cela dépendant des capacités du fournisseur OLEDB.[/box]

Voici une requête MDX sur le cube multidimensionnel référencé par le serveur lié “MSSAS” :

 

SSAS Tabulaire (MDX & DAX)

Voici la requête T-SQL permettant d’ajouter un serveur lié SSAS Tabulaire :

Voici une requête MDX sur le cube tabulaire référencé par le serveur lié “TSSAS” :

Et le meilleur pour la fin, une requête DAX sur le même cube tabulaire :

Cela laisse entrevoir pas mal de cas d’utilisations ! Ainsi il est intéressant de pouvoir extraire des données en DAX, en MDX, en HiveQL, en DMX, … puis de pouvoir les remanier facilement a l’aide de T-SQL.

 

Bonus : Linked Server Hadoop Hive

Requête T-SQL permettant d’ajouter un serveur lié Hive :

Pour afficher la liste des tables Hive :

 

Commentez cet article