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

SSIS Discussion :

[SSIS][2K5]Comment importer un fichier plat mal formaté dans une table


Sujet :

SSIS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut [SSIS][2K5]Comment importer un fichier plat mal formaté dans une table
    Bonjour à tous,

    Je débute avec SSIS mais je connais un peu les lot DTS sous SQL server 2000. Je précise que j'ai lu et réalisé tout les tutoriels SSIS disponible sur le site de Developpez.com

    J'ai des fichiers textes (.txt) qui contiennent des données et je voudrais les importer dans une table sans avoir à créer un programme de "dépiotage" des informations.

    Cela semble semble simple mais voici comment sont codés les informations de mon fichier. Voici un exemple de fichier:
    Ligne 1
    API.Commandes.AcquittementDefaut=DeviceGroup=Booleens; Server=OPC; InternalName=API.Commandes.AcquittementDefaut; InternalType=BOOL; Mnemonic=M320; Comment="Acquittement défauts";
    Ligne2
    AnalyseurCO.DebitMini.TAlarme=DeviceGroup=Entiers; Mnemonic=MW32;Server=OPC; InternalName=AnalyseurCO.DebitMini.TAlarme; InternalType=R8; Comment="Temps avant alarme débit mini CO"; UnitText="min"; Format="0.00000"; Mini=10; Maxi=180;

    La compréhension humaine des données me semble assez simple. Ex pour la ligne n°1:
    API.Commandes.AcquittementDefaut = Nom de la variable (clé de la table)
    Booleens = valeur de la propriété DeviceGroup (1 colonne de ma table)
    OPC = valeur de la propriété Server (1 colonne de ma table)
    Etc...

    Le premier problème est que le séparateur de colonne change. = pour la première valeur puis ;
    Le second problème est que l'ordre d'apparitions des propriétés est différent suivant les lignes
    Le troisième problème est que toutes les propriétés ne sont pas présentent sur chaque ligne.

    Cerise sur le gâteau, mon fichier contient des lignes en commentaires. Elles commencent par //

    Je pense que je ne peux pas m'en sortir simplement avec une source fichier plat. Mon but est d'éviter de créer un script en VB.Net (car je ne connais pas et dans ce cas il est plus facile pour moi de créer un petit programme Delphi) mais plutôt d'utiliser les objets de transformations fournis dans SSIS.

    Actuellement je suis en train d'étudier le composant extraction de terme.

    Merci d'avance

    PS : Je dispose d'une version 2008 mais pas encore installée de SQL Server. Offre-t-elle plus de fonctions dans SSIS. Les captures d'écrans que j'ai pu voir se ressemblent étrangement.

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Mouais vues les contraintes tu vas finir par coder un truc (en VB ou C# mais Pascal semble avoir tes préférences). Dans ton cas je ferais un Script Source bien sûr mais dans tous les cas c'est du code.
    Après tu peux jouer avec le TermExtraction... ,mais je te souhaite bon courage.

    PS: Pour 2008 les améliorations fonctionnelles sont faibles (Audit, Cache principalement), il s'agit surtout d'une meilleure gestion du multithreading des pipelines de DataFlows.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut
    Merci pour ta réponse FrancoisJehl,

    J'ai déjà commencé a tester un petit script VB.Net dans un composant de script.

    Par ailleurs, il me semble que je suis obligé de traiter mon problème en plusieurs étapes.
    1. Je supprime les lignes vides et les lignes de commentaires
    2. Je transforme mon fichier en 2 colonnes. 1ère colonne les noms de vars, 2ème colonne une chaine de tout le reste.
    3. Je décode la deuxième colonne pour redistribuer les résultats des valeurs dans des colonnes résultats d'un composant de script
    4. je stocke tout cela dans ma table.

    Pour les points 1 et 3, je crois qu'il faut que j'utilise les fonctions de manipulations de chaîne dans un script. j'ai un peu de mal, mais je persiste.
    Dans tous les cas, c'est bien de la programmation.
    Une question: j'ai cru comprendre que l'on pouvait faire soit du VB.Net soit du C#.Net dans les scripts, comment fait-on pour passer d'un langage à l'autre. Quitte à découvrir un langage je voudrais plutôt tester C#.

    J'ai essayé le composant terme extraction, mais vu qu'il travaille en colonne cela ne me convient pas. Moi je veux extraire les termes d'une ligne.

    Bon si la version 2008 ne m'apporte rien sur SSIS de transcendant, je ne vais pas perdre mon temps à l'essayer.

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Lorsque tu crées le script tu as un choix "langage" entre Visual C# et VB.NET. Attention ce n'est plus modifiable une fois le script édité!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut
    Francois,

    Je n'arrive pas à voir ou l'on choisit le langage du script.
    Dans le composant on ne parle que de VB. Net (cf. capture jointe) et dans l'aide aussi.

    Extrait de l'aide sur le composant de script:
    The Script component extends the data flow capabilities of Microsoft SQL Server 2005 Integration Services (SSIS) packages with custom code written in Microsoft Visual Basic .NET that is compiled and executed at package run time...

    Peux-tu me dire précisément comment configurer SQL Server pour choisir le C# SVP ?

    Cordialement
    Images attachées Images attachées  

  6. #6
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Je viens de voir l entête, shame on me. Tu es en 2005 donc ce sera vb. C# arrive en 2008.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 56
    Points
    56
    Par défaut
    Arf ! Je me disais bien aussi.

    Merci à toi François pour tes réponses, j'ai les informations qu'il me faut.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2013, 17h32
  2. Réponses: 5
    Dernier message: 17/04/2011, 10h52
  3. [SSIS] [2K5] formatage colonnes de fichier plat
    Par bridaine dans le forum SSIS
    Réponses: 0
    Dernier message: 12/11/2009, 16h18
  4. [CSV] Importer un fichier CSV ou OV2 dans une page PHP
    Par gpsevasion dans le forum Langage
    Réponses: 13
    Dernier message: 12/02/2009, 14h31
  5. Comment importer un fichier xml ou csv dans une table paradox ?
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/09/2007, 15h35

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