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

MS SQL Server Discussion :

Choix de solution technique


Sujet :

MS SQL Server

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut Choix de solution technique
    Bonjour,

    Je me retrouve face à une situation, je pense, basique mais j'ai du mal à faire un choix technique vu que je n'ai pas une grande expérience dans ce domaine.
    Je pense que vous avez été confronté à cette situation de multiples fois, je fais donc appel à vos précieux conseils.

    Je récupère des fichiers de données qui correspondent à des rapports dans un format que je peux choisir (à priori XML) et je dois tout bêtement les intégrer quotidiennement en base SQL-Server.
    Les fichiers doivent être "nettoyés", c'est à dire qu'on ne prend pas toutes les données brut de brut pour un import telquel, je dois selectionner mes données (c'est pour ca que je pense me diriger vers un format XML)
    Les fichiers peuvent faire plusieurs Mo, et je peux avoir des centaines, voire des milliers de lignes à insérer en base et pourquoi pas des centaines de milliers (je n'ai pas encore d'info exacte sur le volume, j'en saurai plus la semaine prochaine).


    La question est de savoir quelle est la méthode la plus performante/adaptée à cette utilisation.

    Après avoir prospecté un peu, j'ai retenu deux choses:

    • SSIS
      Je n'ai pas creusé spécialement le produit, mais j'ai bien peur de monter une usine à gaz pour un traitement qui semble assez simple et qui n'évoluera pas (pas de BI, reporting etc).

    • Faire un service Windows en .Net. L'idée serait d'utiliser les bibliothèque XML et ADO.net pour extraire les données des fichiers XML et les insérer en base. Je connais la techno donc je pencherais plutot pour ca.

      Mais quid des performances ?



    Voilà, pouvez vous me dire ce qui vous semble le plus adapté, si je suis a coté de la plaque ou si vous avez d'autres solutions ?


    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    XML est intéressant pour de l'EDI car il encapsule la définition des données avec les données. Or dans vtre cas vous connaissez a priori la structure des données...
    De plus XML est plus consommateur de ressources que du simple fichier plat : plus gros volume, complexité de traitement, etc...

    Donc inutile et dangereux si vous voulez des performances.

    En revanche avec des fichiers plats (export ASCI par exemple), vous pouvez utiliser indifférament SSIS ou du code Transact SQL. Par exemple BULK INSERT en transact SQL afin d'insérer vos lignes dans des tables temporaires, puis de nettoyer les données par une procédure avant de les réinjecter dans la base cible. C'est ce qui se fera de plus simple, plus rapide et plus maintenable !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    merci pour la réponse rapide.

    Et bien non justement, je suis pas certain de connaitre, a priori, la structure exacte de mes fichiers.
    Les fichiers sont générés à partir de rapport. Autant, les champs à importer seront statiques et connu à l'avance, autant la structure du fichier peut évoluer suivant la customisation initiale du rapport ( Ajout d'une rupture, de sous totaux etc...)

    C'est pour cela que je pense me tourner vers du XML.

    Je n'aurai pas un fichier du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    field1;field2;field3
    field1;field2;field3
    field1;field2;field3
    field1;field2;field3
    field1;field2;field3

    Mais je me demande si le mieux est de passer par SSIS que je ne connais pas du tout ou de développer un petit service windows qui formaterait mon fichier xml via les biblio adaptée et qui ferait mon import en base.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Dans VS vous avec des classes pour parser votre XML. D'un autre co^té directement dans SQL Server vous pouvez faire des requêtes SQL / XPATH / XQUERY.

    Lisez l'article de Rudi Bruchez dans SQL Server Magazine sur ce sujet.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    ah, ce serait effectivement la meilleure solution si à partir de SQL-Server je pouvais directement interroger mon fichier XML, via des requête X-Path et compagnie.

    Je vais me renseigner sur cet article, merci beaucoup.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Par défaut
    Pour information,

    J'utilise des formats XML en entrée d'une procédure stockée. Etant en version MSSQL2000, je passe par la fonction OPENXML. J'effectue l'ensemble en dynamique à partir d'une description de mon flux dans une table.

    La procédure est un peu complexe mais je suis arrivé à faire quelques choses d'assez générique. Mais il faut compter biensur sur le dégré de complexité de ton flux et ce que tu comptes en faire.

    Si tu es en version 2005, je te conseillerai de lire l'aide concernant le type XML, ça pourrait te donner des pistes de réflexion.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    D'autant qu'en 2005 les colonnes de type XML sont indexables...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [Choix] Quelle solution de CMS en PHP choisir pour la simplicité ?
    Par Tofalu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 49
    Dernier message: 29/08/2011, 21h58
  2. [XSLT][JSP] solution technique pour cas typique
    Par Alix_10 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/09/2006, 13h09
  3. Choix de solutions
    Par manu00 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 12/01/2006, 16h13
  4. [Déploiement] Solution technique VS diagramme de déploiement
    Par Original Prankster dans le forum Autres Diagrammes
    Réponses: 2
    Dernier message: 24/10/2005, 15h01

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