Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
ab92
Creator II
Creator II

QVD Normalisé + DROP + NOCONCATENATE

Bonjour à tous,

Je souhaite créer des QVD dis "Normalisé" ce que j'entends par la :

- Créer un QVD à partir d'une base qui rassemble des données de plusieurs localisation différente au sein de la même BDD

Je prends un exemple car je pense que celui ci vous permettra de mieux comprendre la problématique :

J'ai une base Oracle sur un logiciel x, celui ci rassemble plusieurs schéma qui rassemble une et unique table

//enfin pas sur de cette information pour le moment car je n'ai pas moyen de la vérifié.

Ce que j'aimerai savoir c'est comment rassembler en un seul QVD des informations se trouvant dans des localisations différentes dans ma BDD Oracle.

C'est à dire ex : schemaC2060.AGD_DEMANDE_PLANIF table  AGD_DEMANDE_PLANIF

                          schemac2060.IDE_Adresse table schemac2060.IDE_Adresse

J'ai pu voir dans certaine application la réalisation d'un left join dans le script.

1/ Ce que j'aimerai obtenir c'est une explication claire sur l'utilisation et la manipulation de cette action, un avis également sur votre opinion s'il existe un autre moyen ?

Par ailleurs, il me vient deux questions complémentaire :

  • 2/ j'ai bien compris tout ce qui par rapport au join | left join | right join | concatenate mais le non concatenate me pertube ?
  • 3/ Enfin le drop table j'ai beau lire et relire des choses sur ce sujet j'ai vraiment beaucoup de mal à l'intégrer ?

Je demande vraiment des explications claire courte et précise svp ?

Dans l'attente de vous lire je vous souhaite une excellente soirée !

1 Solution

Accepted Solutions
YoussefBelloum
Champion
Champion

Bonsoir Axel,

Ce que j'aimerai savoir c'est comment rassembler en un seul QVD des informations se trouvant dans des localisations différentes dans ma BDD Oracle.

C'est à dire ex : schemaC2060.AGD_DEMANDE_PLANIF table  AGD_DEMANDE_PLANIF

                          schemac2060.IDE_Adresse table schemac2060.IDE_Adresse


Alors, tu aurais du peut etre donner plus de détails sur ta demande ou mettre un exemple de structure des tables que tu veux rassembler dans un QVD.

mais d'aprés ce que j'ai compri, c'est que les tables que tu veux mettre sur un seul entrepot de données (QVD), elles ont une structure differente.

dans ce cas, tu devra utiliser une Concatenation (CONCATENATE) pour rassembler tes tables, suivi d'une instruction STORE pour stocker les TOUT dans un QVD.

EXEMPLE:

//chaine de connexion vers ta bas

TABLE_FINALE:

LOAD

.

.

FROM TABLE1

CONCATENATE

TABLE2:

LOAD

.

.

FROM TABLE2

//tu met autant de concatenation que de tables chargés (sans rentrer dans les détails de syntaxe)

Store TABLE_FINALE Into [PATH\TABLE_FINALE .qvd];



Maintenant, tu a aussi ecrit que : le non concatenate me pertube


Par défaut, sur Qlik, quand tu charge 2 tables successivement, qui ont la meme structure, Qlik les concatene automatiquement


donc on utilise le non concatenate pour forcer Qlik a ne pas concatener 2 tables qui ont la meme structure (c'est un peule contraire de ce que tu veux faire toi).


Enfin, tu a écrit: le drop table j'ai beau lire et relire des choses sur ce sujet j'ai vraiment beaucoup de mal à l'intégrer


le besoin de ta première application, c'est un besoin ETL plus qu'autre chose (dataviz), donc a la fin du traitement tu devra utiliser l'instruction DROP TABLE pour effacer la table chargée du modele et ainsi avoir une application qui ne consommera rien en terme de disque une fois fermée.



View solution in original post

9 Replies
YoussefBelloum
Champion
Champion

Bonsoir Axel,

Ce que j'aimerai savoir c'est comment rassembler en un seul QVD des informations se trouvant dans des localisations différentes dans ma BDD Oracle.

C'est à dire ex : schemaC2060.AGD_DEMANDE_PLANIF table  AGD_DEMANDE_PLANIF

                          schemac2060.IDE_Adresse table schemac2060.IDE_Adresse


Alors, tu aurais du peut etre donner plus de détails sur ta demande ou mettre un exemple de structure des tables que tu veux rassembler dans un QVD.

mais d'aprés ce que j'ai compri, c'est que les tables que tu veux mettre sur un seul entrepot de données (QVD), elles ont une structure differente.

dans ce cas, tu devra utiliser une Concatenation (CONCATENATE) pour rassembler tes tables, suivi d'une instruction STORE pour stocker les TOUT dans un QVD.

EXEMPLE:

//chaine de connexion vers ta bas

TABLE_FINALE:

LOAD

.

.

FROM TABLE1

CONCATENATE

TABLE2:

LOAD

.

.

FROM TABLE2

//tu met autant de concatenation que de tables chargés (sans rentrer dans les détails de syntaxe)

Store TABLE_FINALE Into [PATH\TABLE_FINALE .qvd];



Maintenant, tu a aussi ecrit que : le non concatenate me pertube


Par défaut, sur Qlik, quand tu charge 2 tables successivement, qui ont la meme structure, Qlik les concatene automatiquement


donc on utilise le non concatenate pour forcer Qlik a ne pas concatener 2 tables qui ont la meme structure (c'est un peule contraire de ce que tu veux faire toi).


Enfin, tu a écrit: le drop table j'ai beau lire et relire des choses sur ce sujet j'ai vraiment beaucoup de mal à l'intégrer


le besoin de ta première application, c'est un besoin ETL plus qu'autre chose (dataviz), donc a la fin du traitement tu devra utiliser l'instruction DROP TABLE pour effacer la table chargée du modele et ainsi avoir une application qui ne consommera rien en terme de disque une fois fermée.



ab92
Creator II
Creator II
Author

Bonjour Youssef, je te remercie pour ta réactivité et de tes réponses précises !

Cependant il ne me reste qu'une question par rapport à ton affirmation :

Sur le Drop comment savoir quel donnée il supprimera ?

Pourrais tu me partager un exemple stp pour ainsi mieux comprendre son mécanisme car avec le guide d'utilisation c'est comment dire pas très explicite ..

En te remerciant beaucoup pour ton aide je te souhaite une excellente journée !

YoussefBelloum
Champion
Champion

Bonjour Axel,

voici les possibilités de l'instruction DROP :

tu peux supprimer une table de ton modèle de données (ou simplement une table chargée précédemment dans le script)

exemple:

drop table tablename

//tablename c'est le nom d'une table que tu a chargé précédemment.


Aussi, tu peux supprimer un champ d'une table précédemment chargée.


exemple:

Drop field fieldname from tablename

//fieldname c'est le nom d'un champ d'une table (tablename) précédemment chargée


ab92
Creator II
Creator II
Author

Bonjour à Tous et a toi Youssef,

Afin de pratiquer j'ai voulu tester la concatenation des champs avec deux tables différentes ;

Voici mon code, bien entendu j'ai un message d'erreur qui m'indique le message suivant :

Impossible d'ouvrir le fichier'D:\Qlikview\DEVELOPPEMENT\0 TEST APP SUR INSTRUCTION\glpi_entities' Le fichier spécifié est introuvable.

Concatenate

glpi_entities:
load
id,
name
from glpi_entities

Pour prendre mon exemple je suis allé taper dans une base que nous possédons de notre logiciel GLPI

Voici mon script :

SET vQVD_GLPI='..\entrepot\0_TEST\'; 

glpi_tickets:
load
id,
entities_id,
urgency
from glpi_tickets;

Concatenate

glpi_entities:
load
id,
name
from glpi_entities;

STORE glpi_tickets into $(vQVD_GLPI).QVD (QVD);

Par ailleurs il me dis que les tables selectionner sont introuvable, est ce psk je n'ai pas crée de QVD lié au table chargé ?

Mes questions serait de savoir :

Comment je peux faire cela ?

Est il possible de réaliser cela sans charger le QVD de chaque table ?

YoussefBelloum
Champion
Champion

Bonjour,

tu travaille sur Qlikview ou Qliksense ?

a priori, tu a un probleme sur tes FROM..

SET vQVD_GLPI='..\entrepot\0_TEST\';

glpi_tickets:
load
.
from glpi_tickets;  ==> glpi_tickets c'est quoi ?

Concatenate

glpi_entities: ==>
load
.
from glpi_entities; ==> glpi_entities c'est quoi ?

STORE glpi_tickets into $(vQVD_GLPI).QVD (QVD);  ==> incorrect

la derniere ligne est incorrecte:

STORE glpi_tickets into '..\entrepot\0_TEST\'.QVD (QVD);


tu devrait avoir ça:


STORE glpi_tickets into '..\entrepot\0_TEST\the_name_of_your_qvd.QVD' (QVD);



ab92
Creator II
Creator II
Author

Il me crée des messages d'erreur en signifiant que chaque table indiqué n'existe pas et enfin lors de ma création de mon QVD avec STORE il m'indique que la table est introuvable ...

Peux être psk il a besoin d'avoir le support d'un QVD pour la crée je comprends pas trop la manipulation..

glpi_tickets;

glpi_entities;

Ce sont les noms des tables sur la BDD

YoussefBelloum
Champion
Champion

comment tu est connecté a ta base ? OLEDB ODBC ?

est ce que tu arrive a voir les tables de ta base en mode assistant graphique ?

ab92
Creator II
Creator II
Author

Re Youssef merci pour ta réactivité je suis connecté en ODBC

Et j'ai crée aucun QVD avec la base je l'ai juste connecté.

Maintenant j'arrive à obtenir les noms des tables grâce à une applications que j'ai déjà crée.

Mais la j'aimerai m'entraîner à joindre des champs de deux tables différentes pour un besoin futur qu'on risquera sûrement de me demander. 

Par ailleurs que veux tu dire par mode assistant graphique : j'ai était formé sur QW par un intégrateur il ne m'a pas parlé de ça.


N'hésite pas à me poser plus de question...

ab92
Creator II
Creator II
Author

Voir la suite de mes question sur cette discussion :

SET "VARIABLE" dans FROM