DBeaver
 sql >> Datenbank >  >> Database Tools >> DBeaver

GeoArt mit SAP HANA und DBeaver

Ja, ich weiß, dass heute Freitag ist, aber ich kann es kaum erwarten, diese #GeospatialTuesday-Beiträge bis nächste Woche zu teilen! Ich bin so begeistert, nachdem ich Mathias Kemeters Good Things Come Together:DBeaver, SAP HANA Spatial &Beer gelesen habe.

Eine Minute der Schwäche…

Nicht nur Bier hat mich in seinem Post begeistert, sondern… Ja, ich kann bestätigen, dass München die deutsche Bierdestination ist. Ich war nur einmal in meinem Leben dort – um mich mit unserem Team (hier mit Thomas Grassl , Maximilian Streifeneder , Eshanno Byam, Myles Fenlon , Marius Obert und Kevin Muessig) im Sommer 2018 zu treffen…

…und bayerische Biere genießen?

…aber jetzt:zurück zur Sache

Was mich an dem, was Matthias mitteilte, wirklich begeisterte, war die integrierte Vorschau für räumliche Daten in DBeaver und die Tatsache, dass es jetzt auch SAP-HANA-Ergebnisse unterstützt!

Sie haben in meinen vorherigen Blogs gesehen, dass ich räumliche Ergebnisse aus HANA SQL kopieren und in externe Webvisualisierer einfügen oder sogar meine eigene Visualisierung mit ASCIIart schreiben musste.

Nicht mehr!

Ich brauchte nur wenige Minuten, um DBeaver zu installieren, es mit meiner SAP-HANA-Express-Instanz zu verbinden und erste Abfragen auszulösen, die sofort eine Vorschau der Ergebnisse in Form von räumlichen Visualisierungen oder auf der Karte anzeigten!

In meinem vorherigen Beitrag habe ich den Geodatensatz WORLD_BOARDERS geladen , also lass uns damit spielen, um etwas GeoArt zu machen.

WITH POINTS_GRID AS 
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
	series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
	b.ISO2 = 'UA'
AND point.st_within(shape)=1;

Wechseln Sie jetzt zur räumlichen Vorschau in DBeaver.

Lassen Sie mich nun das Spatial Reference System von Simple wechseln bis EPSG:4326 und … bumm!! Ich habe die Ergebnisvorschau auf der Karte!

Ich weiß nicht, ob Sie lesen können, wie aufgeregt ich bin! Und ich bin!! ICH BIN!!!

Lassen Sie uns einige neue raumbezogene SPS04-Funktionen von 2.0 verwenden

Im vorigen Beitrag habe ich bereits ein neues Hexagonal Grid Clustering verwendet. Lassen Sie es uns mit der obigen Abfrage kombinieren und Australien jetzt Tribut zollen.

--Honeycombs
WITH POINTS_GRID AS 
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
	series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT COUNT(*), ST_ClusterID(), ST_ClusterCell() as "Honeycomb"
	FROM (SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
	b.ISO2 = 'AU'
AND point.st_within(shape)=1)
GROUP CLUSTER BY point 
USING HEXAGON X CELLS 30;

Kombinieren wir es jetzt mit dem verbesserten ST_Buffer Methode, die die neue number_of_interpolation_points erhält Parameter in 2.0 SPS04.

Lassen Sie uns number_of_interpolation_points verwenden Parameter gleich 3 um eine aus Dreiecken bestehende Karte von Australien zu erhalten.

--Buffers
WITH POINTS_GRID AS 
(SELECT NEW st_point(glng.generated_period_start, glat.generated_period_start) AS point
FROM
	series_generate_decimal(0.3, -88, 88 + 0.3) AS glat
CROSS JOIN series_generate_decimal(0.3, -180, 180 + 0.3) AS glng)
SELECT ST_ClusterCell().ST_Centroid().ST_Buffer(0.4, 3) as "Buffer"
	FROM (SELECT point FROM POINTS_GRID g, TM.WORLD_BORDERS b
WHERE
	b.ISO2 = 'AU'
AND point.st_within(shape)=1)
GROUP CLUSTER BY point 
USING HEXAGON X CELLS 30;