activeLearn alJoin

Grenzfall: Umgang mit inkonsistenten IDs und Duplikaten

Scénario de test & Cas d'usage

Geschäftskontext

Ein E-Commerce-Unternehmen führt Produktdaten aus zwei Systemen zusammen. Ein System (`PRODUKT_STAMMDATEN`) enthält die Master-Produktliste. Das andere (`PRODUKT_BEWERTUNGEN`) enthält benutzergenerierte Bewertungen, aber die Datenqualität ist schlecht: Einige `ProduktID`s fehlen, einige sind doppelt vorhanden und einige existieren nicht in der Masterliste. Wir verwenden einen FULL JOIN, um alle Daten aus beiden Tabellen zu sehen und Abweichungen zu identifizieren.
Über das Set : activeLearn

Aktives Lernen zur Optimierung der Datenkennzeichnung.

Entdecken Sie alle Aktionen von activeLearn
Datenaufbereitung

Erstellt eine Master-Produkttabelle und eine Annotationstabelle mit Datenqualitätsproblemen: Duplikate, fehlende IDs und verwaiste IDs.

Kopiert!
1DATA casuser.PRODUKT_STAMMDATEN;
2 INPUT ProduktID $ Preis;
3 CARDS;
4P100 19.99
5P200 25.50
6P300 99.00
7;
8RUN;
9 
10DATA casuser.PRODUKT_BEWERTUNGEN;
11 LENGTH Bewertung $50;
12 INPUT ProduktID $ Bewertung $;
13 CARDS;
14P100 Super Produkt!
15P200 Hat mir nicht gefallen
16P200 Zweite Bewertung fuer P200
17P400 Bewertung fuer ein unbekanntes Produkt
18. Bewertung mit fehlender ID
19;
20RUN;

Étapes de réalisation

1
Ausführen eines FULL JOIN, um alle Abweichungen zwischen den beiden Tabellen aufzudecken.
Kopiert!
1PROC CAS;
2 activeLearn.alJoin /
3 TABLE={name='PRODUKT_STAMMDATEN', caslib='casuser'},
4 annotatedTable={name='PRODUKT_BEWERTUNGEN', caslib='casuser'},
5 id='ProduktID',
6 joinType='FULL',
7 casOut={name='PRODUKT_JOIN_VOLLSTAENDIG', caslib='casuser', replace=true};
8RUN;
9QUIT;
2
Anzeigen aller Zeilen der Ergebnistabelle, um das Join-Verhalten zu überprüfen.
Kopiert!
1PROC CAS;
2 TABLE.fetch /
3 TABLE={name='PRODUKT_JOIN_VOLLSTAENDIG'};
4RUN;
5QUIT;

Erwartetes Ergebnis


Die Ausgabetabelle 'PRODUKT_JOIN_VOLLSTAENDIG' enthält alle Zeilen aus beiden Tabellen. P100 wird korrekt verbunden. P200 aus der Stammdatentabelle wird mit beiden P200-Bewertungen verbunden, was zu zwei Zeilen führt. P300 (nur in Stammdaten) hat fehlende Werte für die Bewertungsspalte. P400 (nur in Bewertungen) hat einen fehlenden Wert für die Preisspalte. Die Bewertung mit einer fehlenden ID erscheint in einer separaten Zeile mit einem fehlenden Preis. Dies testet die Fähigkeit des FULL JOIN, mit Eins-zu-Viele-Beziehungen, verwaisten Datensätzen und fehlenden Join-Schlüsseln umzugehen.