Aufgabe 06 - IMDB Import
Aufgabe 06 - IMDB Import
Abschnitt betitelt „Aufgabe 06 - IMDB Import“- Datenanalyse und -verarbeitung.
- Import von Daten in eine PostgreSQL-Datenbank.
- Analyse von großen Datensätzen und Optimierung von Datenbankabfragen.
Aufgaben
Abschnitt betitelt „Aufgaben“1. Datenanalyse der IMDB-Daten
Abschnitt betitelt „1. Datenanalyse der IMDB-Daten“Rezeption:
- Laden Sie die IMDB-Daten von https://www.imdb.com/interfaces/ herunter.
- Entpacken Sie die heruntergeladenen Dateien und machen Sie sich mit der Struktur der Daten vertraut. Analysieren Sie die ersten 10 Zeilen jeder Datei und beschreiben Sie die Struktur und das Format der enthaltenen Daten.
2. Datenbank erstellen
Abschnitt betitelt „2. Datenbank erstellen“Organisation:
- Erstellen Sie eine neue Datenbank mit dem Namen
imdbin PostgreSQL und entwerfen Sie Tabellen, die die heruntergeladenen Daten widerspiegeln. Nutzen Sie dazu das Format der verschiedenen Dateien (z. B.name.basics.tsv,title.basics.tsv, etc.). - Achten Sie darauf, dass die Tabellen sinnvoll miteinander verknüpft sind
(Primär-/Fremdschlüssel) und die passenden Datentypen für jede Spalte
verwendet werden (z. B.
INTEGER,BOOLEAN,TEXT,DATE,REAL).
3. Datenimport in PostgreSQL
Abschnitt betitelt „3. Datenimport in PostgreSQL“Produktion:
- Verwenden Sie den Befehl
COPY(bzw.\copyinpsql), um die entpackten TSV-Daten in die PostgreSQL-Tabellen zu laden. - Hinweise:
- Die IMDB-Dateien sind in der Regel TAB-separiert (
\t). - Fehlende Werte werden meist als
\Ndargestellt (entsprechend inCOPYalsNULL '\N'angeben). - Je nach Umgebung müssen Pfade und Berechtigungen angepasst werden (z. B. Dateirechte, Zugriff des Datenbankservers auf das Dateisystem).
- Die IMDB-Dateien sind in der Regel TAB-separiert (
- Stellen Sie sicher, dass alle Datensätze geladen werden und keine Datensätze
übersprungen werden. Kontrollieren Sie die Ausgaben des
COPY-Befehls (Anzahl der importierten Zeilen) und vergleichen Sie diese mit der Zeilenanzahl der Quelldateien.
4. Abfragen durchführen und Laufzeiten messen
Abschnitt betitelt „4. Abfragen durchführen und Laufzeiten messen“Messen Sie immer die Laufzeit der Queries (z. B. mit \timing in psql) und
beantworten Sie die folgenden Fragen:
- Wie viele Produktionen (Filme, Serien, etc.) gibt es?
- Wie viele Personen sind in den IMDB-Daten registriert?
- Welche verschiedenen Kategorien an Aufgaben gibt es für eine Produktion (z. B. Schauspieler, Regisseur, Produzent)?
- Wie viele Filme gibt es mit mehr als 100.000 Wertungen?
- Was sind die 10 besten Produktionen “aller Zeiten” (basierend auf Bewertungen) mit mehr als 100.000 Wertungen? Wann wurden diese produziert?
- Was sind die 10 besten Filme “aller Zeiten” mit mehr als 100.000 Wertungen? Wann wurden diese produziert? Wie viele davon wurden nach dem Jahr 2000 produziert?
- Finden Sie Ihren Lieblingsschauspieler bzw. Ihre Lieblingsschauspielerin in der IMDB-Datenbank anhand des Namens und messen Sie die Laufzeit der Abfrage.
5. Weitere Analyse und Laufzeiten messen
Abschnitt betitelt „5. Weitere Analyse und Laufzeiten messen“Messen Sie immer die Laufzeit der Queries und beantworten Sie die folgenden Fragen:
- Welche Produktionen hat Ihr Lieblingsschauspieler bzw. Ihre
Lieblingsschauspielerin in der Rolle des Schauspielers oder einer anderen
Kategorie gemacht? (Benutzen Sie
title_principalsundcategory). Messen Sie die Laufzeit dieser Query. (Anm.: verwenden Sie dabei den Namen Ihres Schauspielers oder Ihrer Schauspielerin und nicht die Id). - Nennen Sie alle Filme, Kurzfilme, TV-Serien oder TV-Episoden, in denen Ihr Lieblingsschauspieler bzw. Ihre Lieblingsschauspielerin mitgewirkt hat. Messen Sie auch hier die Laufzeit der Query. (Anm.: verwenden Sie dabei den Namen Ihres Schauspielers oder Ihrer Schauspielerin und nicht die Id).
- Erstellen Sie eine Liste der Anzahl der Titel und die Summe der Minuten pro Jahr, in denen Ihr Lieblingsschauspieler bzw. Ihre Lieblingsschauspielerin als Schauspieler mitgewirkt hat (d. h. wann war er/sie am fleißigsten?). Messen Sie die Laufzeit dieser Query. (Anm.: verwenden Sie dabei den Namen Ihres Schauspielers oder Ihrer Schauspielerin und nicht die Id).
- Erstellen Sie eine Liste der unterschiedlichen Tätigkeiten Ihres Lieblingsschauspielers bzw. Ihrer Lieblingsschauspielerin, z. B. wie oft war er Schauspieler, Regisseur, Produzent, usw. Messen Sie auch hier die Laufzeit der Query. (Anm.: verwenden Sie dabei den Namen Ihres Schauspielers oder Ihrer Schauspielerin und nicht die Id).
- Dokumentation:
- Analyse der IMDB-Daten und SQL-Schema der Tabellen (PostgreSQL).
- Alle verwendeten Abfragen zur Analyse.
- Ergebnisse des Datenimports (z. B. Logs,
COPY-Ausgaben oder Screenshots). - Laufzeiten der Queries (z. B. Screenshots aus
psqlmit aktivierter\timing-Option oder zusammengefasste Tabelle).
HTL Villach,
INSY 2024-2025,
Dipl.-Ing. Oliver Maurhart
[email protected]