Die Aufgabe bestand darin, einen Prozess zu implementieren, der nach dem täglichen Update in der Zieldatenbank dynamisch aus allen Tabellen das endgültige Ladedatum ausliest und die Liste der betroffenen Tabellen mit ihrem letzten Aktualisierungsdatum per E-Mail an die DWH-Kollegen sendet.

Voraussetzungen

  • Als Basis wird ein Ubuntu-Server in der Version 22.04 verwendet.
  • Außerdem ist ein SSH-Zugang zum Server erforderlich.
  • Es wird ein Benutzer mit sudo-Rechten benötigt.
  • Zugang zur PostgreSQL-Datenbank mit Rechten zur Erstellung von DB-Funktionen

Basis SQL-Skript erstellen

Das Skript muss alle Tabellen in der PostgreSQL-Datenbank auflisten, die eine Spalte mit dem Namen „Ladedatum“ enthalten.

DB-Funktion 1: gibt eine dynamische Abfrage zurück

In diesem Schritt erstellen wir eine Datenbankfunktion, die auf der oberen Abfrage basiert und aus deren Ergebnis einen SQL-Befehl zusammenstellt. Dieser Befehl fragt aus allen betroffenen Tabellen das Maximum vom Ladedatum ab und führt diese Zeilen mit „union“ zusammen.

DB-Funktion 2: führt die dynamische Abfrage aus.

Die zweite Datenbank-Funktion ruft die erste Funktion auf und führt deren Ergebnis als SQL-Befehl aus. So erhalten Sie ein tabellarisches Ergebnis mit den Namen der betroffenen DB-Tabellen und deren letztem Aktualisierungsdatum.

Bash-Skript ruft die DB-Funktion auf.

Mit den folgenden Befehlen richten Sie ein Bash-Skript ein, das die oben erstellte Funktion in der PostgreSQL-Datenbank ausführt und das Ergebnis in tabellarischer Form zurückgibt.

Cron-Job: führt das Skript täglich aus.

Es wird ein Cron-Job eingerichtet, der das zuvor erstellte Skript täglich um 8:35 Uhr ausführt und das Ergebnis per E-Mail an die angegebene E-Mail-Adresse sendet.

Nützliche Links