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]Import de données


Sujet :

SSIS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut [SSIS][2k5]Import de données
    Bonjour,

    En tant que novice je souhaiterai avoir votre avis sur mon orientation pour un import de données sur plusieurs des tables d'une base.
    La situation (on ne peut plus classique...) :
    un erp m'envoie quotidiennement par ftp des fichiers a plat avec leur description.
    Mon idée première a été de créer un job executant un dtsx.
    Ce package dtsx fais tout simplement un Delete sur les tables puis un Bulk Insert.
    Ma question est la suivante :
    tout d'abord est ce la manière la plus appropriée pour faire de l'import de données ?
    puis si la méthode convient bien, y a t il un moyen de pouvoir sortir une sorte de log de ce dtsx me permettant d'avoir la quantité de lignes supprimées et insérées ?

    Par avance merci

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Citation Envoyé par popolianowsky Voir le message
    Ce package dtsx fais tout simplement un Delete sur les tables puis un Bulk Insert.
    Au lieu de faire un delete, je te suggère plutôt un DROP Table. Une action DELETE impacte ton LOG file et tu pourrais alors avoir un problème "Transaction log file is full". En outre, DROP Table est bien plus rapide.

    Citation Envoyé par popolianowsky Voir le message
    y a t il un moyen de pouvoir sortir une sorte de log de ce dtsx me permettant d'avoir la quantité de lignes supprimées et insérées ?
    Avec Visual Studio, tu as la possibilité de générer un logging. Clique sur le menu SSIS dans la barre de menu puis choisis Logging.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 852
    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 : 21 852
    Points : 52 992
    Points
    52 992
    Billets dans le blog
    6
    Par défaut
    Si c'est du DELETE + INSERT, mieux vaut ne pas utiliser du tout SSIS et passer par une procédure stockée planifiée. Ce sera plus léger et plus rapide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM ....
    BULK INSERT ... FROM ...
    A +

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Au lieu de faire un delete, je te suggère plutôt un DROP Table. Une action DELETE impacte ton LOG file et tu pourrais alors avoir un problème "Transaction log file is full". En outre, DROP Table est bien plus rapide.
    drop Table ça m'obligerait a recréer la table derrière à moins que je m'y prenne vraiment comme un pied dans ma commande

    Si c'est du DELETE + INSERT, mieux vaut ne pas utiliser du tout SSIS et passer par une procédure stockée planifiée. Ce sera plus léger et plus rapide.


    Code :
    DELETE FROM ....
    BULK INSERT ... FROM ...A +
    Ok oui il s'agit d'un del et bulk insert.
    Je vais tester de créer une procédure stockée pour voir tout ça...
    Par contre ce que je voudrai pouvoir faire c'est par exemple un 'count' du nbre d'enregistrements avant le delete, puis un 'count' aprés l'insert et pouvoir réutiliser les valeurs des deux count en sortie pour avoir une sorte de 'log personnalisé' du résultat de la transaction. Bon c'est sur que vu mon niveau en sql je m'emporte un peu
    En tout cas merci pour vos réponses.

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Citation Envoyé par popolianowsky Voir le message
    drop Table ça m'obligerait a recréer la table
    Ouïlle !!!!! SORRY, je voulais écrire TRUNCATE table. Désolé !!!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Oui en effet ça aurait tendance à moins être bordelique que le drop...

    Par contre j'en profite pour un passer un petit Up au passage ... si vous avez une idée pour mon histoire de Count

  7. #7
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    A priori par défaut il y a déjà un journal d'erreurs en tout cas dans

    Consultez le journal des erreurs SQL Server à l'aide de SQL Server Management Studio ou de n'importe quel éditeur de texte. Par défaut, le journal des erreurs se trouve dans les fichiers Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG et ERRORLOG.n.
    Sinon il y a toujours l'onglet process dans SSIS mais je ne sais pas si ce process est enregistré quelque part quand l'exécution est automatique. Je pense que le log se fait du côté d'SQL Server Agent si l'exécution est automatisée.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Suite et fin

    Merci pour toutes les réponses/conseils sympa à vous

    en fait j'ai suivi le conseil d'SQLpro et j'ai créé tant bien que mal mes procédures plutôt que de passer par un package.
    Plus chiant à mettre en oeuvre quand on n'y connait pas grand chose en transact mais quand même plus rapide en execution et surtout trés souple.

    A la prochaine pour de nouvelles misères !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/09/2009, 10h37
  2. Réponses: 0
    Dernier message: 24/03/2009, 16h24
  3. [SSIS][2k5] transférer des données
    Par shirya dans le forum SSIS
    Réponses: 2
    Dernier message: 06/05/2008, 15h25
  4. [SSIS][2K5] modification de données
    Par oupepasa dans le forum SSIS
    Réponses: 9
    Dernier message: 10/04/2008, 16h27
  5. [SSIS][2k5] Import depuis XML vers Base de donnée
    Par Sinclair dans le forum SSIS
    Réponses: 4
    Dernier message: 24/01/2008, 11h25

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