Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je suis nouvelle utilisatrice de qlikview.Je réalise en ce moment ma première application.
J'ai fait une modélisation en étoile avec une table de dimensions et des tables de faits et j'ai souhaité créer une table de lien en utilisant concatenate.Il se trouve que j'ai des valeurs qui sont remplacées par des "-" ce qui fausse le lien entre mes différentes fenêtres.
Quelqu'un d'entre vous aurait-il la solution à mon problème svp?
Merci d'avance.
Bonjour, je ne comprend pas bien ce que vous voulez faire.
Cependant, "Concatenate" permet d'unir deux tables même si ces deux tables n'ont aucun champ en commun.
Et, c'est lorsqu' un champ n'est pas commun aux deux tables qu'on apparition des "-"
Essaie d'être plus explicite, en postant ton schéma de données avec des commentaires ou bien en postant ton application.
Cordialement,
Bonjour, je ne comprend pas bien ce que vous voulez faire.
Cependant, "Concatenate" permet d'unir deux tables même si ces deux tables n'ont aucun champ en commun.
Et, c'est lorsqu' un champ n'est pas commun aux deux tables qu'on apparition des "-"
Essaie d'être plus explicite, en postant ton schéma de données avec des commentaires ou bien en postant ton application.
Cordialement,
Bonjour Almamy, merci pour ta disponibilité.
Je vais tâcher d'être plus explicite.
Voici mon schéma de données:
J'ai créé la table LINK_Table pour faire le lien entre les tables de faits et ma table de dimension.
Pour cela j’ai concaténé les lignes provenant des différentes tables.
(j'ai copié ci-dessous le script de ma table de lien)
LINK_Table:
LOAD Distinct
VM,
KEY_VM_CPU,
Day,
Month,
Year,
Host,
KEY_Date
Resident Fact_CPU;
Concatenate (LINK_Table)
LOAD Distinct
VM,
KEY_VM_VM,
Day,
Month,
Host,
KEY_Date
Resident Fact_VM;
Concatenate (LINK_Table)
LOAD Distinct
VM,
KEY_VM_Disk,
Host,
//Day,
//Month,
//Year,
KEY_Date
Resident Fact_Disk;
Concatenate (LINK_Table)
LOAD Distinct
KEY_Host,
KEY_Date,
Host,
Day,
Month,
Year
Resident Fact_Host;
Concatenate (LINK_Table)
LOAD Distinct
KEY_VM,
KEY_Host,
Host
Resident Dim_Machine;
DROP Fields VM,KEY_Date,Host FROM Fact_CPU;
DROP Fields VM,KEY_Date,Host,OS FROM Fact_VM;
DROP Fields VM,KEY_Date,Host FROM Fact_Disk;
DROP Fields Host,KEY_Date FROM Fact_Host;
DROP Field KEY_Host,Host,VM FROM Dim_Machine;
DROP Fields Day,Month,Year FROM Fact_CPU;
DROP Fields Day,Month,Year FROM Fact_VM;
DROP Fields Day,Month,Year FROM Fact_Host;
Pour obtenir aperçu du contenu de la table concaténée, j’ai créé une zone table et je me rends compte que certaines lignes ne sont pas complètes et contiennent un « - » à la place.
J'espère que j'ai été plus claire dans mes explications.
Cordialement.
Bonjour,
Voici comment je comprends ton problème.
On a 4 tables de faits (Fact _VM, Fact_CPU, Fact_Host et Fact_Disk)
et deux tables de dimensions ( Calendrier et Dim_machine).
Je remarque qu'il ya deux clés (KEY_VM et KEY_Date).
Pour créer ma table pivot (Table qui va servir de lien entre les tables de dimension et de faits), je ne vais utiliser
que les clés (Date et KEY_VM ) de mes tables de faits uniquement (Parce je vois que tu as ajouté Dim_Machime dans ta table link : l'erreur). Voila comment je procède:
LINK_Table:
Load distinct
KEY_VM_VM as KEY_VM,
KEY_Date
Resident Fact_VM;
Concatenate
Load distinct
KEY_VM_CPU as KEY_VM
KEY_Date
Resident Fact_CPU;
concatenate
Load distinct
KEY_VM_Disk as KEY_VM,
KEY_Date
Resident Fact_Disk;
Concatenate
Load distinct
KEY_VM_host as KEY_VM,
KEY_Date
Resident Fact_host;
C'est tout à fait normal que tu supprimes tous les champs relatifs à la date dans toutes les tables de faits.
Concernant le champ VM s'il n'existe pas dans la table Dim_Machine tu peux l'ajouter dans chaque table qui constituent la table Link et ensuite supprimer ce champ dans les différentes tables de faits.
J'attends ton feedback
Cordialement,
Merci beaucoup Almamy pour ta réponse.
Seulement quand je prends ton exemple, mes tables de faits ne sont pas reliées avec ma table de dimension.
J'ai donc rajouté" VM as KEY_VM "dans chaque table de fait comme suit:
LINK_Table:
Load distinct
KEY_VM_VM,
VM as KEY_VM,
KEY_Date,
Resident Fact_VM;
Concatenate
Load distinct
KEY_VM_CPU,
VM as KEY_VM,
KEY_Date,
Resident Fact_CPU;
Concatenate
Load distinct
KEY_VM_Disk,
VM as KEY_VM,
KEY_Date,
Resident Fact_Disk;
Concatenate
Load distinct
KEY_Host,
KEY_Date,
Resident Fact_Host;
Sinon j'aimerai comprendre pourquoi la table Dim_Machine ne peut pas être ajoutée dans la table de lien.
(A la base je l'avais ajoutée pour pouvoir la lier avec les tables de faits via KEY_VM surtout pour ma table Fact_Host où je n'ai pas de champ VM)
Merci d'avance pour ton retour.
Cordialement,
Bonjour,
Je me rends compte qu'on retrouve le champ Host dans toutes les tables de Fait. Je pense qu'il faut utiliser
ce champ comme clé plutôt que VM.