OData Metadatenextraktion

vorhergehende Artikel in: Java sQLshell
21.06.2014

OData ist ein standardisiertes Protokoll für das Publizieren und Konsumieren von Daten-APIs. In meinem ersten Artikel zu diesem Thema war ich unzufrieden über die rudimentär vorhandenen Metadaten beim Versuch, einen OData-JDBC-Wrapper einzusetzen. Daher mein Versuch, diese Metadaten selbst zu analysieren.

sQLshell Logo Im Prinzip kann man OData-Metadaten aus dem assoziierten Schema extrahieren. Ich versuchte daher, den bestehenden Parser für XML-Schema, der zum Beispiel beim Ex- beziehungsweise Import relationaler Datenbanken in der sQLshell zum Einsatz kommt, für OData anzupassen. Das gelang relativ einfach.

Danach war es mir möglich, ein Schema einzulesen und in die bereits vorhandenen Klassen zur Metadatenverwaltung umzusetzen, die die sQLshell bereits enthielt.

Entities werden zu Tabellen, Properties zu Spalten und NavigationProperties zu Fremdschlüsselbeziehungen. Allerdings mußte ich das OData-Schema an drei wesentlichen Stellen anpassen: n-zu-m-Assoziationen werden über Hilfstabellen dargestellt. ComplexTypes werden in die enthaltenen Entities integriert. Vererbung wird implementiert, indem die geerbten Properties in die erbenden Properties kopiert werden.

Die Software unterstützt zur Zeit die Protokollversionmen 2 und 3.

Ich habe hier zwei Beispiele angehängt, die zeigen, daß man damit schnell ein visuelles Datenmodell des OData-Schemas erhalten kann (Achtung: bei der Darstellung des SVG im Firefox kann es zu Fehlern bei der Schriftgröße kommen!).

OData Schema V2
Darstellung als relationales Datenmodell (SVG)
Darstellung als relationales Datenmodell (PDF)
OData Schema V3
Darstellung als relationales Datenmodell (SVG)
Darstellung als relationales Datenmodell (PDF)

Artikel, die hierher verlinken

OData Content Browser

22.07.2014

OData ist ein standardisiertes Protokoll für das Publizieren und Konsumieren von Daten-APIs. In meinen ersten beiden Artikeln habe ich mich mit der Analyse von Metadaten beschäftigt. Nun war es an der Zeit, einen einfachen Content Browser für OData Services zu stricken.

Verbesserte Dokumentation für Datenmodelle in der sQLshell

28.06.2014

Die sQLshell wurde im Visuellen Abfrageeditor um eine neue Möglichkeit erweitert, Datenmodelle zu dokumentieren

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.