Datenimporte in die imx.Platform

Datum: 10. November 2017
Autor: Tobias Pfannkuche


Aufgrund der kontinuierlich steigenden Anzahl externer Datenlieferanten bzw. der Anbindung von Schnittstellen im Rahmen von Datenimporten und damit verbundenen wiederkehrenden Fragen, hier eine Zusammenfassung der Kern-Anforderungen, um Daten von Drittanbietern in die imx.Platform zu übernehmen, sowie Grundfunktionalitäten für Datenimporte.

Anforderungen

Grundsätzlich sind folgende technischen Anforderungen einer Schnittstelle, die wir zwecks Datenübernahme/-import nutzen wollen, zu erfüllen:

  • Strukturiertes Datenformat (XML, JSON, CSV), idealerweise in UTF-8 Codierung
  • einheitliche Datentypen pro Feld
  • Pro Entität (s.u.) eine eindeutige, unveränderliche Fremd-ID
  • Anbindung mittels HTTP/REST-API (inkl. BasicAuth oder OAuth) oder FTP (Push oder Pull)

Daten-Entitäten

Die folgenden Daten-Entitäten können in die imx.Platform importiert werden. Für jeden Entitäts-Typ müssen von einem Datenlieferanten die beschriebenen Informationen bereitgestellt werden.

Stammdaten (Hotel, Unterkunft o.ä.) / Point Of Interest (POI)

  • Titel
  • Adressinformationen (PLZ, Ort)
  • optional: Beschreibungstext
  • optional: Geo-Informationen
  • optional für Stammdaten: Modul-Daten und Medien
  • optional: Typisierung (Spielstätte, Veranstalter)

Angebot

  • Titel
  • Preisinformationen (u.a. Preise von/bis/absolut; Preiseinheiten; kostenlos)
  • Verfügbarkeit (Datum von/bis)
  • optional: Beschreibungstext
  • optional: Modul-Daten und Medien

Veranstaltung

  • Titel
  • optional: Beschreibungstext
  • POI-Zuweisung (Spielstätte/Veranstalter); hier kann auch auf festgelegte, bereits existierende POIs zurückgegriffen werden („Fallback-POIs“)
  • Termin-Informationen
  • optional: Buchungsinformationen (global oder auf Termin-Basis)
  • optional: Mapping-Definitionen (Kategorien, Merkmale)
  • optional: Medien

Darüber hinaus gibt es noch weitere Datenfelder, die hier nicht aufgeführt sind und im Einzelfall analysiert und abgestimmt werden. Außerdem lassen sich auch einmalige Datenübernahmen von sogenannten „Basis-Entitäten“ umsetzen, wie Veranstaltungs-Kategorien, Betriebsarten, etc.

Im Idealfall wird vom Kunden in Zusammenarbeit mit dem Projektmanager bereits ein Feld-Mapping erstellt, welches als Arbeitsgrundlage für die technische Umsetzung der Datenübernahme dient.

Modul-Erweiterungen

Sowohl die Stammdaten als auch Veranstaltungen bieten die Möglichkeit von kundenspezifischen Erweiterungen (Module). Hier können je nach Anforderung und Datenlieferant spezialisierte Lösungen umgesetzt werden.

Mehrsprachigkeit

Werden über eine Datenquelle mehrsprachige Informationen geliefert (bspw. für Titel, Beschreibungstexte, o.ä.) so können diese je nach Setup der imx.Platform problemlos übernommen werden.

Import-Strategien

Es werden die folgenden Strategien für Datenimporte unterstützt:

  • nur neue Datensätze werden hinzugefügt, bestehende Datensätze bleiben unverändert
  • neue Datensätze werden hinzugefügt, bestehende Datensätze werden aktualisiert
  • neue Datensätze werden hinzugefügt, bestehende Datensätze werden aktualisiert, fehlende Datensätze einer Datenquelle werden deaktiviert. Hinweis: diese Import-Strategie ist nur dann sinnvoll, wenn eine Datenquelle immer ein vollständiges Set an Daten liefert!

Für die Aktualisierung von Datensätzen wird pro Daten-Importer definiert, welche Felder der zu aktualisierenden Entität vom Import überschrieben werden sollen und welche Felder unverändert bleiben. Es lassen sich bei Bedarf kundenspezifische Logiken umsetzen oder es kann Standard-Funktionalität genutzt werden. Die Definition von ausgewählten Feldern, deren Inhalte vom Import überschrieben werden, ist insbesondere dann sinnvoll, wenn von Kundenseite bei importierten Datensätzen Änderungen und/oder Anreicherungen stattfinden sollen.

Vollimport vs. Deltaimport

Um die Menge von Aktualisierungsoperationen zu minimieren und damit unnötige Datenbank-Updates zu vermeiden, gibt es die Möglichkeit, auf Basis eines Zeitstempels der letzten Änderungen eines Datensatzes an der Datenquelle (ChangeDate / lastModifiedDate) nur diejenigen Datensätze in der imx.Platform zu aktualisieren, die sich seit dem letzten Datenimport für einen gegebenen Datensatz geändert haben. Die Steuerung dieser Logik lässt sich mittels Konfigurations-Einstellungen umgehen, etwa wenn aus bestimmten Gründen nochmals ein Vollimport notwendig ist.

Standard-Datenimport

Sollte ein Datenlieferant keine verfügbare Schnittstelle vorliegen haben bzw. eine Neuentwicklung angestrebt werden, gibt es für den Import von Veranstaltungs- und POI-Daten (Spielstätte, Veranstalter) ein standardisiertes XML-Format, um Daten in die imx.Platform zu importieren. Mittels einer speziellen Administrations-Funktionalität in der imx.Platform können die sogenannten „Standard-Importer“ konfiguriert werden, für die Aktivierung muss lediglich für das jeweilige Kundenprojekt ein Cronjob eingerichtet werden.

Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


WJAX 2017: Web-APIs, einfach oder?

Autor: Regina Staller


Technologie


Wie im letzten Blog von mir erwähnt wurde, habe ich auf der diesjährigen WJAX einen Vortrag über den effektiven sowie effizienten client- und serverseitigen Umgang mit Web-APIs besucht. Gehalten wurde dieser Vortrag von Thilo Frotscher. Die wesentlichen Themen aus dieser Session möchte ich hier gerne noch einmal vorstellen. Besonders im Bereich IBE/Metasuche bin ich schon …


Beitrag lesen
20.
Nov.
2017

Styling von Checkboxen und Radiobuttons

Autor: Benjamin Hofmann


Technologie // User Experience & Design


Wieder einmal ein Linktipp: Customizing web forms with CSS3 and WebKit Leider funktionieren diese Styles, so wie sie im Artikel dargestellt werden, nur in WebKit-basierten Browsern, also im Safari, Chrome oder den Standard-Browsern von Android und iOS. Aber wenn diese Styles nicht angewandt werden können springt der jeweilige Browser auf die normale Darstellung zurück, wie …


Beitrag lesen
23.
Februar
2012

JavaScript, HTML5 & Angular Days 2016

Autor: Benedikt Keller


Technologie // Über den Tellerrand // User Experience & Design


Einige von uns Portalentwicklern waren im Oktober in Berlin auf den JavaScript, HTML5 & Angular Days 2016. Hier nachträglich noch kurz meine und Bennis Highlights: „Dem Benedikt seine Highlights“ CSS3 Flexbox Der Style „display: flex;“ ist ein unglaublich flexibles und simples Werkzeug, um Responsivität in die kleinsten Module zu bringen. Wo wir heute noch mit Style-Hacks arbeiten, …


Beitrag lesen
28.
Nov.
2016

Dev- Ops Camp Nürnberg

Autor: Sascha Nützel


Technologie


Nachdem ich ohnehin einen Teil meiner Wochenenden in Nürnberg verbringe, war ein Besuch des Dev- Ops Camp Nürnberg naheliegend. Das Camp war als „Unkonferenz“ organisiert, sodass Ablauf und Themen direkt vor Ort festgelegt wurden. Leider hatte ich an diesem Tag mehr als einmal die Qual der Wahl, da jeweils 4 Sessions gleichzeitig stattfanden. Da eigens …


Beitrag lesen
14.
Nov.
2016