Aufgabe 11 - Import, Export und Konvertierung (Webshop-Export)
Aufgabe 11 - Import, Export und Konvertierung (Webshop-Export)
Abschnitt betitelt „Aufgabe 11 - Import, Export und Konvertierung (Webshop-Export)“Worum geht es?
Abschnitt betitelt „Worum geht es?“In dieser Übung wandern Daten zwischen Systemen: Export und Import mit COPY, das Beheben typischer CSV-Tücken und die Konvertierung von verschachteltem JSON in flache CSV-Zeilen (siehe Kapitel 6 - Integration von Informationssystemen). Im Expertenteil entsteht eine kleine ETL-Kette mit Datenbereinigung.
Was Sie dafür brauchen
Abschnitt betitelt „Was Sie dafür brauchen“- Kapitel 6 - Integration von Informationssystemen, Abschnitte Datenimport/-export, Datenkonvertierung und Datenqualität.
- Ein PostgreSQL-Server sowie Python (oder eine andere Skriptsprache Ihrer Wahl).
Welche Kompetenzen Sie erwerben und zeigen
Abschnitt betitelt „Welche Kompetenzen Sie erwerben und zeigen“- Sie exportieren und importieren Tabellen mit
COPY. - Sie erkennen und beheben CSV-Probleme (Trennzeichen, Kodierung, Datum).
- Sie konvertieren verschachteltes JSON per Skript in flache CSV.
- Sie bauen eine kleine ETL-Kette mit Validierung und Bereinigung.
Pädagogische Einordnung
Abschnitt betitelt „Pädagogische Einordnung“- Reproduktion: Daten exportieren und importieren (Teil A).
- Reorganisation und Transfer: CSV bereinigen und JSON konvertieren (Teile B und C).
- Reflexion, Problemlösung und Urteilsbildung: eine ETL-Kette entwerfen und begründen (Teil D).
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“Die Übung ist auf etwa zwei bis drei Stunden ausgelegt. Teil D ist der Expertenteil.
Schema und Testdaten
Abschnitt betitelt „Schema und Testdaten“CREATE TABLE kunden ( id INT PRIMARY KEY, name VARCHAR(50), ort VARCHAR(50), land VARCHAR(30));
INSERT INTO kunden VALUES(1, 'Andrea Hofer', 'Villach', 'AT'),(2, 'Bernd Gruber', 'Graz', 'AT'),(3, 'Chris Meier', 'München', 'DE');Teil A - Export und Import mit COPY
Abschnitt betitelt „Teil A - Export und Import mit COPY“- Exportieren Sie die Tabelle
kundenals CSV mit Kopfzeile nach/tmp/kunden.csv. - Legen Sie eine leere Tabelle
kunden_kopiemit gleicher Struktur an und importieren Sie die CSV hinein. - Exportieren Sie nur die österreichischen Kunden über
COPY (SELECT ...).
Teil B - CSV-Tücken beheben
Abschnitt betitelt „Teil B - CSV-Tücken beheben“Gegeben ist diese Import-Datei fremd.csv (aus einem anderen System):
id;name;ort;umsatz4;"Meier, Sophie";Klagenfurt;1.250,005;Tom O'Brien;Wien;980,50- Nennen Sie mindestens drei Unterschiede zum PostgreSQL-Standard-CSV (Trennzeichen, Dezimalzeichen, Textbegrenzung).
- Passen Sie die
COPY-Optionen so an (bzw. beschreiben Sie die nötige Vorverarbeitung), dass die Datei korrekt eingelesen wird. Achten Sie besonders auf den Wert"Meier, Sophie"mit eingebettetem Komma.
Teil C - JSON nach CSV konvertieren
Abschnitt betitelt „Teil C - JSON nach CSV konvertieren“Gegeben ist eine Datei bestellungen.json mit verschachtelten Objekten:
[ { "id": 1001, "created_at": "2026-03-01T09:12:00Z", "customer": { "name": "Andrea Hofer" }, "amount_cents": 4990 }, { "id": 1002, "created_at": "2026-03-02T14:03:00Z", "customer": { "name": "Bernd Gruber" }, "amount_cents": 12500 }]Schreiben Sie ein Skript, das daraus eine flache CSV mit den Spalten id, datum, kunde, betrag erzeugt. Dabei soll aus dem Zeitstempel nur das Datum werden und aus amount_cents der Betrag in Euro (mit zwei Nachkommastellen).
Teil D - Expertenteil: Eine kleine ETL-Kette
Abschnitt betitelt „Teil D - Expertenteil: Eine kleine ETL-Kette“Bauen Sie eine durchgängige Kette aus drei Schritten und dokumentieren Sie jeden:
- Extract: Lesen Sie
bestellungen.jsonein. - Transform: Vereinheitlichen Sie das Datum, rechnen Sie Cent in Euro um und bereinigen Sie die Daten: Verwerfen oder markieren Sie Datensätze mit fehlendem Kundennamen, negativem Betrag oder Datum in der Zukunft. Validieren Sie vor der Weiterverarbeitung gegen eine einfache Regelprüfung.
- Load: Importieren Sie das Ergebnis in eine Tabelle
bestellungenund verknüpfen Sie es perJOINüber den Namen mitkunden. - Urteil: Erklären Sie in drei bis vier Sätzen, an welcher Stelle Ihrer Kette „garbage in, garbage out” droht und wie die Validierung das verhindert. Warum ist die Verknüpfung über den Namen fehleranfällig, und was wäre besser?
Wissenscheck
Abschnitt betitelt „Wissenscheck“- Wozu dienen die Optionen
FORMAT csvundHEADERbeiCOPY? - Nennen Sie zwei typische Probleme beim Einlesen fremder CSV-Dateien.
- Was bedeutet „Konvertierung ändert die Form, nicht die Bedeutung”?
- Wofür stehen die drei Buchstaben in ETL?
- Warum wird ein Dokument erst validiert und dann verarbeitet?
- Die Datei
aufgabe11_import.sqlmit allenCOPY-Anweisungen. - Das Konvertierungs-/ETL-Skript und die erzeugte CSV.
HTL Villach, Schuljahr 2026-2027,
https://www.htl-villach.at