Dieses Beispiel wird als Demo in einer Sitzung INT105 – Build Data Pipelines with SAP Data Intelligence verwendet auf der SAP TechEd 2020. Sie sind herzlich eingeladen, an dieser Sitzung teilzunehmen und sich diese Demo anzusehen. Dies ist jedoch keine Voraussetzung, wenn Sie mit diesem Beitrag fortfahren möchten.
Im vorherigen Beitrag haben wir mit dem Aufbau einer Datenpipeline in SAP Data Intelligence zum Ingest begonnen Daten von einem API-Endpunkt und zu transformieren die Daten aus dem TLE-codierten Format in eine lesbare JSON-Nutzlast. Jetzt ist es an der Zeit zu laden diese Daten, und wir werden dafür SAP HANA Express Edition verwenden.
Ok, lass uns unsere Reise fortsetzen…
SAP-HANA-Verbindungskonfiguration hinzufügen
Gehen wir zur Connection Management-Anwendung in SAP Data Intelligence.
Im default
Mieter einer Testinstanz können Sie eine Verbindung HANA_LOCALHOST
herstellen unter anderen. Es könnte eine gute Option zum Spielen sein, wenn Sie Daten von SAP HANA innerhalb lesen/schreiben möchten Data Intelligence-Testinstanz. Aber in unserem Fall möchte ich auch von anderen externen Clients auf Daten in SAP HANA db zugreifen können.
Lassen Sie uns eine weitere Verbindung herstellen. Wie ich bereits erwähnt habe, wird es sich um eine Cloud-gehostete Instanz von SAP HANA Express Edition handeln. Ich werde es MyHXE_HXE_SYSTEM
nennen .
Sie können sehen, dass ich Use TLS
ändere Option an. Es ist besser, auf Nummer sicher zu gehen.
Verbindung testen war erfolgreich, also lassen Sie mich Erstellen diese Konfiguration.
Objekte im Metadaten-Explorer prüfen
Nachdem die Verbindung erstellt wurde, überprüfen wir sie in der Metadata Explorer-Anwendung. Wenn Sie mit dem Metadaten-Explorer nicht vertraut sind, würde ich empfehlen, zuerst die Tutorials zu lesen:
- Verwendung, Erkennung und Profilierung von Daten mit SAP Data Intelligence, Testversion
Gehen Sie in der Anwendung zu Katalog> Verbindungen durchsuchen…
… und dann zu unserer Verbindung (in meinem Fall ist es MyHXE_HXE_SYSTEM
) und zum SYSTEM
Schema. In meinem System ist es momentan leer.
SAP HANA-Operator zur Datenpipeline hinzufügen
Zurück zur Modeler-Anwendung und unserem im vorherigen Beitrag erstellten Diagramm fügen wir der Datenpipeline einen SAP-HANA-Client-Operator hinzu.
Verbinden Sie den out
des letzten Abhörgeräts Port zu den data
des HANA-Clients Hafen.
Lassen Sie uns den Operator konfigurieren, indem Sie die folgenden Parameter definieren:
- Name:
ISS locs to SAP HANA
- Verbindung:
MyHXE_HXE_SYSTEM
aus dem Verbindungsmanager - Tabellenname:
"ISS_TRACK"
- Tabellenspalten:
[{"name":"TSTMP","type":"SECONDDATE"},{"name":"LAT","type":"DOUBLE"},{"name":"LON","type":"DOUBLE"},{"name":"ALT","type":"INTEGER"}]
- Eingabeformat:JSON
- Einfügemodus:INSERT
- Tabelleninitialisierung:Erstellen
- Dezimalausgabe:Fließkomma
- Bei Fehler beenden:False
Die JSON-Konfiguration der Tabellenspalten sollte es uns ermöglichen, eine schöne Formularansicht zu sehen, wenn sie in der Vorschau der Tabellendetails geöffnet wird.
Sobald diese zusätzliche Konfiguration abgeschlossen ist, ist es an der Zeit, das Diagramm zu speichern und auszuführen.
Und sobald es läuft…
Prüfen Sie den ISS_TRACK
-Objekt im Metadaten-Explorer
Gehen Sie zurück zum Metadaten-Explorer. Aktualisieren Sie bei Bedarf den Bildschirm, um Änderungen im SYSTEM
zu sehen Schema von MyHXE_HXE_SYSTEM
Verbindung.
Sie sollten ISS_TRACK
sehen Objekt vom Typ „Tabelle“ dort.
Gehen Sie zum Fact Sheet dieses Objekts und wechseln Sie in die Datenvorschauansicht. Sie sollten Daten sehen, die vom laufenden Diagramm eingefügt wurden.
Lassen Sie das Diagramm mindestens 10 Minuten lang laufen, um einige Daten zu sammeln.
Exploration von Daten in SAP HANA
Sobald mindestens 10 Minuten lang Daten gesammelt wurden, können wir die Ausführung des Diagramms stoppen und mit der Untersuchung von Daten in SAP HANA fortfahren.
Wenn Sie meine vorherigen Posts verfolgt haben, dann wissen Sie, dass ich dank Mathias Kemeter den DBeaver-Datenbankmanager dank seiner netten integrierten Visualisierung räumlicher Daten gerne verwende.
Schauen wir uns an, welchen Weg die ISS genommen hat, während ich eine Grafik zum Sammeln der Daten ausgeführt habe.
SELECT UTCTOLOCAL("TSTMP") AS "TSTMP", "LON", "LAT", "ALT",
SECONDS_BETWEEN (UTCTOLOCAL("TSTMP"), NOW()) AS "Sec_Ago",
NEW ST_POINT('Point Z('||"LON"||' '||"LAT"||' '||"ALT"||')',4326) AS "Loc3D"
FROM "ISS_TRACK";
Berechnen wir die „Bodengeschwindigkeit“ des Satelliten – als ob er sich auf der Erdoberfläche bewegen würde – zum letzten aufgezeichneten Zeitstempel.
SELECT TOP 1
UTCTOLOCAL ("TSTMP", 'CET') as TIMECET,
ROUND(IFNULL(NEW ST_Point('POINT ('||"LON"||' '||"LAT"||')', 4326).ST_Distance
(NEW ST_Point('POINT ('||LAG("LON", 1, "LON") OVER (ORDER BY "TSTMP")||' '||LAG("LAT", 1, "LAT") OVER (ORDER BY "TSTMP")||')', 4326), 'kilometer')/
SECONDS_BETWEEN (LAG("TSTMP", 1) OVER (ORDER BY "TSTMP"),"TSTMP"), 0), 2) AS "KMpS"
FROM
(SELECT TOP 2
UTCTOLOCAL("TSTMP") AS "TSTMP", "LON", "LAT", "ALT",
SECONDS_BETWEEN (UTCTOLOCAL("TSTMP"), NOW()) AS "Sec_Ago",
NEW ST_POINT('Point Z('||"LON"||' '||"LAT"||' '||"ALT"||')',4326) AS "Loc3D"
FROM "SYSTEM"."ISS_TRACK"
ORDER BY "TSTMP" DESC)
ORDER BY "TSTMP" DESC
6,33 Kilometer pro Sekunde. Ohne einen Strafzettel zu bekommen!