Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
HamdiGA
Contributor II
Contributor II

Problème Modèle de donnée

Bonjour , 

Je suis nouveau sur Qlik sense.
Mon problème c'est que je ne peux pas juger si mon modèle de données est fiable ou non fiable. surtout que pour le moment, dans mon modèle je n'ai que des tables de dimension (FACTS) ce qui me pose des doutes.


Parce que mon cahier des charges est un peu particulier, pour le moment ma procédure pour extraire les datas et la suivante : 
1) connection à la base DD
2) Chargement des tables que j'ai besoin pour le même (sujet exemple : Étude sur KPI des Robot  type VM, Ou type Lev )  les deux robots sont indépendants dans l'étude
3) transformation des tableaux pour extraire les informations dont j'ai besoin exemple (nombre d'arrêts du robot,  ...) => Ce sont mes mesures (Facts)
3) Jointure entre les différentes mesures pour construire la table final fact.
4) Suppression des tables de l'étape 2 et je ne laisse uniquement pas les tables Facts.
Exemple (la plus petite étude, sur les chargeurs) : 
/********************************************************************************************/
 

[VM]:
LOAD
[ID_VM],
[ID_MISSION] AS [VM.ID_MISSION],
[ID_MISSION_VM] AS [VM.ID_MISSION_VM],
[NUM_SEQUENCE],
[ETAT] AS [VM.ETAT],
[TYPE_ALLEE],
[TYPE_POSTE],
[ID_POSTE],
[ZONE],
[NIVEAU] AS [VM.NIVEAU],
[ALLEE],
[COLONNE],
[INDICE],
[ID_PALETTE] AS [VM.ID_PALETTE],
[BATTERIE],
[LIEU_BATT],
[TEMPS_BATT];
SELECT "ID_VM",
"ID_MISSION",
"ID_MISSION_VM",
"NUM_SEQUENCE",
"ETAT",
"TYPE_ALLEE",
"TYPE_POSTE",
"ID_POSTE",
"ZONE",
"NIVEAU",
"ALLEE",
"COLONNE",
"INDICE",
"ID_PALETTE",
"BATTERIE",
"LIEU_BATT",
"TEMPS_BATT"
FROM "$(dbTableOwner)"."VM";

[HISTO_ETAT_VM_SECU]:
LOAD
[ID_VM] ,
[ANCIEN_STATUT] ,
[NOUVEAU_STATUT] ,
[EN_AUTO] ,
[COM_MITSU] ,
[DMD_VALIDE],
[VALIDE],
[FIGE] ,
[DEBUT_CHGT] ,
[DUREE],
[DATE_MODIF];
SELECT "ID_VM",
"ANCIEN_STATUT",
"NOUVEAU_STATUT",
"EN_AUTO",
"COM_MITSU",
"DMD_VALIDE",
"VALIDE",
"FIGE",
"DEBUT_CHGT",
"DUREE",
"DATE_MODIF"
FROM "$(dbTableOwner)"."HISTO_ETAT_VM_SECU";


/******************** FACTS *********************************************************************************************************************************/
KPI_VM:
sql select vm.id_vm, h.ancien_statut as NB_STOPS_PER_VM,h.date_modif
from histo_etat_vm_secu h
inner join vm on h.id_vm = vm.id_vm
where h.nouveau_statut in (8,0) and h.ancien_statut not in (0,8);
Join
//temps_arret_vm:
sql select id_vm,duree as downtime_vm,h.date_modif
from histo_etat_vm_secu h
where nouveau_statut in (0,8) and ancien_statut in (2,0,8);

//temps_total_arrets_vm: Meme requete +group by

join
//nb_figeage_VM:
sql select id_vm, ancien_statut as NB_FIGE_PER_VM,h.date_modif
from histo_etat_vm_secu h
where nouveau_statut in (4) and ancien_statut not in (0,8);

join
//temps_figeage_VM:
sql select id_vm,duree as time_fige_vm,h.date_modif
from histo_etat_vm_secu h
where nouveau_statut in (2,4) and ancien_statut in (2,4);

join
//DISPO_par_vm:
sql select id_vm, sum(duree) as downtime_dispo_vm,
case
when (24*60*60*30-sum(round(duree)))<0
then 0
else round(((24*60*60*30-sum(round(duree)))/(24*60*60*30))*100,2)
end as dispo_vm
from histo_etat_vm_secu
where (((nouveau_statut in (0,8) and ancien_statut in (2,0,8))
or (nouveau_statut in (2,4) and ancien_statut in (2,4)))
and trunc(date_modif)>=trunc(sysdate)-30)
group by id_vm
order by id_vm;

Drop table HISTO_ETAT_VM_SECU;
Drop table VM;

 

 

 
/********************************************************************************************/
Les dimensions sont généralement "ID_robotVM" et elles sont aussi dans les tables "Facts".
Cette procédure sera répétée pour le reste des thèmes d'études "Batteries des robots, Chargeurs, ..." chaque étude sur une feuille (feuille 1 : robot_VM, feuille 2: batteries)
 
Il n'y a pas vraiment de lien entre ses différents objets dans l'étude, pour cela je me retrouve avec plusieurs tables facts indépendantes, dans la même application.  et chaque application sera attribuée à un client. 

Pour cela je veux savoir si ma méthode est juste, ou bien c'est mieux de faire chaque étude dans une application. sans une validation de mon modèle de données je ne peux pas garantir la fiabilité de l'étude.

Merci beaucoup, 
 
 
1 Solution

Accepted Solutions
Taoufiq_Zarra

@HamdiGA,

normalement c'est bon sauf la partie dont je t'ai mentionné ,par exemple Date modif ...

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

1 Reply
Taoufiq_Zarra

@HamdiGA,

normalement c'est bon sauf la partie dont je t'ai mentionné ,par exemple Date modif ...

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉