Leerzeichen zwischen zwei Kommas mit awk-Skript identifizieren

Dieses kleine awk-Skript prüft rechtsbündige Leerzeichen zwischen Kommas, die in einem fiktiven Szenario in einer Datei nicht erlaubt sind:

 BEGIN{
  FS=",";
 }
  / ,/ {print "unerlaubte rechtsbündige Blanks bei Zeile: " , NR;
        print "IDENTIFIER-->", $5;
  anzahl = anzahl +1;
}
 END{
  if(anzahl==0) print "O.K." , FILENAME;
  if(anzahl>0) print "ERROR!!! ", anzahl , "rechtsbündige(s) Leerzeichen in " FILENAME; 
 }

Mit awk-Skript unter AIX RiskPro-Sätze zählen

Dies ist ein sehr spezielles Skript, welches nur im Zusammenhang mit der Software „Algorithmics Credit Economic Capital“ Sinn macht, die sogenannten BAS und Rollover-Records zu z‰hlen.

Dieses Skript erwartet als Eingabeparameter die zu scannende Datei. Der Aufruf erfolgt unter AIX mit nawk:

nawk -f bas_rm_ro.awk -v DATEI=EINGABEDATEI.csv

Und hier ist das Skript:

###########################################
# Dieses kleine awk-Skript zaehlt die
# Anzahl der BAS und rm_ro-Datensätze
###########################################
BEGIN {
   FS=",";
   print "DATEI: ", DATEI;
}
{if($1~/BAS/)
   anzahl = anzahl +1;}
{if($1~/rm_ro/)
   anzahl_rm_ro = anzahl_rm_ro +1;}
   END
   {
   summe = anzahl + anzahl_rm_ro;
   print " - davon: " anzahl " BAS Datensätze";
   {if(anzahl_rm_ro==0)
      print " - davon: 0 rm_ro Datensätze"
   else
      print " - davon: " anzahl_rm_ro " rm_ro Datensätze"}
      print " SUMME: " summe;
}

Data Vault Datenmodellierung

„The key, the whole key, and nothing but the key. So help me Codd!“
(»Der Schlüssel, der ganze Schlüssel und nichts als der Schlüssel. So wahr mir Codd helfe!«).

Auch beim Thema Data Vault fällt dieses Zitat immer wieder. Die von Dan Linstedt (http://danlinstedt.com) seit 1990 entwickelte Modellierungstechnik findet immer mehr Anhänger und Verbreitung in modernen BI-Umgebungen. In diesem Beitrag möchte ich einen kurzen Einblick in dieses Thema vornehmen. Eine Linkliste mit dazu passenden Websites ist am Ende dieses Beitrages zusammengetragen.

Data Vault – was ist das?

Unter Data Vault wird ein Datenmodell verstanden, welches aus 3 verschiedenen Strukturen besteht:

  • HUBs,
  • LINKs und
  • SATellites

Diese Strukturen werden als Tabellen physisch implementiert und konsequent voneinander getrennt. Data Vault Modelle sind eine Kombination aus Datenmodellen in der dritten Normalform (3DNF) und dem Sternschema.

Was sind HUBs?

HUBs beinhalten nur fachliche Schlüssel von fachlich modellierten Entitäten und einen künstlichen Schlüssel (Surrogatschlüssel – Wikipedia) welcher von LINKs und SATellites referenziert wird. In HUBs werden keine beschreibenden Attribute abgespeichert – diese werden in SATellites verlagert.

Was sind LINKs?

LINKs beschreiben Beziehungen zwischen HUBs. Hier werden m:n Beziehungen zwischen verschiedenen HUBs grundsätzlich erlaubt. Fachliche Kardinalitäten (1:1, 1:n, m:n) wie in klassischen relationalen Datenmodellen werden in LINKs nicht abgebildet.

Was sind SATellites?

Alle beschreibenden Attribute von Entitätstypen oder Beziehungen werden in den SATellites modelliert und in versionierter Form abgelegt. SATellites werden mit Fremdschlüsselbeziehungen einem HUB oder LINK zugeordnet. Je HUB /LINK können mehrere SATellites festgelegt werden.

Welche Vor- und Nachteile ergeben sich aus der Data Vault Modellierung?

Die Vor- und Nachteile der Data Vault Modellierung ergeben sich aus den jeweiligen Anforderungen. So kann man in einem agilen Umfeld unter dem Gesichtpunkt „Erweiterbarkeit“ dieses Modell
als Vorteil ansehen und mit „hoch“ einstufen. Der hohe Grad an Erweiterbarkeit ergibt sich daraus, dass keine Referenzen zwischen den Entitäten vorhanden sind, die autark erweitert oder angepasst werden können. Nachteilig ist die hohe Anzahl an Tabellen und damit verbunden die hohe Anzahl an ETL-Prozessen (je Tabelle ein ETL-Prozess). Die Vielzahl an Tabellen kommt daher, weil für jede Entität zwei oder mehr Tabellen, plus eine oder mehr Tabellen für jede Beziehung, erforderlich ist. Durch die hohe Anzahl an Tabellen ergibt sich aber widerum ein Vorteil, nämlich ein hoher Grad an Parallelisierung beim laufenden Betrieb als auch beim Laden der Tabellen. In den SATellites wird standardmäßig  j e d e  Änderung historisiert. Durch diese Historisierung ergibt sich eine hohe Traceability (Nachvollziehbarkeit).

Ausblick

Auch Data Vault unterliegt einem gewissen Lebenszyklus und wird aktuell auch unter dem Namen Data Vault 2.0 „verkauft“.  Data Vault 2.0 beschäftigt sich nicht mehr nur mit der Datenmodellierung, sondern beleuchtet auch Architekturen, agile Vorgehensweisen, Performance und moderne Open Source Frameworks wie Hadoop zur Analyse von Big Data.

Interessante Websites zum Thema Data Vault:

Normalisierung Datenmodellierung – Wikipedia (DE)
Data Vault – Wikipedia (DE)
Dan Linstedts Homepage (EN)
Blog zum Thema Data Vault von Dirk Lerner (EN/DE)
Data Vault Academy (EN)
Talend Blog: Was ist Data Vault und warum? (EN)
Deutschsprachige Data Vault User Gruppe (DE)