

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Geodaten abfragen
<a name="querying-geospatial-data"></a>

Koordinatenbasierte Daten enthalten Kennungen, die eine geografische Position für ein Objekt angeben. Zu den Beispielen für diese Art von Daten zählen Wetterberichte, Wegbeschreibungen, Tweets mit geografischen Positionen, Filialstandorte und Flugrouten. Koordinatenbasierte Daten spielen eine wichtige Rolle bei Geschäftsanalysen, der Berichterstattung und bei Vorhersagen.

Geografische Kennungen, wie z. B. Längen- und Breitengrade, ermöglichen das Umwandeln von Postanschriften in geografische Koordinaten.

## Was ist eine koordinatenbasierte Abfrage?
<a name="geospatial-query-what-is"></a>

Koordinatenbasierte Abfragen sind spezielle SQL-Abfragen, die in Athena unterstützt werden. Sie unterscheiden sich von nicht koordinatenbezogenen SQL-Abfragen wie folgt:
+ Verwendung der folgenden spezialisierten Geometrie-Datentypen: `point``line`, `multiline`, `polygon` und `multipolygon`.
+ Angeben von Beziehungen zwischen Geometrie-Datentypen wie `distance`, `equals`, `crosses`, `touches`, `overlaps`, `disjoint` und anderen.

Mit koordinatenbasierten Abfragen in Athena können Sie diese und ähnliche Operationen ausführen:
+ Ermitteln Sie den Abstand zwischen zwei Punkten.
+ Überprüfen Sie, ob ein Bereich (Polygon) ein weiteres enthält.
+ Feststellen, ob eine Linie eine andere oder ein Polygon berührt oder schneidet.

Um beispielsweise einen Geometriedatentyp `point` aus Werten des Typs `double` für die geografischen Koordinaten des Mount Rainier in Athena zu erhalten, verwenden Sie die Geodatenfunktion `ST_Point (longitude, latitude)` wie im folgenden Beispiel. 

```
ST_Point(-121.7602, 46.8527)
```

## Eingabedatenformate und Geometrie-Datentypen
<a name="geospatial-input-data-formats-supported-geometry-types"></a>

Um Geodatenfunktionen in Athena zu verwenden, geben Sie Ihre Daten im WKT-Format ein oder verwenden Sie Hive-JSON. SerDe Sie können auch die in Athena unterstützten Geometrie-Datentypen nutzen.

### Eingabedatenformate
<a name="input-data-formats"></a>

Zur Verarbeitung von koordinatenbasierten Abfragen unterstützt Athena Eingabedaten in diesen Datenformaten:
+  **WKT (Well-known Text)**. In Athena wird WKT als `varchar(x)`- oder `string`-Datentyp dargestellt.
+  **JSON-kodierte koordinatenbasierte Daten**. [Um JSON-Dateien mit Geodaten zu analysieren und Tabellen für sie zu erstellen, verwendet Athena Hive-JSON. SerDe](https://github.com/Esri/spatial-framework-for-hadoop/wiki/Hive-JSON-SerDe) Weitere Hinweise zur Verwendung SerDe in Athena finden Sie unter[SerDe JSON-Bibliotheken](json-serde.md).

### Geometrie-Datentypen
<a name="geometry-data-types"></a>

Zur Verarbeitung von koordinatenbasierten Abfragen unterstützt Athena diese speziellen Geometrie-Datentypen:
+  `point` 
+  `line` 
+  `polygon` 
+  `multiline` 
+  `multipolygon` 

## Unterstützte koordinatenbasierte Funktionen
<a name="geospatial-functions-list"></a>

Weitere Informationen zu den Geodatenfunktionen in Athena-Engine-Version 3 finden Sie unter [Geodatenfunktionen](https://trino.io/docs/current/functions/geospatial.html) in der Trino-Dokumentation.

# Beispiele: Koordinatenbasierte Abfragen
<a name="geospatial-example-queries"></a>

Die Beispiele in diesem Thema erstellen zwei Tabellen aus Beispieldaten, die auf verfügbar sind, GitHub und fragen die Tabellen auf der Grundlage der Daten ab. Die Beispieldaten, die nur zu Illustrationszwecken dienen und nicht garantiert korrekt sind, befinden sich in den folgenden Dateien:
+ **[https://github.com/Esri/gis-tools-for-hadoop/blob/master/samples/data/earthquake-data/earthquakes.csv](https://github.com/Esri/gis-tools-for-hadoop/blob/master/samples/data/earthquake-data/earthquakes.csv)** – Führt Erdbeben auf, die sich in Kalifornien ereignet haben. In der `earthquakes`-Beispieltabelle werden Felder aus diesen Daten verwendet.
+ **[https://github.com/Esri/gis-tools-for-hadoop/blob/master/samples/data/counties-data/california-counties.json](https://github.com/Esri/gis-tools-for-hadoop/blob/master/samples/data/counties-data/california-counties.json)** – Führt Daten auf Landkreisebene für den Bundesstaat Kalifornien im [ESRI-gemäßen GeoJSON-Format](https://doc.arcgis.com/en/arcgis-online/reference/geojson.htm) auf. Die Daten beinhalten zahlreiche Felder wie `AREA`, `PERIMETER`, `STATE`, `COUNTY` und `NAME`, aber die `counties`-Beispieltabelle verwendet nur zwei: `Name` (Zeichenfolge) und `BoundaryShape` (binär). 
**Anmerkung**  
Athena verwendet die `com.esri.json.hadoop.EnclosedEsriJsonInputFormat`, um die JSON-Daten in das koordinatenbasierte Binärformat zu konvertieren.

Mit dem folgenden Code-Beispiel wird eine Tabelle namens `earthquakes` erstellt:

```
CREATE external TABLE earthquakes
(
 earthquake_date string,
 latitude double,
 longitude double,
 depth double,
 magnitude double,
 magtype string,
 mbstations string,
 gap string,
 distance string,
 rms string,
 source string,
 eventid string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/my-query-log/csv/';
```

Mit dem folgenden Code-Beispiel wird eine Tabelle namens `counties` erstellt:

```
CREATE external TABLE IF NOT EXISTS counties
 (
 Name string,
 BoundaryShape binary
 )
ROW FORMAT SERDE 'com.esri.hadoop.hive.serde.EsriJsonSerDe'
STORED AS INPUTFORMAT 'com.esri.json.hadoop.EnclosedEsriJsonInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://amzn-s3-demo-bucket/my-query-log/json/';
```

Die folgende Beispielabfrage verwendet die Funktion `CROSS JOIN` für die `counties`- und `earthquake`-Tabellen. Im Beispiel wird `ST_CONTAINS` verwendet, um nach Landkreisen abzufragen, deren Grenzen Erdbebenstandorte enthalten, die mit `ST_POINT` angegeben sind. Die Abfrage gruppiert solche Landkreise nach Namen, ordnet sie nach Anzahl und gibt sie in absteigender Reihenfolge zurück.

```
SELECT counties.name,
        COUNT(*) cnt
FROM counties
CROSS JOIN earthquakes
WHERE ST_CONTAINS (ST_GeomFromLegacyBinary(counties.boundaryshape), ST_POINT(earthquakes.longitude, earthquakes.latitude))
GROUP BY  counties.name
ORDER BY  cnt DESC
```

Diese Abfrage gibt Folgendes zurück:

```
+------------------------+
| name             | cnt |
+------------------------+
| Kern             | 36  |
+------------------------+
| San Bernardino   | 35  |
+------------------------+
| Imperial         | 28  |
+------------------------+
| Inyo             | 20  |
+------------------------+
| Los Angeles      | 18  |
+------------------------+
| Riverside        | 14  |
+------------------------+
| Monterey         | 14  |
+------------------------+
| Santa Clara      | 12  |
+------------------------+
| San Benito       | 11  |
+------------------------+
| Fresno           | 11  |
+------------------------+
| San Diego        | 7   |
+------------------------+
| Santa Cruz       | 5   |
+------------------------+
| Ventura          | 3   |
+------------------------+
| San Luis Obispo  | 3   |
+------------------------+
| Orange           | 2   |
+------------------------+
| San Mateo        | 1   |
+------------------------+
```

## Weitere Ressourcen
<a name="geospatial-example-queries-additional-resources"></a>

Weitere Beispiele für koordinatenbasierte Abfragen finden Sie in den folgenden Blogbeiträgen:
+ [Erweitern Sie Geodatenabfragen in Amazon Athena mit und UDFs AWS Lambda](https://aws.amazon.com/blogs/big-data/extend-geospatial-queries-in-amazon-athena-with-udfs-and-aws-lambda/) 
+ [Visualisieren Sie globale Klimadaten aus über 200 Jahren mit Amazon Athena und Amazon Quick](https://aws.amazon.com/blogs/big-data/visualize-over-200-years-of-global-climate-data-using-amazon-athena-and-amazon-quicksight/).
+ [Abfragen OpenStreetMap mit Amazon Athena](https://aws.amazon.com/blogs/big-data/querying-openstreetmap-with-amazon-athena/)