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

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 7
    Points
    7

    Par défaut insertion table de faits

    Bonjour , j'essai de réaliser un datawerehouse à partir de données que je stocke d'abord telles quelles dans un ODS( datastore).
    Ensuite ce que je fais c'est que je compare table par table mon datawarehouse avec l'ODS si la ligne de données n'existe pas je l'insère dans le datawarehouse sinon je fais un update des données existantes.

    Ceci est valable pour les dimensions mais comme on ne mets pas à jour une table des fait on ne fait qu'y inserer normalement(c'est juste??) je voulais savoir s'il fallait vérifier avant si la données existe dejà dans la table des faits ?
    Merci

  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 : 30
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : avril 2009
    Messages : 403
    Points : 911
    Points
    911
    Billets dans le blog
    9

    Par défaut

    Hello Melnej,

    En soi, tu as le droit de mettre à jour (et supprimer) des faits d'une table de fait mais, cela dépend comment et pourquoi !
    Une des références du décisionnel Ralph Kimball a écrit beaucoup de chose à ce sujet, dont ceci : Fact Table Surrogate Keys

    La partie ODS et/ou SA est une très bonne pratique qui permet de récupérer les données sans surcharger la production.

    Ensuite, tu alimentes/mets à jour tes dimensions puis, une fois celles-ci terminées, tu peux passer à tes tables de fait.

    Pour la façon optimale de gérer l'alimentation (insertion, mise à jour, suppression), il y a plusieurs méthodes à tester en fonction de ton environnement de production.
    Voici un exemple pour gérer l'insertion et mise à jour : Comment gérer dans SSIS le mode d'alimentation Insert or Update ?

    Dans tous les cas, il faut faire attention à plusieurs éléments consommateurs comme les tris, les lookups, etc. Il faut essayer de favoriser le SQL dans ta requête de base.

    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
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    Je vous remercie pour votre réponse, je pense que je dois me documenter plus ,
    mais je me demande est ce qu'il serait mieux d'effacer les données de mon datawarehouse et inserer de nouveau comme je le fais pour l'ods ou est ce que je verifie et j’insère dans la meme table de faits dejà remplie?? qu'est ce qui serait mieux à faire ??

  4. #4
    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 : 30
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : avril 2009
    Messages : 403
    Points : 911
    Points
    911
    Billets dans le blog
    9

    Par défaut

    Sauf cas extraordinaire, on ne supprime pas vraiment un fait, on l'historise. Souvent, on a un flag (booléen, char(1), autre) qui gère le passage du fait de "en cours" à "historiser". Le principe d'historisation est d'exclure le fait pour les outils de reporting.

    Si tu fais une grosse insertion de données et que tu es certain de ce que tu insères (pas de doublons en source et cible), tu peux désactiver les index et faire une insertion massive (par bloc = bulk insert). Il faudra les réactiver et cela à un coût !
    (Edit) Voici un article sur les index qui est très intéressant : https://use-the-index-luke.com/fr/sq...-a-jour/insert

    Si tu as autant d'insertion que de mise à jour, tu as deux possibilités :
    - Une visuelle qui exploite SSIS : Comment gérer dans SSIS le mode d'alimentation Insert or Update ?
    - Une full SQL souvent plus performante que passer par plusieurs lookups : T-SQL : les joies de l’instruction MERGE, ou comment effectuer des opérations mixtes en un temps, deux mouvements

    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

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : juin 2017
    Messages : 7
    Points : 7
    Points
    7

    Par défaut

    je vous remercie pour votre réponse
    mon problème est que justement j'aurais peut surement des doublons si je ne fais qu'inserer dans ma table des faits , est ce que je dois verifier si le fait est dejà stoqué avant de l'inserer ? je ne vois pas vraiment comment procéder.
    Autant pour les dimensions c'est clair je verifie si la donnée existe je fais un update sinon j'insère , pour la table de faits je ne sais pas si je procède de la meme manière
    Merci

Discussions similaires

  1. Problème de Foreign Key pour insertion dans ma table de faits
    Par arno974 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 10/05/2010, 14h54
  2. Calcul d'une valeur pour insertion dans la table des faits
    Par moheissenger dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 24/02/2010, 02h02
  3. Insertion en masse dans table de fait
    Par niiccoo dans le forum Oracle
    Réponses: 19
    Dernier message: 29/05/2006, 11h56
  4. Réponses: 2
    Dernier message: 23/02/2006, 13h23
  5. HELP creation et insertion table....??
    Par aqwel18 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/12/2004, 16h50

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