DBeaver
 sql >> Base de données >  >> Database Tools >> DBeaver

GeoArt avec SAP HANA et DBeaver

Oui, je sais qu'aujourd'hui c'est vendredi, mais j'ai hâte d'être à la semaine prochaine pour partager ces articles du #GeospatialTuesday ! C'est à quel point je suis ravi après avoir lu Good Things Come Together de Mathias Kemeter :DBeaver, SAP HANA Spatial &Beer.

Une minute de faiblesse…

Ce n'était pas seulement la bière qui m'excitait dans son post, mais… Oui, je peux confirmer que Munich est la destination allemande pour une bière. Je n'y suis allé qu'une seule fois dans ma vie — pour rencontrer notre équipe (ici avec Thomas Grassl , Maximilian Streifeneder , Eshanno Byam, Myles Fenlon , Marius Obert et Kevin Muessig) à l'été 2018…

…et pour déguster des bières bavaroises ?

…mais maintenant :revenons à l'essentiel

Ce qui m'a vraiment exalté dans ce que Matthias a partagé, c'est l'aperçu intégré des données spatiales dans DBeaver et le fait qu'il prend désormais également en charge les résultats SAP HANA !

Vous avez vu dans mes blogs précédents que je devais copier les résultats spatiaux de HANA SQL et les coller dans des visualiseurs Web externes, ou même écrire ma propre visualisation en utilisant ASCIIart.

Plus maintenant !

Il ne m'a fallu que quelques minutes pour installer DBeaver, le connecter à mon instance SAP HANA Express et lancer les premières requêtes en prévisualisant immédiatement les résultats sous forme de visualisations spatiales ou sur la carte !

Dans mon post précédent, j'ai chargé l'ensemble de données spatiales WORLD_BOARDERS , alors jouons avec pour faire du GeoArt.

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;

Passons maintenant à l'aperçu spatial dans DBeaver.

Maintenant, laissez-moi changer le système de référence spatiale de Simple à EPSG:4326 et … boum !! J'ai eu l'aperçu du résultat sur la carte !

Je ne sais pas si vous pouvez lire à quel point je suis excité ! Et je suis!! JE SUIS!!!

Utilisons quelques nouvelles fonctionnalités géospatiales SPS04 de la version 2.0

Dans le post précédent, j'ai déjà utilisé un nouveau clustering de grille hexagonale. Combinons-la avec la requête ci-dessus et rendons hommage à l'Australie maintenant.

--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;

Maintenant, combinons-le avec le ST_Buffer amélioré méthode, qui obtient le nouveau number_of_interpolation_points paramètre dans 2.0 SPS04.

Utilisons number_of_interpolation_points paramètre égal à 3 pour obtenir une carte de l'Australie faite de triangles.

--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;