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)

Themensammlung zu Open Data

Im Rahmen des Aufbaus einer kompletten BI-Umgebung beschäftige ich mich mit dem Thema Open Data (Wikipedia: https://de.wikipedia.org/wiki/Open_Data) . In diesem Beitrag gebe ich einen kurzen Überblick über Open Data und stelle eine kleine Linkliste mit aus meiner Sicht interessanten Links bereit.

Open Data

Unter Open Data versteht man frei verfügbare und vor allem frei nutzbare Daten. Diese Daten dürfen ohne Einschränkungen genutzt, weiterverbreitet und weiterverwendet werden. Ein wesentlicher Erzeuger solcher Daten ist der öffentliche Sektor. Wetter- und Umweltdaten, Verkehrs-, Infrastruktur oder geografische Daten sind Beispiele für Open Data die von Behörden, Ministerien, Forschungseinrichtungen oder Verbänden bereitgestellt werden. Deutschland steht im internationalen Vergleich bei den Bemühungen um Open Data eher auf den letzteren Rängen.

Herausforderungen im Umgang mit Open Data

Open Data ist nicht homogen, was die Integration in eigene BI-Systeme schwierig macht. Es sind viele unterschiedliche Strukturen mit unterschiedlichen Aktualisierungsintervallen zu berücksichtigen. Daten werden in unterschiedlichsten Formaten angeboten. Um diese nutzen zu können müssen sie in maschinenlesbaren Formaten bereitgestellt sein.

Anwendungsgebiete von Open Data

In vielen Unternehmen werden Open Data noch gar nicht oder nur sehr eingeschränkt verwendet. Doch aus der Kombination der Nutzung von eigenen Daten und Open Data ergibt sich für Unternehmen künftig ein enormes Potential zur Entscheidungsunterstützung. Durch Veredelung oder/und Weiterverarbeitung von Open Data können neue Datenservices angeboten werden die in eigene Services oder Produkte integriert werden.

Beispiele für die Verwendung von Open Data

OpenStreetMap

Prominentestes Beispiel für die Verwendung von Open Data ist OpenStreetMap (OpenStreetMap Deutschland: https://www.openstreetmap.de/). Bei OpenStreetMap werden frei nutzbare Geodaten gesammelt, in einer Datenbank gespeichert und können frei für beliebige Zwecke genutzt werden. Die Daten können in Websites, Printmedien oder in Navigationssoftware verwendet werden. Die einzige Einschränkung in Bezug auf die Nutzung von OpenStreetMap-Daten besteht darin, OpenStreetMap als Datenquelle in seinem Produkt zu nennen.

Verzeichnis behindertengerechter Toiletten der Stadt Frankfurt

Ein sehr interessantes Beispielprojekt der Stadt Frankfurt zeigt auf einer Landkarte basierend auf OpenStreetMap ein Verzeichnis behindertengerechter Toiletten mit Türbreiten und Sitzhöhen an – Toilets for the disabled (https://tftd.herokuapp.com/). Rollstuhlgerechte Orte in Frankfurt können mit Wheelmap gefunden oder gekennzeichnet werden https://wheelmap.org . Entstanden sind diese Projekte aus den Open Knowledge Labs (OK Labs) http://codefor.de/

Pollenradar der Stadt Wien

Die App Pollenradar Wien stellt allergieerzeugende Bäume und ihre Umgebung in Wien dar. Diese App bietet wertvolle Informationen für alle, die Ausflüge, Sport oder ein Piknik im Freien planen, und gegen Pollen allergisch sind. Die App wurde auf Basis der Open Government Daten der Stadt Wien entwickelt. Die Visualisierung der Daten erfolgt über Google Maps API – https://open.wien.gv.at/site/pollenradar-wien/ .

Linksammlung zu Open Data:

GOVDATA das Datenportal mit Verwaltungsdaten für Deutschland: https://www.govdata.de

Open Data Portal des Freistaates Bayern: https://opendata.bayern.de

Infoplattform für Geodaten und statistische Daten der Stadt Ulm: http://data.ulm.de/

Interaktive Karte mit Data Portalen weltweit: https://www.opendatasoft.com/

Europäisches Datenportal: http://data.europa.eu/euodp/de

Code for Germany – Open Knowledge Labs: http://codefor.de/

Welt Bank Open Data: http://data.worldbank.org/

Geodaten Infrastruktur – Geodaten von Bund, Ländern und Kommunen: http://www.geoportal.de

Offen Daten der Stadt Köln: https://www.offenedaten-koeln.de/

Offene Daten Portal der Stadt München: https://www.opengov-muenchen.de/

Berlin Open Data: http://daten.berlin.de/

Open Knowledge Foundation Deutschland: https://www.okfn.de/

SQL for JIRA

SQL for JIRA

SQL for JIRA ist ein Datenbank Web-Frontend um direkt auf den JIRA-Tabellen Abfragen zu erstellen. Dabei können SQL und JQL Queries kombiniert werden.

Wozu braucht man das?

In erster Linie ist dieses Datenbank Web-Frontend für Power-User gedacht, um Fragen zu beantworten die über die in JIRA verfügbare JQL-Queries nicht beantwortet werden können.

Werden dabei Security-Aspekte ausgehebelt?

Nein, alle Queries werden nur mit den Rechten ausgeführt, die auch für die Filter und Abfragen direkt in JQL verwendet werden.

Achtung: Das Datenbank Web-Frontend SQL for JIRA kann in den meisten Umgebungen nicht über die JIRA-Oberfläche aufgerufen werden (Admin kontaktieren!)

Beispiel:

Eine sehr oft wiederkehrende Fragestellung ist, „wie finde ich alle Tickets, die Sub-Tasks haben“. Dazu kann folgendes SQL-Statement in SQL for JIRA ausgeführt werden. Besondere Beachtung findet in diesem Beispiel die Kombination von SQL und JQL. Der JQL-Ausdruck muss dabei mit dem Literal jql= eingeleitet, sowie der JQL-Ausdruck in einfache Gänsefüßchen eingefasst werden.

Auszug der u.a. Query:

and i1.jql=’project=BCBSAM and type=Sub-task‘

select distinct substr(i2.key,8,3) as ticketid from issues i1
inner join
  issues i2
where i2.id=i1.parentid
  and i1.jql='project=PROJEKTNAME and type=Sub-task'
order by ticketid desc