In den beiden vorherigen Teilen dieses Blogs habe ich beschrieben, wie die Fischertechnik-Fabriksimulation Daten in Form eines CSV-Files erzeugt und wie diese Daten in das Hadoop Cluster gelangen und dort sogar als Tabelle zur Verfügung stehen. In diesem Teil geht es nun um die verschiedenen Möglichkeiten, wie nun über den Inhalt dieser Tabelle berichtet werden kann.
Es gibt zwei relativ einfache Möglichkeiten, wie die Daten dieser Hadoop-Tabelle für SAP Tools zur Verfügung gestellt werden können:
1. In einer HANA-Datenbank via SDA (Smart Data Access) bzw. SDI (Smart Data Integration). Die Daten können dann z.B. in einer SAP Analytics for Cloud konsumiert werden (hierzu ist dann kein SAP BW-System nötig) oder in einem SAP BW-System konsumiert werden.
2. Mit Hilfe der Middleware GLUE unserer Partnerfirma Datavard ist es sehr einfach, mit ABAP-Transaktionen Tabellen in Hadoop zu erzeugen, sie auszulesen oder Inhalte zwischen in Hadoop liegenden Tabellen und ABAP-Tabellen hin- oder herzuschieben. Dazu ist nicht zwingend eine HANA-Datenbank nötig, aber ein ABAP-Application Server. Ich möchte beide Möglichkeiten hier vorstellen.
SDA/SDI
SDA/SDI SDA bzw. SDI sind von der SAP ausgelieferte Konnektor-Bibliotheken. Sie ermöglichen, eine remote-Datenbank anzuschliessen und zu den Tabellen dieser remote Datenbank virtuelle Links zu generieren. Auf diese virtuellen Links kann dann zugegriffen werden, als würde es sich um lokale Tabellen in der HANA Datenbank handeln. Die SDI-Adapter sind dabei technologisch weiter fortentwickelt und verfügen über zusätzliche Fähigkeiten im Vergleich zu den SDA-Adaptern. Z.T. sind sie z.B. fähig, nur die Delta-Änderungen zu extrahieren, indem sie nicht die Tabellen, sondern die Changelogs auswerten. Ob und über welche Fähigkeiten die Adapter verfügen, muss man im Einzelfalle prüfen, z.B. im Hadoop-Fall verfügen die Adapter über diese Delta-Fähigkeit nicht. Des Weiteren sind die SDI-Adapter im Gegensatz zu SDA zusätzlich kostenpflichtig.
Wir haben unsere HANA-Datenbank (HA4) zu Testzwecken sogar mit zwei verschiedenen SDI-Adapter angeschlossen, einmal über den SDI-HiveAdapter:
und einmal über den SDI-ImpalaAdapter:
Damit ist kann man nun leicht virtuelle Tabellenlinks (hier im Schema DATA_EXTERN) anlegen, mit deren Hilfe auf die Originaltabelle zugegriffen werden kann.
Dies funktioniert auch ganz wunderbar, wie z.B. folgende Abfrage zeigt: