Hitachi Vantara Pentaho Community Forums
Results 1 to 9 of 9

Thread: problème de jointure

  1. #1

    Default problème de jointure

    Bonjour, j'ai des problèmes actuellement pour faire des jointures avec Kettle. J'utilise Kettle en version 2.4.0

    Déjà je ne sais pas trop laquelle des fonctions de base permettant d'en faire choisir. En regardant les arguments de chacune j'ai opté pour l'outil "produit cartésien". Je sais, le nom va à l'encontre de ce que je veux faire, mais lorsque j'utilise les autres qui portent le nom de jointure, çà me fait un produit cartésien...

    Au final lorsque j'effectue une jointure par la fonction "produit cartésien" il y a systématiquement une table qui se bloque toujours après avoir importé le même nombre de ligne...

    Est-ce que quelqu'un aurait été confronté au même problème?




    Hi, i have some problem in order to do join with Kettle. I use 2.4.0 version,

    First, i have difficulties to choose one in all transformation which take the name of join. With looking asking parameters i choose "cartesian product". I know this name and what i want to do are at the opposite, but it is the only one which don't do cartesian product with parameters i entered...

    Finaly, when i make a join with "cartesian product", each time, a table (source one) stop loading ever at the same number of loading line.

    Is there anybody who have had the same problem?

  2. #2
    Join Date
    Apr 2007
    Posts
    19

    Default

    Salut clement,

    Dans les proprietés de ta transformation, onglets "autres" coche l'option : Utilisé une seule connection a la base de donnée.
    Puis teste et donne le result s'il te plait.

    (Je supose par la que, lors de l'acces à ta base, celle ci se lock et par consequant n'arrivant plus a y acceder, la tranfo se mets en sleep) Ceux-ci étant vraiment à prendre au conditionnel ^^

    Pour les jointures, il me semble que certains bug ont été corrigés avec la 2.5 (cf les post sur le forum)

    Cordialement.




    Hi florent,
    In the tranformation's properties, tab "other" check the option "Use only one connection".
    Plz give a feedback.

    Concerning the merge, it's seem have a lot of corrections in the version 2.5.

  3. #3

    Default

    J'ai essayé de ne configurer que pour une seule connexion à la base, mais çà n'a rien changé, l'une des tables de ma transformation se bloque toujours au même nombre de ligne.





    I try the "Use only one connection" option, but there is no effect one my transformation. The same table in the same transformation stop loading at the same number of line.

  4. #4
    Join Date
    Apr 2007
    Posts
    19

    Default

    10.2. Lancer plusieurs copies de la même étapeParfois, il peut être utile de lancer plusieurs fois la même étape. Par exemple, pour des raisons de performance, il peut vous arriver de devoir lancer une lecture de base trois fois ou plus, ceci parce que les connexions à cette base ont une certaine latence; lancer plusieurs fois la même étape occupe les connexions et diminue effectivement la latence (ndt: on est dans le cambouis et c'est normalement le serveur de la base de données qui doit gérer ceci; par contre, il peut y avoir des limites de taille dans le flux qui exige de relancer plusieurs fois la même étape pour épuiser la quantité d'informations à lire ou écrire).Vous pouvez simplement lancer plusieurs copies d'une étape au sein d'une transformation en changeant le paramètre « Modifier le nombre de copies à démarrer ». Pour cela, cliquez droit sur l'étape désirée sur la représentation graphique de la transformation et sélectionnez ce paramètre


    Je suis tombé sur ca en lisant la doc... peut etre ca te seras utile.

    Cordialament.

  5. #5

    Default

    Je pense que j'ai trouvé d'où çà vient. Dans les propriétés de la transformation, il y a un champ "Nbr de ligne dans une plage". C'est systèmatiquement à ce nombre de lignes que le chargement de la table s'arrête.

    En regardant dans la documentation j'ai vu que c'est ce paramètre qui permet de définir le nombre de lignes maximum que l'on peut mettre dans le buffer.

    Par contre il est dit qu'on est pas censé (ou très rarement) changé ce chiffre...

    Donc si quelqu'un a une autre solution que d'augmenter ce chiffre, çà m'intéresse.







    I think that I found why it happen.

    In the properties of the transformation, there is a field “Nbr de ligne par plage”.
    It correponds with the number of lines at which the loading of the table stops.

    In documentation I saw that it is this parameter which defines the maximum number of lines which can be put in the buffer.

    On the other hand, this figure is not supposed (or very seldom) to be changed…

    I will test a transformation with a higher figure.

    If somebody has another solution, that interests me.

  6. #6

    Default

    Je viens d'essayer de faire une jointure avec la version 2.5. L'intérêt d'y passer depuis la 2.4 était d'avoir un outil de jointure qui marche.

    Le problème est que lorsque je lance une jointure avec l'outil "jointure comparaison ligne" Kettle commence à charger correctement les deux tables. Il commence même à charger la table résultat: parfait. Sauf que dès que la table avec la plus petit nombre de ligne est complétement chargé, la transformation est déclaré comme terminée.





    I try to make a join with 2.5 version. By upgrade my version of Kettle i wanted to have a real fonction of join.
    That's why i use the fontion 'jointure comparaison ligne'. I start the transformation, both table are read, and even the target table are begining to be filled : perfect.
    But when the table with the less number of line is finished to be read the transformation is declared as finished.

  7. #7
    Join Date
    Jan 2007
    Posts
    2

    Default

    Salut,

    Si les tables sont dans la même connexion, fait la jointure dans la partie SQL d'une étape "Extration Table".

    Sinon, tu peux utiliser l'étape "Extraction Table" puis la relier à une étape "Jointure Base de données".

    Exemple :
    Table A avec les colonnes C1(Pk) et C2
    Table B avec les colonnes C3(Pk), C4(FK référençant A.C1) et C5

    1)
    "Extraction Table":
    SQL --> SELECT * FROM A, B WHERE A.C1 = B.C4

    2)
    "Extraction Table" :
    SQL --> SELECT * FROM A
    "Jointure Base de données"
    SQL --> SELECT * FROM B WHERE C4 = ?
    Paramètre --> C1

    Hi,

    If your tables are in the same database connection, make the join in the SQL statement of "Table Input" step.

    Else, you can use a "Table Input" step with a "Database Join" step.

    Sample:
    Table A with columns C1(Pk) and C2
    Table B with columns C3(Pk), C4(FK refers A.C1) and C5

    1)
    "Table Input":
    SQL Statement --> SELECT * FROM A, B WHERE A.C1 = B.C4

    2)
    "Table Input" :
    SQL Statement --> SELECT * FROM A
    "Database Join"
    SQL Statement --> SELECT * FROM B WHERE C4 = ?
    Parameters to use --> C1

  8. #8

    Default

    J'aurai besoin de savoir si de tes deux façons (par "Extraction Table", et par "Jointure Base de données") ou une seule, voir aucune, de faire une jointure utilisent le moteur de la base de données ou le moteur de l'ETL?



    I need to know if both or one or none of these ways to do a join work with database engine, or with the engine of the ETL?

  9. #9
    Join Date
    Jan 2007
    Posts
    2

    Default

    Je pense que la première solution utilise uniquement le moteur de base de données et que la seconde solution utilise les le moteur de base de données et le moteur de l'ETL

    I think that the fist solution uses the database engine and the second solution uses the database engine and the engine of the ETL.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.