Eines der interessantesten Elemente des letzten IBM i Technology Refresh ist das Hinzufügen von Watson-basierten Geodaten Funktionen zur Db2 for i Datenbank. Mit diesen Funktionen wird es nun einfacher und leichter, diese in IBM i-Anwendungen zu implementieren.
Diese Funktionen stehen nun auch in IBM i ACS zur Verfügung. Seit der Version 1.1.9.2 gibt es im Feature Run SQL Scripts eine neue Kategorie Geospatial Analytics.
Die neue Kategorie Geospatial Analytics
Das Tool SQL-Scripts ausführen enthält ein Feature Aus Beispielen einfügen. Mit der Version 1.1.9.2 von IBM i ACS wurde dieses Feature um eine neue Kategorie Geospatial Analytics ergänzt.
Geospatial Analytics
Die Db2 for IBM i-Datenbank unterstützt Geodaten und Funktionen. Die georäumlichen Funktionen mit IBM Watson fügen branchenführende Technologie in Form von Geospatial Analytics in Db2 for i hinzu. Geospatial Analytics ist in Db2 for i integriert. Diese Analysefunktionen umfassen die projektionsfreie ellipsoidale Unterstützung und native Geohashs, sodass Sie SQL verwenden können, um die Geotechnologie von Watson zu nutzen.
Geospatial Analytics kann verwendet werden, um Geodaten zu geografischen Objekten zu generieren und zu analysieren und um die Daten zu speichern und zu verwalten, auf denen diese Informationen basieren. Ein geografisches Objekt ist alles in der realen Welt, das einen identifizierbaren Standort hat. Beispiele für Features:
- Ein Objekt, wie z. B. ein Fluss, Wald oder Gebirgszug.
- Ein Bereich wie eine Sicherheitszone um einen gefährlichen Standort oder den Marketingbereich, der von einem bestimmten Unternehmen bedient wird.
- Die Position eines Ereignisses, z. B. ein Autounfall an einer bestimmten Kreuzung oder eine Verkaufstransaktion in einer bestimmten Filiale.
Geodaten beziehen sich auf Fakten und Zahlen zu den Standorten geografischer Objekte, die die Datenbank ihren Benutzern zur Verfügung stellt. Beispiele für Geoinformationen sind:
- Lokationen auf einer Landkarte wie Städte mit der Angabe von Längen- und Breitengrad
- Die Position geografischer Objekte zueinander, z. B. die Position aller Krankenhäuser und Kliniken in einer Stadt oder die Nähe von Stadtbewohnern zu einer bestimmten Erdbebenzone.
- Die Art und Weise, in der geografische Objekte zueinander in Beziehung stehen, z. B. die Information, dass eine bestimmte Wasserscheide oder Brücke in einer bestimmten Region enthalten ist.
- Messungen, die sich auf ein oder mehrere geografische Objekte beziehen, z. B. die Entfernung zwischen einem Bürogebäude und seiner Grundstücklinie oder die Länge des Umfangs eines Naturschutzgebietes.
Geografisch-räumliche Informationen allein oder in Kombination mit traditionellen relationalen Daten können Institutionen und Unternehmen dabei unterstützen, Entscheidungen zu treffen, z. B. indem sie Bereiche für die Erbringung von Dienstleistungen auswählen oder die Standorte möglicher Märkte bestimmen.
Beispiel: Angenommen, der Eigner einer Restaurantkette möchte neue Restaurants in nahe gelegenen Städten öffnen und muss Antworten auf folgende Fragen geben: Wo in diesen Städten gibt es Konzentrationen von Personen, die in der Regel Restaurants wie meine besuchen? Wo liegen die wichtigen Zufahrtsstraßen? Wo befinden sich konkurrierende Restaurants? Die Analyse von Geodaten kann Ihnen dabei helfen, diese Fragen zu beantworten.
Geospatial Functions
Der Kern von Geospatial Analytics sind die Skalarfunktionen und Tabellenfunktionen, die als Teil von Db2 for i bereitgestellt werden.
Die georäumlichen Funktionen lassen sich in folgende Kategorien unterteilen:
- Erstellung von Geometrien aus Datenaustauschformaten oder Koordinatendaten
- Umwandlung einer Geometrie in ein Datenaustauschformat
- Vergleich von Geometrien und Erkennung von Beziehungen zwischen Geometrien
- Konstruktion neuer Geometrien aus vorhandenen Geometrien
- Informationen zu Geometrien
- Erstellung von Geohashes
Beispiel mit Funktion ST_DISTANCE
Zur besseren Veranschaulichung und zum besseren Verständnis zeige ich hier ein Beispiel.
In diesem Beispiel wird die Funktion ST_DISTANCE verwendet, um die Entfernung von einem Ausgangspunkt zu verschiedenen Sehenswürdigkeiten in New York zur ermitteln. Hier ist das komplette SQL-Script, das aus den Beispielen übernommen und etwas modifiziert wurde:
/*--------------------------------------------------------------------------------------*/
-- category: Geospatial Analytics
-- description: ST_Distance
-- minvrm: v7r4m0
/*--------------------------------------------------------------------------------------*/
-- Create a table with a point column and insert into it different geometries
-- that represent points of interest in New York City
CREATE TABLE qtemp.sample_points(location_name VARCHAR(50), location_point QSYS2.ST_POINT);
INSERT INTO qtemp.sample_points VALUES
('Empire State Building', QSYS2.ST_POINT(-73.9854, 40.7488)),
('Chrysler Building', QSYS2.ST_POINT(-73.9755, 40.7516)),
('Rockefeller Center', QSYS2.ST_POINT(-73.9787, 40.7587));
-- Create a table with a polygon column and insert several example polygons that define the boundaries of different parks in New York City
CREATE TABLE qtemp.sample_parks (park_name VARCHAR(50), park_geometry QSYS2.ST_POLYGON);
INSERT INTO qtemp.sample_parks (park_name, park_geometry) VALUES
('Central Park', QSYS2.ST_POLYGON('polygon((-73.9817 40.7682, -73.9581 40.8005, -73.9495 40.7968, -73.9732 40.7644, -73.9817 40.7682))')),
('Washington Square Park', QSYS2.ST_POLYGON('polygon((-73.9995 40.7310, -73.9986 40.7321, -73.9957 40.7307, -73.9966 40.7297, -73.9995 40.7310))'));
-- Find the distance from Washington Square Park to different points of interest in New York City
SELECT 'Washington Square Park' as "Ausgangspunkt", location_name, QSYS2.ST_DISTANCE(location_point, park_geometry) as distance_meters
FROM qtemp.sample_points, qtemp.sample_parks
WHERE park_name = 'Washington Square Park';
-- Find the distance from Central Park to different points of interest in New York City
SELECT 'Central Park' as "Ausgangspunkt", location_name, dec(QSYS2.ST_DISTANCE(location_point, park_geometry), 6,2) as distance_meters
FROM qtemp.sample_points, qtemp.sample_parks
WHERE park_name = 'Central Park';
STOP;
/*--------------------------------------------------------------------------------------*/
SQL-Script 01: Verwendung der Funktion ST_DISTANCE
Die beiden Select-Anweisungen liefern die folgenden Ergebnisse:
Vorschau:
Im nächsten Artikel werde ich weitere Features von IBM i ACS beschreiben.
Bis dahin wünsche ich Ihnen weiterhin viel Spaß beim Vermehren Ihrer Fertigkeiten.
Den Autor Theo Bär erreichen Sie unter:
EDV-Beratung Theo Bär
Ringmauerweg 1
69250 Schönau
Tel.: (+49) 6228 912 630
E-Mail: info@edv-baer.com
Für 88 Euro gibt’s hier sechs Monate lang tiefgreifendes IBM i und SQL Wissen. Hier kann man abonnieren.