IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

Requête d'analyse via LINQ


Sujet :

Linq

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Requête d'analyse via LINQ
    Je viens de mettre en ligne AdaptiveLINQ (www.adaptivelinq.com).
    Ce composant permet de construire des requêtes d'analyse (requête de la forme GroupBy) via une notion de cube et l'utilisation de la méthode .QueryByCube().
    Cette méthode s'applique à toute collection de type IQueryable (ex : un jeu d'entités fourni par Entity Framework).
    Cela permet de construire très facilement un "moteur d'analyse" (à l'image de ce que permet SQL Server Analysis Services et plus largement les technologies OLAP) requêtable via LINQ.
    En combinant cela avec WCF Data Services, ce moteur devient requêtable via le protocole OData.
    Essayez le et donnez moi votre avis !

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ca a l'air sympa Par contre, il y a quelques points qui me chiffonnent, et notamment l'analogie faite avec les cubes OLAP... N'hésite pas à me corriger si je suis à côté de la plaque.

    Lorsqu'on crée un cube OLAP, pour le requêter, on utilise du MDX, qui permet de créer un jeu de tuples reflétant la structure dimensionnelle des données. Quel est donc l'intérêt d'utiliser du SQL relationnel "classique" ?

    Autre point, d'après ce que j'ai pu comprendre en parcourant ton site, il faut se baser sur la base de données multidimensionnelle, et non sur le cube OLAP. On peut donc bénéficier de la modélisation dénormalisée de la base de données, mais pas des avantages offerts par le cube OLAP.

    Autre point, quid des performances sur de gros volumes de données ? Quid des aggrégations complexes ? Quid des KPIs et autre calculs ? Par hasard, aurais-tu des benchmarks ?

    En tout cas, ton produit a l'air complet (pas testé), mais je pense qu'il se destine plus à une niche. Non ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci pour ce retour !
    AdaptiveLINQ s'adresse à une application qui ne dispose pas d'une base de données OLAP.
    C'est par exemple le cas d'une appli web qui utilise SQLServer Web Edition (cette édition ne dispose pas des fonctionnalités OLAP / MDX).
    C'est certainement une niche.
    En fait, avec AdaptiveLINQ, le cube est défini sous forme d'expressions .Net (C# pour le moment).
    L'analogie avec OLAP se limite au "concept" (= dimensions et mesures) de cube.
    Les expressions de dimensions et mesures sont utilisées (via la "compilation à la volée" qu'effectue AdaptiveLINQ) dans la requête LINQ qui s'effectue directement sur le modèle relationnel (la forme OLTP des données). C'est ce que j'essaye d'expliquer ici : www.adaptivelinq.com/Learn/HowDoesItWork.
    L'opérateur .QueryByCube() va en fait se "compiler" en un .GroupBy(). L'idée est en gros d'apporter de la modularité à l'opérateur GroupBy.
    Globalement, je dirai que l'on peut vouloir utiliser .QueryByCube() partout ou jusque là on utilise .GroupBy().
    Les performances sont directement liées aux performances de l'opérateur GroupBy (AdaptiveLINQ ne manipule pas les données mais se contente de transformer une expression LINQ en une autre expression LINQ) et donc à l'implémentation du GroupBy par le fournisseur de données.
    Par exemple, Entity Framework implemente un GroupBy LINQ en un "GROUP BY" SQL. Les performances sont donc liées à ce "GROUP BY" SQL. Et les performances de celui-ci dépendent beaucoup des index définis dans la base.
    Je pense qu'il est temps que je construise un vrai projet d'exemple!

Discussions similaires

  1. [AC-2003] Requête d'analyse croisée : tri via une table de lien sur le champ "En-tête de colonne"
    Par michail_arkov dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/06/2013, 10h01
  2. Réponses: 7
    Dernier message: 30/08/2006, 15h38
  3. [Excel] Exportation d'une requête vers Excel via PHP
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 17/05/2006, 16h46
  4. Etat issu d'une requête d'analyse croisée
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 18/03/2006, 16h19
  5. Réponses: 1
    Dernier message: 22/12/2005, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo