Dit voorbeeld wordt gebruikt als demo in een sessie INT105 – Build Data Pipelines met SAP Data Intelligence op SAP TechEd 2020. Je bent van harte welkom om deze sessie bij te wonen en de demo te bekijken. Maar het is geen vereiste als je door wilt gaan met dit bericht.
In de vorige post zijn we begonnen met het bouwen van een datapijplijn in SAP Data Intelligence om op te nemen gegevens van een API-eindpunt en om te transformeren de gegevens van het TLE-gecodeerde formaat naar een leesbare JSON-payload. Nu is het tijd om te laden deze gegevens, en daarvoor gebruiken we SAP HANA, express edition.
Oké, laten we onze reis voortzetten...
SAP HANA-verbindingsconfiguratie toevoegen
Laten we naar de applicatie Verbindingsbeheer gaan in SAP Data Intelligence.
In de default
tenant van een proefinstantie kunt u een verbinding maken HANA_LOCALHOST
onder andere. Het is misschien een goede optie om mee te spelen als je gegevens uit SAP HANA wilt lezen/schrijven van binnen Proefversie van Data Intelligence. Maar in ons geval wil ik ook toegang hebben tot gegevens in SAP HANA db van andere externe clients.
Laten we een andere verbinding maken. Zoals ik al zei, wordt het een door de cloud gehost exemplaar van SAP HANA, express-editie. Ik noem het MyHXE_HXE_SYSTEM
.
Je ziet misschien dat ik Use TLS
aan het veranderen ben optie aan. Het is beter om veilig te zijn dan sorry.
Verbinding testen was succesvol, dus laat me Maken deze configuratie.
Controleer objecten in de Metadata Explorer
Nu de verbinding tot stand is gebracht, gaan we deze controleren in de Metadata Explorer-toepassing. Als u niet bekend bent met de Metadata Explorer, raad ik u aan eerst de tutorials te bekijken:
- Gebruik, ontdek en profileer gegevens met SAP Data Intelligence, proefversie
Ga in de applicatie naar Catalogus> Browse Connections…
… en dan naar onze verbinding (in mijn geval is dat MyHXE_HXE_SYSTEM
) en naar het SYSTEM
schema. In mijn systeem is het momenteel leeg.
SAP HANA-operator toevoegen aan de gegevenspijplijn
Terug naar de Modeler-applicatie en onze grafiek die in het vorige bericht is gemaakt, laten we een SAP HANA Client-operator toevoegen aan de gegevenspijplijn.
Sluit de out
van de laatste Wiretap aan poort naar HANA Client's data
poort.
Laten we de operator configureren door de volgende parameters te definiëren:
- Naam:
ISS locs to SAP HANA
- Verbinding:
MyHXE_HXE_SYSTEM
van de Verbindingsmanager - Tabelnaam:
"ISS_TRACK"
- Tabelkolommen:
[{"name":"TSTMP","type":"SECONDDATE"},{"name":"LAT","type":"DOUBLE"},{"name":"LON","type":"DOUBLE"},{"name":"ALT","type":"INTEGER"}]
- Invoerformaat:JSON
- Invoegmodus:INSERT
- Tabelinitialisatie:Maken
- Decimale uitvoer:Drijvende komma
- Beëindigen bij fout:False
De JSON-configuratie van tabelkolommen zou ons in staat moeten stellen een mooie formulierweergave te zien, wanneer deze wordt geopend in het voorbeeld van Tabeldetails.
Zodra deze aanvullende configuratie is voltooid, is het tijd om de grafiek op te slaan en uit te voeren.
En als het eenmaal draait...
Controleer de ISS_TRACK
object in de Metadata Explorer
Ga terug naar de Metadata Explorer. Vernieuw indien nodig het scherm om wijzigingen in het SYSTEM
te zien schema van MyHXE_HXE_SYSTEM
verbinding.
Je zou ISS_TRACK
. moeten zien object van het type "Tabel" daar.
Ga naar de Factsheet van dit object en schakel over naar Data Preview-weergave. U zou gegevens moeten zien die zijn ingevoegd door de lopende grafiek.
Laat de grafiek minstens 10 minuten lopen om wat gegevens te verzamelen.
Verkenning van gegevens in SAP HANA
Zodra er ten minste 10 minuten aan gegevens zijn verzameld, kunnen we de uitvoering van de grafiek stoppen en overgaan op het verkennen van gegevens in SAP HANA.
Als je mijn eerdere berichten hebt gevolgd, dan weet je dat ik dankzij Mathias Kemeter graag DBeaver databasemanager gebruik dankzij de mooie ingebouwde visualisatie van ruimtelijke gegevens.
Laten we eens kijken welk pad het ISS heeft gemaakt terwijl ik een grafiek aan het maken was om de gegevens te verzamelen.
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";
Laten we de 'grondsnelheid' van de satelliet berekenen — alsof deze zich naar het aardoppervlak bewoog — op het laatst geregistreerde tijdstempel.
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 per seconde. Zonder een snelheidsboete te krijgen!