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 :

Package MSIS réussi mais la Table affiche des colonnes NULL


Sujet :

SSIS

  1. #1
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Package MSIS réussi mais la Table affiche des colonnes NULL
    Sur Microsoft Visual Studio 2010 _ IS avec SQL Server 2012

    Table Stock créée sous SQL server avec une clef primaire paramétrée en IDENTITY > PROUCTKEYSTK. Dans un précédent package, alimentation de 4 colonnes dont la clef primaire de la table source Produit qui est la clef étrangère de la table Facture > PRODUCTKEY ==> 2517 lignes chargées avec succès

    Package actuel :
    Flux de control : Flux pour Transformation du Cache sur la table de référence Stock + Script avec Group By et Order By sur Productkey, clef étrangère, de la table Facture + Flux pour la transformation des données.

    Flux des données : Conversion sur la clef étrangère pour être corrélée avec ma destination Stock + Colonne dérivée pour un champ calculé + Recherche sur la clef étrangère PRODUCTKEY pour alimenter 3 colonnes (plus que le champ calculé, voir plus bas j'en ai supprimé 2).

    Le débogage est validé, message de sortie «*Destination ADO NET*» a écrit 6441864*lignes.

    Les colonnes cibles dans SQL server affichent pourtant NULL

    1/Pourquoi les colonnes sont-elles NULL alors qu'il y a absence de message d'erreur ?
    2/J'aurai voulu avoir une ligne par PRODUCTKEY, soit 2517 lignes, et en fait toutes les lignes de la table Facture alimentent PRODUCTKEYSTK, soit 6441864 lignes. J'ai pensé que c'était à cause de la dimension temps et magasin que j'ai supprimé de ma table mais pas de changement.

    Désolée la description est un peu longue mais le package est dense. Merci pour votre aide.

  2. #2
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut
    Hello,

    Je pense que tu dois avoir un problème sur la Recherche de ta clef étrangère PRODUCTKEY.
    La recherche (lookup) fonctionne comme une jointure. C'est à toi de bien paramétrer le premier écran pour expliquer comment tu veux traiter les lignes qui ne correspondent pas entres elles.
    Par défaut, tu as "ignorer l'erreur" ce qui te ramènera des colonnes à NULL. Si tu souhaites les traiter ou non, je te conseil de choisir "rediriger les lignes non correspondantes".

    En espérant que cela réglera ton problème.

    Elros
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

  3. #3
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Elros Voir le message
    je te conseil de choisir "rediriger les lignes non correspondantes".
    Exactement, je conseille la même chose. Gère ton flux d'erreur, et met toutes les lignes en erreur dans un fichier ou une table.
    reviens vers nous au besoin avec plus de détail

    cordialement,
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

  4. #4
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Zéro amélioration
    Hello Elros et Bernardos,
    Merci Elros pour ton tuto sur lookup mais pas facile d'accès pour une novice comme moi ;-)
    Conversion sur productkey alias sortie copy de productkey,
    Colonne dérivée pour calculer le productoutup.
    Recherche : rediriger ...sans entrées correspondantes, connexion du cache, index du cache relié à l alias de sortie productkey et coche sur productoutput pour la colonne de recherche. Sortie d'erreur "ignorer l'échec ".
    Destination ado.net : Mappage sur alias productkey et productoutput.
    Sortie derreur vers fichier excel.
    Au debogage tout est validé mais toujours résultat Null dans ma colonne et seulement intitulé de colonne sur Excel.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Agrégation ?
    Le productoutput est calculé sur chaque ligne de facturation et non pas par productkey. Faut-il une Agrégation en "sum" pour grouper par productkey ? En tout cas ca ne marche pas.

  6. #6
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    faut pas mettre ignorer l'erreur. il faut mettre "réacheminer la ligne"
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

  7. #7
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Reacheminement pas plus
    J'ai modifié la sortie d'erreur productoutput pour réacheminer la ligne. Debogage validé mais 0 lignes pour sortie de recherche et sortie d'erreur.

  8. #8
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    Salut,
    donne nous le script de création de tes 2 tables.
    Fais nous une copie d'écran de ton flux de control et de ton flux de données.
    Ajoute une copie d'écran de ton composant data source et de ton lookup.
    Cordialement,

    Loïc
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

  9. #9
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Description Package
    Comme demandé ci-joint copie d'écran
    Flux de contrôle Nom : R10_Flux de contrôle.jpg
Affichages : 297
Taille : 31,5 Ko
    Flux de données Nom : R10_Flux de données.jpg
Affichages : 284
Taille : 35,4 Ko
    Propriétés source de données Nom : R10_Source Factonlinesales.jpg
Affichages : 271
Taille : 46,3 Ko
    Propriétés rechercheNom : R10_Factonlinesales.jpg
Affichages : 268
Taille : 46,5 Ko
    Images attachées Images attachées   

  10. #10
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    salut,
    essaye d'être plus complet et précis.
    1. que veux tu faire?
    2. utilises les balises code pour mettre les requetes de création des 2 tables concernées.
    3. j'ai besoin d'avoir une copie d'écran de ta recherche (lookup). ce qui m'intéresse étant l'écran où on voit sur quels champs tu fais ton lookup.
    4. j'ai besoin aussi de voir ce que tu fais comme colonne dérivée(la formule).


    en fait, j'ai peur de comprendre.
    je pense que tu travailles à l'envers.
    si je comprend bien tu veux remplir ta dimension à partir de ta table de fait???
    hors contexte, je ne peux pas être catégorique mais normalement c'est plutôt l'inverse
    1. Tu remplis ta dimension (en incluant une clé business et une clé de substitution ("surrogate key")
    2. Lorsque tu remplis ta table de fait, tu fait un lookup sur la clé business du produit
    3. Tu récupères alors la clé de subsitution du produit que tu inclus dasn ton flux.


    cordialement,
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

  11. #11
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Oui pour la table de fait
    Bonjour Bernardos,
    j'ai besoin d'avoir une copie d'écran de ta recherche (lookup)
    j'ai besoin aussi de voir ce que tu fais comme colonne dérivée(la formule)
    je pense que tu travailles à l'envers.
    si je comprend bien tu veux remplir ta dimension à partir de ta table de fait???
    Oui tu as bien compris j'ai besoin de ma table de faits pour compléter les sorties de ma table stock. Du coups je suppose que la description du lookup et recherche ne sont plus nécessaires ?
    Ok je vais regarder comment ça marche clé business et surrogate key.
    Merci

  12. #12
    Membre à l'essai
    Femme Profil pro
    Formatrice
    Inscrit en
    Avril 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Formatrice
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2016
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Resolution par script SQL
    L'alimentation de la table se fait enfin de compte uniquement par script SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT        factonlinesales.PRODUCTKEY, dim_product.PRODUCTNAME, dim_product.MANUFACTURER, dim_product.STOCKTYPENAME, SUM(factonlinesales.SALESQUANTITY - factonlinesales.RETURNQUANTITY) 
                             AS INSTOCK, factonlinesales.STOREKEY
    FROM            factonlinesales INNER JOIN
                             dim_time ON factonlinesales.TIME_ID = dim_time.TIME_ID INNER JOIN
                             dim_product ON factonlinesales.PRODUCTKEY = dim_product.PRODUCTKEY
    WHERE        (dim_time.YEAR = 2008) AND (dim_time.MONTHLABEL = 'Janvier')
    GROUP BY factonlinesales.PRODUCTKEY, dim_product.PRODUCTNAME, dim_product.MANUFACTURER, dim_product.STOCKTYPENAME, factonlinesales.STOREKEY
    ORDER BY factonlinesales.PRODUCTKEY, factonlinesales.STOREKEY
    Possibilité d'utiliser le générateur SQL quand on est novice en SQL (il faut quand même savoir quoi mettre dans les cases )
    J'ai également utilisé la conversion de données pour une différenciation de type sur un champ entre deux tables et création d'une colonne dérivée pour calculer le champ " INSTOCK ".
    Et voilà

  13. #13
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    oulaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. ne me dit pas que tu as des description et des noms dans tes table de fait?
    un petit court de modélisation dimensionnelle te ferait le plus grand bien...
    Cordialement,
    Loïc BERNARD
    Consultant Senior dba sql server & Microsoft Business Intelligence



    Il n'y a jamais de problèmes, il n'y a que des solutions!

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

Discussions similaires

  1. [Requête] Union de 2 tables avec des colonnes différentes
    Par ceuce dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2007, 17h04
  2. [Reporting Services 2005] Afficher des colonnes dynamiquement
    Par n.roussaly dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/03/2007, 10h10
  3. Réponses: 46
    Dernier message: 04/01/2007, 19h02
  4. afficher des colonnes
    Par new_wave dans le forum Access
    Réponses: 1
    Dernier message: 08/08/2006, 12h07
  5. fonction affichant des colonnes
    Par ohini dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/06/2005, 19h25

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