2017-09-13 4 views
0

J'ai 2 tables d'utilisateurs dans différentes bases de données et je voudrais obtenir seulement des lignes uniques de ces tables.Supprimer la ligne dupliquée de 2 tables dans une base de données différente

Dans l'exemple suivant, j'ai besoin de la liste des courriels qui n'ont pas de nom en double. Je suis en train d'utiliser Pentaho DI Kettle.

Tableau utilisateur de base de données 1

ID | Name  | Email 
--- | ----------- | ------------- 
1 | Jonh Snow | [email protected] 
--- | ----------- | ------------- 
2 | Sansa Stark | [email protected] 
--- | ----------- | ------------- 
3 | Ayra Stark | [email protected] 

Tableau utilisateurs de la base de données 2

ID | Name  | Email 
--- | ----------- | ------------- 
1 | Jonh Stott | [email protected] 
--- | ----------- | ------------- 
2 | Jonh Jonh | [email protected] 
--- | ----------- | ------------- 
3 | Ayra Stark | [email protected] 

Résultat désiré

ID | Name  | Email 
--- | ----------- | ------------- 
1 | Jonh Snow | [email protected] 
--- | ----------- | ------------- 
2 | Sansa Stark | [email protected] 

Répondre

0

Dans la mesure où je comprends votre question, vous devez conserver uniquement les emails qui ne sont pas des doublons dans DB1 union DB2?

Eh bien, votre logique: obtenir les données (avec un Input table par connexion DB), compter le nombre d'enregistrements par e-mails (Memory Group by) et Filter les e-mails avec un nombre supérieur à 1.

Utilisation le Memory Group by, qui ne nécessite pas de tri. Dans le Group field mettre la clé: email. Et dans le Aggregates mettre le Number of rows (dans le menu déroulant Type), et le First Value (ou Last Value) de Name sinon cette colonne disparaîtra du flux.

Et Add a sequence si vous devez créer l'ID sur la sortie.

enter image description here

0
  1. Effectuez une UNION ALL (joindre simplement les deux fichiers à un mannequin)
  2. Effectuer une Trier par e-mail.
  3. utilisez des lignes UNIQUES sur le nom.
  4. utilisez une recherche de flux sur Nom ayant une entrée comme table1 et deuxièmes lignes uniques.
  5. Filtrer les lignes sur l'ID < 3 et id isnull.