Olo-one Technologies

LA NOTE DÉCISIONNELLE
D'OLO-ONE             MAI 2009

Nº5

COTÉ TECHNO

PAR RENAUD CHASTAGNER Consultant décisionnel

POURQUOI CHOISIR SYBASE IQ ?

Si vous aviez le choix entre un Walkman et un lecteur MP3, que choisiriez-vous ?

La réponse semble évidente pour tout le monde mais il y a un domaine du décisionnel où l’on garde un goût fort prononcé pour le Walkman !

Ce choix ne concerne pas la dernière fonctionnalité cosmétique pour les reportings mais le cœur même du système décisionnel : la base de données qui héberge le Datawarehouse.

Historiquement, les SGBD traditionnels ont naturellement accueilli les premiers Infocentres faute de moteur dédié aux problématiques du décisionnel. Mais depuis 25 ans, l’informatisation et la multiplication des processus au sein des entreprises ont amené une croissance exponentielle du volume des données. Ces moteurs traditionnels, qui n’étaient pas conçus à l’origine pour gérer une telle volumétrie, ont résisté à cette inflation grâce à l’augmentation de la puissance des serveurs. C’est comme si pour répondre à l’augmentation de la production musicale mondiale, Sony avait sorti un Walkman capable de contenir 50 cassettes. Il ne l’a pas fait et l’industrie a développé les lecteurs MP3 qui embarquent jusqu’à 500 de nos bonnes vieilles cassettes.

Il existe un éditeur qui, depuis un certain temps, offre une alternative à cette course sans fin à la puissance : Sybase. En effet, il propose Sybase IQ, un moteur spécifiquement conçu pour répondre aux besoins d’un Datawarehouse. Et malgré les réponses qu’apportent cette solution aux problématiques spécifiquement décisionnelles, les décideurs continuent à lui préférer leurs bons vieux SGBD qui ne leur ont jamais fait défaut dans l’hébergement de leurs applications transactionnelles.

La première fois que j’ai parcouru leur plaquette marketing qui annonçait des temps de réponse « 10 à 100 fois plus rapides que les SGBDR traditionnels grâce à une architecture verticale », j’ai tout de suite imaginé un benchmark éditeur « équitable »: serveur multivitaminé d’un côté contre serveur tout court de l’autre, tuning pointu pour l’un contre valeur par défaut pour l’autre, etc … Mais la première fois que j’ai pu pratiquer Sybase IQ, j’ai été réellement impressionné par les temps de réponse : 14 secondes pour un SUM(CA) GROUP BY MAGASIN sur une table de 130 Millions d’enregistrements. Depuis, je prends très au sérieux les performances annoncées par les éditeurs sur leurs logiciels.

Comment Sybase IQ se démarque-t-il des SGBD traditionnels ?

La différence fondamentale de ce moteur est le Partitionnement Vertical Transparent c'est-à-dire qui stocke les données en colonnes, contrairement aux autres qui les stockent en lignes. Même si ce mode de stockage ne justifie pas à lui seul les performances d’IQ, elle l’explique grandement.

Prenons la requête type d’un utilisateur décisionnel : SUM(CA) GROUP BY MAGASIN. Un moteur traditionnel va commencer par charger toutes les colonnes de la table de Faits puis celles de la Dimension Magasin, ensuite il va extraire le CA, (moins de 5% de la quantité totale chargée) et enfin il va pouvoir commencer son calcul. De son côté, Sybase IQ récupère uniquement les 2 colonnes nécessaires pour commencer son calcul : CA et MAGASIN. L’écart de performance entre IQ et les autres est donc proportionnel au ratio entre le poids de l’information utile et le poids total de la ligne. Dans notre exemple, si la ligne de Faits pèse 500 Octets et que les colonnes CA et Magasin n’en occupent que 20, IQ chargera 25 fois moins de données qu’un moteur traditionnel. On peut donc s’attendre à quelque chose de 20 fois plus rapide avec IQ.

Il est vrai qu’avec cette architecture verticale, un SELECT * dans un SGBD traditionnel sera plus rapide que sur IQ qui devra lier toutes les colonnes entre elles. Mais en 15 ans de décisionnel, je n’ai pas le souvenir d’avoir lancé un jour un SELECT *.

Le partitionnement vertical n’est pas le seul élément qui explique ces performances. Sybase IQ compresse automatiquement toutes les données afin d’optimiser encore le nombre d’I/O (Entrée/Sortie) nécessaires au traitement : Moins je remplis mon cache pour ma requête plus je suis rapide en sortie même si je perds du temps à décompresser les données.

Autre gain, la compression automatique entraîne une taille de stockage inférieure aux SGBD traditionnels. Même si le prix du GigaOctet a bien baissé ces dernières années, il reste qu’au moment de la sauvegarde, il est plus simple de sauvegarder 100Go plutôt que 300.

Au final, ce moteur permet d’attaquer des tables de 500 Millions de lignes avec des temps de réponse inférieurs à la minute. Il est vrai que les SGBD traditionnels nous amènent rarement à laisser des tables de cette volumétrie à disposition des utilisateurs dans le décisionnel. On effectue généralement un partitionnement horizontal et/ou vertical pour en limiter la taille, on sacrifie parfois des informations dans l’historique pour obtenir des performances acceptables.

Notre précédente note mettait en avant le produit Qlikview qui propose une alternative intéressante aux suites décisionnelles du marché. Sybase IQ avec un ratio prix/performance très avantageux comparé aux SGBD traditionnels est une réelle alternative aux poids lourds du marché.

A la relecture, force est de reconnaître que cette note est un peu partisane. Mais après mûre réflexion, j’ai enfin trouvé un défaut à ce produit : sa simplicité et ses performances privent le consultant du plaisir de trouver des solutions de contournement aux contraintes techniques, ce qui est un des challenges de notre métier.