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

QlikView Discussion :

SSIS et qlikview


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut SSIS et qlikview
    Bonjour tout le monde, svp j'ai besoin de réponses pour toutes ces questions
    je travaille sur un projet BI je vais utiliser SSIS et Qlickview.
    J'ai des questions s'il vous plait:
    -c'est la première fois que je vais travailler sur des fichiers dynamiques ( c'est à dire dans un serveur que j'ai son accès avec le mot de passe et le nom d'utilisateur)
    comment faire la connexion entre le projet crée sur sql server et la base de données source? je n'ai jamais fait ça et je n'ai absolument aucune idée.
    -Ça fait maintenant une semaine que j'essaie d'importer des fichiers CSV de même nature ( même colonne même format et tout) dans une seule table SQL server que j'ai crée dans on database mais toujours ça ne marche pas (j'ai vraiment tout essayé). qu'est ce qui pourra être le problème ?
    voilà les erreurs que j'ai:

    Nom : problem.PNG
Affichages : 730
Taille : 119,9 Ko
    - 3ème question: ils m'ont dit que les fichiers qui vont être mis dans la base de données sources seront nommées (YYYY-MM-DD_NomDuFicher) alors comment je peux faire pour que ça soit dynamique l'importation des fichiers qui se trouvent sur ce serveur alors que après chaque mise à jour leur noms changent (YYYY-MM-DD_NomDuFicher)
    Il se peut que vous trouveriez mes questions très banales mais peut être parce que je ne suis que débutante sur le domaine du BI et surtout parce que je suis blonde

    Merci d'avance les amis

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Votre première erreur proviens d'une conversion de donnée il faut utiliser les mêmes formats de données de votre fichier vers votre serveur :

    un peu d'aide : http://blog.sqlauthority.com/2011/05...le-using-ssis/
    MCSA SQL SERVER |MCT | MVP Data Platform

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup et les autres questions t'as pas de réponses stp ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Citation Envoyé par cuteness10 Voir le message
    -c'est la première fois que je vais travailler sur des fichiers dynamiques ( c'est à dire dans un serveur que j'ai son accès avec le mot de passe et le nom d'utilisateur)
    comment faire la connexion entre le projet crée sur sql server et la base de données source? je n'ai jamais fait ça et je n'ai absolument aucune idée.
    Votre accès s'effectue comment ? Ftp ? accès reseau ? autre ?

    Si Ftp ce tutoriel en anglais devrait vous aider :

    http://www.mssqltips.com/sqlserverti...data-exchange/

    Si c'est un accès reseau monter votre disque reseau ou creer une script task en C# permettant de monter le disque reseau et de parcourir le repertoire

    Un peu d'aide :

    https://msdn.microsoft.com/en-us/library/ms135944.aspx
    https://msdn.microsoft.com/fr-fr/library/cc148994.aspx

    Une autre méthode pourrait consister a creer un bat montant le disque reseau et a executer ce bat depuis SSIS via une tache Execute Process task

    un peu d'aide :

    http://www.windows8facile.fr/script-...ecteur-reseau/
    https://sqlserverrider.wordpress.com...mands-in-ssis/


    Citation Envoyé par cuteness10 Voir le message
    - 3ème question: ils m'ont dit que les fichiers qui vont être mis dans la base de données sources seront nommées (YYYY-MM-DD_NomDuFicher) alors comment je peux faire pour que ça soit dynamique l'importation des fichiers qui se trouvent sur ce serveur alors que après chaque mise à jour leur noms changent (YYYY-MM-DD_NomDuFicher)
    Il se peut que vous trouveriez mes questions très banales mais peut être parce que je ne suis que débutante sur le domaine du BI et surtout parce que je suis blonde
    Pour cette partie j'ai déjà répondu dans le poste suivant :

    http://www.developpez.net/forums/d15...-fichiers-csv/

    Dans votre cas il faudra remplacer la partie suivante par celle ci

    Name :FECL - Pour chaque fichier Client
    Enumerator:Foreach File Enumerator
    Expression : cliquer sur le bouton « … »
    Property : Directory
    Expression :@[User::Repertoire]
    Folder :C:\test\test.csv
    Files : *_NomDuFicher.csv // si les fichiers se nomment YYYY-MM-DD_NomDuFicher
    Retrieve File Name :Name and extension


    Bon courage
    MCSA SQL SERVER |MCT | MVP Data Platform

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    MERCI vous êtes trop gentil.. je vous remercie et bonne journée

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Hey c'est moi encore une fois :p j'ai essayé encore le Foreach loop mais toujours ça ne marche pas donc ce que j'ai fait est crée des tables au méme nombre que mes fichiers csv et j'ai importé chacun à une table
    première table avec les colonnes:
    Nom_site1 Netbios_name1 chassis1 OS1 Anvitirus_version1 etc ...

    et 2 ème table
    Nom_site2 Netbios_name2 chassis2 OS2 Antivirus_version2 etc...

    et 3 ème table aussi et 4 ème table aussi ..... etc

    bref j'ai pensé maintenant à insérer toutes ces données dans une seule table ( tout ça pour éviter d'utiliser le foreach loop parce qu'il va me rendre folle ) et cette fois en ajoutant le id

    la table finale va être la combinaison de toutes ces tables:
    Id Nom_site Netbios_name chassis OS Antivirus_ version etc



    N.B: toutes ces tables sont dans la même database
    Merci encore une fois

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Pour creer une table il faut taper une requete qui ressemble a la suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT matableRes.COL1, COL2
    INTO MatableDeRestitution
    FROM 
    (
     
    SELECT COL1, COL2
     
    FROM MaTable1
    UNION ALL 
    SELECT COL1, COL2
    FROM MaTable2
    UNION ALL 
    SELECT COL1, COL2
    FROM MaTable3
     
    ) as matableRes
    MCSA SQL SERVER |MCT | MVP Data Platform

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Dans ce cas, pourquoi ne pas faire une vue ?
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Yes, effectivement en reprennant le code que j'ai fait précédement tu pourras créer une vue
    MCSA SQL SERVER |MCT | MVP Data Platform

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par julien94320 Voir le message
    Yes, effectivement en reprennant le code que j'ai fait précédement tu pourras créer une vue
    hein ? qu'est ce que ça veut dire view?

  11. #11
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Une vue est un module de code qui permet de créer un niveau d'abstraction d'accès aux données.
    Une vue se définit par une requête de type SELECT, et n'a généralement qu'une existence logique, sauf dans le cas des vues indexées, très efficaces pour accélérer les calculs d’agrégats.

    Une vue se manipule comme une table, et on peut donc écrire des requêtes de type DML en référençant une vue, donc réaliser des INSERT.
    Ceci est possible suivant quelques restrictions, la principale étant que (UPDATE, INSERT et DELETE) doit faire référence aux colonnes d'une seule et même table de base.

    En ce qui concerne la lecture des fichiers CSV, s'ils sont tous dans le même répertoire, il vous suffit de choisir l'énumérateur de type Foreach File Enumerator dans la page Collection de l'éditeur du composant Foreach Loop. Dès lors, vous pouvez référencer le dossier et les fichiers par leur extension, comme suit :

    Nom : Capture.PNG
Affichages : 617
Taille : 21,9 Ko

    @++

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup pour ces informations précieuses. Mais j'avais déjà essayé le foreach loop ça fait une semaine que je ne fais que ça pour que ça marche mais en je n'arrive toujours pas à réussir cette méthode donc j'avais pensé à créer des tables pour chaque fichier csv et par la suite copier les data tables qui se trouvent sur ces tables dans la table globale. C'est pour cela que Monsieur Julien a écris le code pour que je puisse faire ça.
    Merci tout le monde vous êtes adorables

  13. #13
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Étant donné que vos fichiers ont tous la même structure, il suffit de les insérer en série dans la table cible.
    Pour ce faire, je crois que le composant Foreach Loop est tout à fait adapté.
    Je serai curieux de tester le chargement de vos fichiers en implémentant un package SSIS. Si cela vous tente, contactez-moi par message privé.

    @++

  14. #14
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Sinon, je reviens vers vous, car je ne comprends pas exactement ce que vous voulez faire.

    Vous voulez exporter votre base de données sous forme de fichiers CSV pour ensuite les importer dans Qlikview ???

    Pourquoi ne pas laisser Qlikview accéder directement à la base (quitte à faire des tables/base dédiée) ?

    En effet, votre traitement me semble particulièrement fastidieux et peu performant au final...

    Aussi, Qlikview permet de créer des fichiers de données (*.qvd)
    => Il remplaceront avantageusement vis fichiers CSV !

    Par exemple, vous lancer un traitement la nuit qui géénère les QVD.

    Puis les clients Qlikview chargent ces fichiers à la demande durant la journée, pour ne pas surcharger la base de production.

    Un QVD de plusieurs Go se charge en quelques secondes. Et un QVD de plusieurs Go ferait plusieurs To en CSV... (base vectorielle). Donc aucune hésitation à avoir.
    On ne jouit bien que de ce qu’on partage.

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    désolé pour ma réponse tardive.
    le projet que je dois faire c'est: faire un reporting en utilisant SSIS et Qlikview. donc d'aprés ce que j'avais compris c'est d'utiliser SSIS comme étant un ETL et par la suite charger mon schéma étoile dans qlikview et donc faire la maquette de reporting sur ce dernier.
    Les fichiers sources que j'ai: la grande majorité de ces fichiers sont: CSV et tous de même natures et mm colonnes, ils diffèrent juste entre eux dans les infos qu'ils contiennent car chaque fichier concerne un département.
    je voulais donc alimenter une table que j'ai crée sur sql server management studio avec ces fichiers cvs. c'est tout ce n'est pas du tout ce que vous venez de dire. je vous remercie infiniment pour vos efforts

  16. #16
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ah d'accord, j'aime mieux ça
    On ne jouit bien que de ce qu’on partage.

  17. #17
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut Re
    Citation Envoyé par StringBuilder Voir le message
    Ah d'accord, j'aime mieux ça
    J'ai remarqué que tu t'y connais en Qlikview, j'ai besoin de toi :TeteAnge: je suis fais un projet fin d'études et mon projet c'est de faire un reporting en utilisant SSIS et Qlikview. Mais j'ai deja travaillé qu'avec SQL SERVER. Je ne sais pas comment faire la liaison entre SSIS et Qlikview, je ne sais un peuuu que faire un reporting en utilisant toute la suite microsoft. tu peux me décrire un peu les grandes étapes que je dois faire pour avoir une idée plus claire, surtout surtout s'il vous plait la partie de la modélisation du schéma DW je ne sais pas où je dois faire ça ni où alimenter ça. Je n'ai pas l'habitude de travailler avec deux outils en même temps, et ça me panique trop.
    P.s ma source de données est trèèès facile (enfin je pense) il n y a qu'un seul fichier plat CSV et autre bd ACCESS et mes axes d'analyses ne seront que: ENTITE et TEMPS donc s'il vous plait faites de vous mieux pour que je puisse voir mieux les étapes merci beaucoup.

  18. #18
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour faire simple, QlikView ne va pas utiliser votre base de données SQL Server à proprement parler.

    En effet, QlikView travaille uniquement avec des données chargée en mémoire au moment du chargement (stockées ensuite dans le document QlikView, ou dans des fichiers dédiés).

    Dans la phase "SQL Server", il ne sera donc à rien de trop dénormaliser votre modèle des données/faire des aggrégats, etc.
    En effet, c'est dans QV que vous allez faire tout ça en convertissant votre modèle "1NF Compliant" en modèle en étoile, avec tables de faits et de dimensions.

    Pour faire simple, la constitution d'un document QV se fait en deux étapes :
    - Création du script de chargement
    - Création des écrans d'analyse

    Le script de chargement, c'est du bête SQL : vous faites des requêtes dont vous stockez le résultat dans des tables d'analyse (faits et dimensions).
    Les relations entre table se font automatiquement sur les colonnes de même nom : attention à ça, c'est très important.
    Le modèle est forcément en étoile. La moindre relation cyclique va provoquer une erreur lors du chargement des données. C'est vraiment la plus grosse contrainte de QV.

    Voici un exemple d'extrait de script de chargement (pour vous faire une idée) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Company:
    LOAD
    	fi_id,
    	fi_name,
    	fi_postcode,
    	fi_city,
    	co_id
    	where exists (fi_id);
    SQL
    select 
    	fi.id fi_id, 
    	fi.firma fi_name, 
    	fi.Plz fi_postcode, 
    	fi.Ort fi_city, 
    	la.code co_id
    from $(prefix)fi fi 
    inner join $(prefix)la la on la.id = fi.land;
     
    CompanySalesmen:
    LOAD
    	fi_id,
    	id2_id,
    	id2_name
    	where exists (fi_id);
    SQL
    select
    	sb.id_fi fi_id, 
    	id.id id2_id,
    	case when id.fname is not null and id.vname is not null then concat(concat(id.fname, ' '), id.vname) else id.bezeichnung end id2_name
    from $(prefix)sb sb
    inner join $(prefix)id id on id.id = sb.bezirksleiterid;

    Explication :

    "Company:" singifie qu'on déclare une nouvelle table (ici, de dimension)

    Ensuite, la liste suivante, c'est la liste des colonnes de la table :

    fi_id,
    fi_name,
    fi_postcode,
    fi_city,
    co_id
    where exists (fi_id);

    Le "where exists (fi_id)" permet, indépendamment de la requête SQL, de ne charger que les compagnies pour lesquelles l'identifiant a déjà été chargé (dans une étape précédente, je charge l'ensemble des factures de la base, qui contiennent cette colonne, et donc je ne veux faire d'analyse que sur les clients qui ont au moins une facture)

    SQL
    select
    fi.id fi_id,
    fi.firma fi_name,
    fi.Plz fi_postcode,
    fi.Ort fi_city,
    la.code co_id
    from $(prefix)fi fi
    inner join $(prefix)la la on la.id = fi.land;

    => Il s'agit de la commande SQL (ça aurait pu être une instruction pour charger un CSV par exemple)
    Les variables $(xxx) sont déclarées en amont :

    let prefix = 'TE_LSI_';


    D'ailleurs, je rebondi sur la capacité de QlikView à :
    - Lire des CSV
    - Etre capable de produire des QVD

    Et je réitère mes doutes quant à la nécessitée d'utiliser SSIS en amont du chargement des données.
    Un fichier QV peut parfaitement se charger de consolider les données des CSV et autres bases sources dans un ou plusieurs QVD, qui seront ensuite utilisés comme source par le document QV final.
    => C'est ce que j'ai mis en place chez un client qui souhaitait analyser des données à partir de plusieurs outils, et ça fonctionne tout à fait.

    Après, je dis pas que SSIS est complètement inutile ou une mauvaise option, mais clairement pas nécessaire, je pense.
    On ne jouit bien que de ce qu’on partage.

  19. #19
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Bonjour,

    Pour faire simple, QlikView ne va pas utiliser votre base de données SQL Server à proprement parler.

    En effet, QlikView travaille uniquement avec des données chargée en mémoire au moment du chargement (stockées ensuite dans le document QlikView, ou dans des fichiers dédiés).

    Dans la phase "SQL Server", il ne sera donc à rien de trop dénormaliser votre modèle des données/faire des aggrégats, etc.
    En effet, c'est dans QV que vous allez faire tout ça en convertissant votre modèle "1NF Compliant" en modèle en étoile, avec tables de faits et de dimensions.

    Pour faire simple, la constitution d'un document QV se fait en deux étapes :
    - Création du script de chargement
    - Création des écrans d'analyse

    Le script de chargement, c'est du bête SQL : vous faites des requêtes dont vous stockez le résultat dans des tables d'analyse (faits et dimensions).
    Les relations entre table se font automatiquement sur les colonnes de même nom : attention à ça, c'est très important.
    Le modèle est forcément en étoile. La moindre relation cyclique va provoquer une erreur lors du chargement des données. C'est vraiment la plus grosse contrainte de QV.

    Voici un exemple d'extrait de script de chargement (pour vous faire une idée) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Company:
    LOAD
    	fi_id,
    	fi_name,
    	fi_postcode,
    	fi_city,
    	co_id
    	where exists (fi_id);
    SQL
    select 
    	fi.id fi_id, 
    	fi.firma fi_name, 
    	fi.Plz fi_postcode, 
    	fi.Ort fi_city, 
    	la.code co_id
    from $(prefix)fi fi 
    inner join $(prefix)la la on la.id = fi.land;
     
    CompanySalesmen:
    LOAD
    	fi_id,
    	id2_id,
    	id2_name
    	where exists (fi_id);
    SQL
    select
    	sb.id_fi fi_id, 
    	id.id id2_id,
    	case when id.fname is not null and id.vname is not null then concat(concat(id.fname, ' '), id.vname) else id.bezeichnung end id2_name
    from $(prefix)sb sb
    inner join $(prefix)id id on id.id = sb.bezirksleiterid;

    Explication :

    "Company:" singifie qu'on déclare une nouvelle table (ici, de dimension)

    Ensuite, la liste suivante, c'est la liste des colonnes de la table :

    fi_id,
    fi_name,
    fi_postcode,
    fi_city,
    co_id
    where exists (fi_id);

    Le "where exists (fi_id)" permet, indépendamment de la requête SQL, de ne charger que les compagnies pour lesquelles l'identifiant a déjà été chargé (dans une étape précédente, je charge l'ensemble des factures de la base, qui contiennent cette colonne, et donc je ne veux faire d'analyse que sur les clients qui ont au moins une facture)

    SQL
    select
    fi.id fi_id,
    fi.firma fi_name,
    fi.Plz fi_postcode,
    fi.Ort fi_city,
    la.code co_id
    from $(prefix)fi fi
    inner join $(prefix)la la on la.id = fi.land;

    => Il s'agit de la commande SQL (ça aurait pu être une instruction pour charger un CSV par exemple)
    Les variables $(xxx) sont déclarées en amont :

    let prefix = 'TE_LSI_';


    D'ailleurs, je rebondi sur la capacité de QlikView à :
    - Lire des CSV
    - Etre capable de produire des QVD

    Et je réitère mes doutes quant à la nécessitée d'utiliser SSIS en amont du chargement des données.
    Un fichier QV peut parfaitement se charger de consolider les données des CSV et autres bases sources dans un ou plusieurs QVD, qui seront ensuite utilisés comme source par le document QV final.
    => C'est ce que j'ai mis en place chez un client qui souhaitait analyser des données à partir de plusieurs outils, et ça fonctionne tout à fait.

    Après, je dis pas que SSIS est complètement inutile ou une mauvaise option, mais clairement pas nécessaire, je pense.
    merci énormément pour votre temps.
    merci énormément pour tes efforts.
    et merci énormément pour ta gentillesse.
    je vous remercie...
    tes informations sont d'une grande utilité

  20. #20
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Bonjour,

    Pour faire simple, QlikView ne va pas utiliser votre base de données SQL Server à proprement parler.

    En effet, QlikView travaille uniquement avec des données chargée en mémoire au moment du chargement (stockées ensuite dans le document QlikView, ou dans des fichiers dédiés).

    Dans la phase "SQL Server", il ne sera donc à rien de trop dénormaliser votre modèle des données/faire des aggrégats, etc.
    En effet, c'est dans QV que vous allez faire tout ça en convertissant votre modèle "1NF Compliant" en modèle en étoile, avec tables de faits et de dimensions.

    Pour faire simple, la constitution d'un document QV se fait en deux étapes :
    - Création du script de chargement
    - Création des écrans d'analyse

    Le script de chargement, c'est du bête SQL : vous faites des requêtes dont vous stockez le résultat dans des tables d'analyse (faits et dimensions).
    Les relations entre table se font automatiquement sur les colonnes de même nom : attention à ça, c'est très important.
    Le modèle est forcément en étoile. La moindre relation cyclique va provoquer une erreur lors du chargement des données. C'est vraiment la plus grosse contrainte de QV.

    Voici un exemple d'extrait de script de chargement (pour vous faire une idée) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Company:
    LOAD
    	fi_id,
    	fi_name,
    	fi_postcode,
    	fi_city,
    	co_id
    	where exists (fi_id);
    SQL
    select 
    	fi.id fi_id, 
    	fi.firma fi_name, 
    	fi.Plz fi_postcode, 
    	fi.Ort fi_city, 
    	la.code co_id
    from $(prefix)fi fi 
    inner join $(prefix)la la on la.id = fi.land;
     
    CompanySalesmen:
    LOAD
    	fi_id,
    	id2_id,
    	id2_name
    	where exists (fi_id);
    SQL
    select
    	sb.id_fi fi_id, 
    	id.id id2_id,
    	case when id.fname is not null and id.vname is not null then concat(concat(id.fname, ' '), id.vname) else id.bezeichnung end id2_name
    from $(prefix)sb sb
    inner join $(prefix)id id on id.id = sb.bezirksleiterid;

    Explication :

    "Company:" singifie qu'on déclare une nouvelle table (ici, de dimension)

    Ensuite, la liste suivante, c'est la liste des colonnes de la table :

    fi_id,
    fi_name,
    fi_postcode,
    fi_city,
    co_id
    where exists (fi_id);

    Le "where exists (fi_id)" permet, indépendamment de la requête SQL, de ne charger que les compagnies pour lesquelles l'identifiant a déjà été chargé (dans une étape précédente, je charge l'ensemble des factures de la base, qui contiennent cette colonne, et donc je ne veux faire d'analyse que sur les clients qui ont au moins une facture)

    SQL
    select
    fi.id fi_id,
    fi.firma fi_name,
    fi.Plz fi_postcode,
    fi.Ort fi_city,
    la.code co_id
    from $(prefix)fi fi
    inner join $(prefix)la la on la.id = fi.land;

    => Il s'agit de la commande SQL (ça aurait pu être une instruction pour charger un CSV par exemple)
    Les variables $(xxx) sont déclarées en amont :

    let prefix = 'TE_LSI_';


    D'ailleurs, je rebondi sur la capacité de QlikView à :
    - Lire des CSV
    - Etre capable de produire des QVD

    Et je réitère mes doutes quant à la nécessitée d'utiliser SSIS en amont du chargement des données.
    Un fichier QV peut parfaitement se charger de consolider les données des CSV et autres bases sources dans un ou plusieurs QVD, qui seront ensuite utilisés comme source par le document QV final.
    => C'est ce que j'ai mis en place chez un client qui souhaitait analyser des données à partir de plusieurs outils, et ça fonctionne tout à fait.

    Après, je dis pas que SSIS est complètement inutile ou une mauvaise option, mais clairement pas nécessaire, je pense.

    Bonjour,
    J'ai utilisé SSIS finalement parce qu'ils ont mis ça dans le cahier de charges, j'ai importé le fichier CSV dans une table que j'ai crée sur MSSMS et j'ai importé facilement les données dans la table puis j'ai ajouté des colonnes Flag (bonne pratique quoi) qui prendra soit un 0 soit 1 selon certaines critères.
    Maintenant je vais charger cette table dans Qlikview et crée table de fait, et dimension et dim temps biensur et finalement vient la phase du reporting.

    Mais ce qui m'a un peu perturbé ce que dans la charte du projet il est mentionné: qu'il faut ajouter une colonne Date qui aura comme valeur la date du chargement du fichier CSV car les données qui sont dans ce fichier concernent les mêmes postes et les mêmes entités ce qui change ça sera quelques détails et ils ont écris comme quoi il faut suivre l'évolution de la sécurité dans les postes au cours du temps, mais je ne vois pas vraiment l'utilité de cette colonne et je ne sais pas comment la créer. Vous en pensez quoi ? depuis que vous m'avez expliqué la démarche j'ai une idée très claire maintenant mais là avec cette colonne date je ne sais pas ce qu'ils veulent vraiment. Donc vous en pensez quoi s'il vous plait ?
    Cordialement,

Discussions similaires

  1. Benchmarking Outils Microsoft (SSIS/SSAS) vs QlikView
    Par johan89 dans le forum Approche théorique du décisionnel
    Réponses: 0
    Dernier message: 21/04/2012, 12h51
  2. [SSIS][2k5]Difficulté avec SSIS
    Par david71 dans le forum SSIS
    Réponses: 9
    Dernier message: 05/01/2006, 19h28
  3. Champ ds état visible ssi il n'est pas vide !
    Par Fredri dans le forum Access
    Réponses: 11
    Dernier message: 20/12/2005, 12h15
  4. Quelqu'un connait le SSI en include ?
    Par miltonis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/11/2005, 09h21

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