table append

Edge-Case-Szenario: Zusammenführen von Tabellen mit unterschiedlichen Schemata und fehlenden Werten

Scénario de test & Cas d'usage

Geschäftskontext

Ein Einzelhandelsunternehmen übernimmt einen Wettbewerber und muss dessen Produktkatalog in den eigenen Master-Katalog integrieren. Die Kataloge haben unterschiedliche Spalten (einige fehlen, andere sind zusätzlich vorhanden) und die Quelldaten enthalten fehlende Werte. Dieses Szenario testet, wie robust die 'append'-Aktion mit diesen Inkonsistenzen umgeht.
Über das Set : table

Laden, Speichern und Verwalten von Tabellen im Arbeitsspeicher.

Entdecken Sie alle Aktionen von table
Datenaufbereitung

Erstellt einen 'Produktkatalog_Ziel' (mit Spalten wie Preis, Lagerbestand) und einen 'Produktkatalog_Quelle' (ohne Lagerbestand, aber mit einer zusätzlichen Spalte 'Lieferant' und fehlenden Werten im Preis).

Kopiert!
1DATA casuser.Produktkatalog_Ziel;
2 LENGTH ProduktID $ 8 Produktname $ 40 Kategorie $ 20;
3 INFILE DATALINES delimiter=',';
4 INPUT ProduktID $ Produktname $ Kategorie $ Preis Lagerbestand;
5 DATALINES;
6PROD1001,Laptop Pro,Elektronik,1200,50
7PROD1002,Monitor HD,Elektronik,350,120
8;
9RUN;
10 
11DATA casuser.Produktkatalog_Quelle;
12 LENGTH ProduktID $ 8 Produktname $ 40 Lieferant $ 30;
13 INFILE DATALINES delimiter=',';
14 INPUT ProduktID $ Produktname $ Preis Lieferant $;
15 DATALINES;
16PROD2001,Gaming Maus,75,TechSupply Inc.
17PROD2002,Tastatur RGB,.,Global Office
18;
19RUN;

Étapes de réalisation

1
Laden der Zieltabelle 'Produktkatalog_Ziel' in den Speicher.
Kopiert!
1PROC CAS;
2 TABLE.loadTable /
3 caslib='casuser'
4 path='Produktkatalog_Ziel.sashdat'
5 casOut={name='produktkatalog_master', replace=true};
6RUN;
2
Anhängen des Quellkatalogs mit abweichendem Schema an den Master-Katalog.
Kopiert!
1PROC CAS;
2 TABLE.append /
3 SOURCE='Produktkatalog_Quelle'
4 target='produktkatalog_master';
5RUN;
3
Anzeigen der ersten Zeilen der zusammengeführten Tabelle, um die Behandlung von Schema-Inkonsistenzen und fehlenden Werten zu überprüfen.
Kopiert!
1 
2PROC CAS;
3TABLE.fetch / TABLE='produktkatalog_master';
4RUN;
5 

Erwartetes Ergebnis


Die Daten aus 'Produktkatalog_Quelle' werden erfolgreich an 'produktkatalog_master' angehängt. Die Spalte 'Lieferant' aus der Quelle wird ignoriert, da sie im Ziel nicht existiert. Für die angehängten Zeilen ist die Spalte 'Lagerbestand' (die in der Quelle fehlte) mit fehlenden Werten (null) gefüllt. Der fehlende 'Preis' für 'PROD2002' wird korrekt als fehlender Wert in die Zieltabelle übernommen.