Tento příklad je použit jako ukázka v relaci INT105 – Build Data Pipelines with SAP Data Intelligence na SAP TechEd 2020. Jste více než vítáni, abyste se připojili k této relaci a podívali se na ukázku. Ale není to podmínkou, pokud chcete pokračovat v tomto příspěvku.
V předchozím příspěvku jsme začali budovat datový kanál v SAP Data Intelligence k ingestu data z koncového bodu API a k transformaci data z formátu kódovaného TLE do čitelné užitečné zátěže JSON. Nyní je čas načíst tato data a my k tomu použijeme SAP HANA, expresní edici.
Dobře, pokračujme v naší cestě…
Přidat konfiguraci připojení SAP HANA
Pojďme do aplikace Connection Management v SAP Data Intelligence.
Ve default
nájemcem zkušební instance se můžete připojit HANA_LOCALHOST
mezi ostatními. Pokud chcete číst/zapisovat data ze SAP HANA z uvnitř, může to být dobrá možnost na hraní Zkušební instance Data Intelligence. Ale v našem případě chci mít přístup k datům v SAP HANA db také od jiných externích klientů.
Vytvořme další spojení. Jak jsem již zmínil, bude to cloudová instance SAP HANA, expresní edice. Budu to nazývat MyHXE_HXE_SYSTEM
.
Můžete vidět, že přecházím na Use TLS
možnost zapnuta. Je lepší být v bezpečí, než se omlouvat.
Test připojení bylo úspěšné, dovolte mi Vytvořit tuto konfiguraci.
Zkontrolujte objekty v Průzkumníku metadat
Nyní, když je připojení vytvořeno, zkontrolujeme jej v aplikaci Metadata Explorer. Pokud nejste obeznámeni s Průzkumníkem metadat, doporučuji nejprve zkontrolovat tutoriály:
- Používejte, objevujte a profilujte data pomocí SAP Data Intelligence, zkušební verze
V aplikaci přejděte na Katalog> Procházet připojení…
… a poté k našemu připojení (v mém případě je to MyHXE_HXE_SYSTEM
) a do SYSTEM
schéma. V mém systému je prozatím prázdný.
Přidat operátor SAP HANA do datového kanálu
Zpět k aplikaci Modeler a našemu grafu vytvořenému v předchozím příspěvku přidejte do datového kanálu operátora SAP HANA Client.
Připojte out
posledního Wiretapu port na data
klienta HANA port.
Pojďme nakonfigurovat operátora definováním následujících parametrů:
- Název:
ISS locs to SAP HANA
- Připojení:
MyHXE_HXE_SYSTEM
ze Správce připojení - Název tabulky:
"ISS_TRACK"
- Sloupce tabulky:
[{"name":"TSTMP","type":"SECONDDATE"},{"name":"LAT","type":"DOUBLE"},{"name":"LON","type":"DOUBLE"},{"name":"ALT","type":"INTEGER"}]
- Vstupní formát:JSON
- Režim vkládání:INSERT
- Inicializace tabulky:Vytvořit
- Desetinný výstup:Plovoucí desetinná čárka
- Ukončit při chybě:False
Konfigurace JSON sloupců tabulky by nám měla umožnit pěkné zobrazení formuláře, když je otevřete v náhledu podrobností tabulky.
Jakmile je tato dodatečná konfigurace dokončena, je čas uložit a spustit graf.
A jakmile to běží…
Zkontrolujte ISS_TRACK
objekt v Průzkumníku metadat
Vraťte se do Průzkumníka metadat. V případě potřeby obnovte obrazovku, abyste viděli změny v SYSTEM
schéma MyHXE_HXE_SYSTEM
připojení.
Měli byste vidět ISS_TRACK
objekt typu „Tabulka“.
Přejděte na Informační list tohoto objektu a přepněte do zobrazení Náhled dat. Měli byste vidět data vložená běžícím grafem.
Nechte graf běžet alespoň 10 minut, aby se shromáždila nějaká data.
Průzkum dat v SAP HANA
Jakmile shromáždíme alespoň 10 minut dat, můžeme zastavit provádění grafu a přejít k průzkumu dat v SAP HANA.
Pokud jste sledovali mé předchozí příspěvky, pak víte, že díky Mathiasi Kemeterovi rád používám databázový manažer DBeaver díky jeho pěkné vestavěné vizualizaci prostorových dat.
Pojďme se podívat, jakou cestu ISS udělala, když jsem spouštěl graf shromažďující data.
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";
Vypočítejme „pozemní rychlost“ družice – jako by se pohybovala na povrchu Země – v posledním zaznamenaném časovém razítku.
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 kilometrů za sekundu. Aniž byste dostali pokutu za překročení rychlosti!