Abfragen von Daten in DynamoDB - Amazon-DynamoDB

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.

Abfragen von Daten in DynamoDB

Die folgenden Beispiele zeigen einige Möglichkeiten zur Verwendung von HiveQL zum Abfragen von Daten in DynamoDB.

Diese Beispiele beziehen sich auf die Tabelle ddb_features im Tutorial (Schritt 5: Kopieren von Daten nach DynamoDB ).

Verwenden von Aggregatfunktionen

HiveQL bietet integrierte Funktionen für die Zusammenfassung von Datenwerten. Sie können z. B. die Funktion MAX verwenden, um den größten Wert für eine ausgewählte Spalte zu finden. Das folgende Beispiel gibt die Erhöhung des höchsten Merkmals im Bundesstaat Colorado zurück.

SELECT MAX(elev_in_ft) FROM ddb_features WHERE state_alpha = 'CO';

Verwenden der GROUP BY- und HAVING-Klauseln

Sie können die GROUP BY-Klausel zum Sammeln von Daten über mehrere Datensätze hinweg verwenden. Diese Klausel wird häufig in Verbindung mit einer aggregierten Funktion wie SUM, COUNT, MIN oder MAX eingesetzt. Sie können mithilfe der HAVING-Klausel auch Ergebnisse verwerfen, die bestimmte Kriterien nicht erfüllen.

Das folgende Beispiel gibt eine Liste der höchsten Erhebungen aus Bundesstaaten mit mehr als fünf Merkmalen in der Tabelle ddb_features zurück.

SELECT state_alpha, max(elev_in_ft) FROM ddb_features GROUP BY state_alpha HAVING count(*) >= 5;

Verknüpfen von zwei DynamoDB-Tabellen

Das folgende Beispiel zeigt, wie eine Hive-Tabelle (east_coast_states) einer Tabelle in DynamoDB zugeordnet wird. Die SELECT-Anweisung ist ein Join dieser beiden Tabellen. Der Join wird auf dem Cluster verarbeitet und zurückgegeben. Der Join wird nicht in DynamoDB ausgeführt.

Stellen Sie sich eine DynamoDB-Tabelle mit dem Namen vor EastCoastStates , die die folgenden Daten enthält:

StateName StateAbbrev Maine ME New Hampshire NH Massachusetts MA Rhode Island RI Connecticut CT New York NY New Jersey NJ Delaware DE Maryland MD Virginia VA North Carolina NC South Carolina SC Georgia GA Florida FL

Nehmen wir an, die Tabelle ist als externe Hive-Tabelle mit dem Namen "east_coast_states" verfügbar:

CREATE EXTERNAL TABLE ddb_east_coast_states (state_name STRING, state_alpha STRING) STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' TBLPROPERTIES ("dynamodb.table.name" = "EastCoastStates", "dynamodb.column.mapping" = "state_name:StateName,state_alpha:StateAbbrev");

Der folgende Join gibt die Bundesstaaten an der Ostküste der Vereinigten Staaten zurück, die mindestens drei Merkmale aufweisen:

SELECT ecs.state_name, f.feature_class, COUNT(*) FROM ddb_east_coast_states ecs JOIN ddb_features f on ecs.state_alpha = f.state_alpha GROUP BY ecs.state_name, f.feature_class HAVING COUNT(*) >= 3;

Verknüpfen von Tabellen aus anderen Quellen

Im folgenden Beispiel ist "s3_east_coast_states" eine Hive-Tabelle, die einer in Amazon S3 gespeicherten CSV-Datei zugeordnet ist. Die Tabelle ddb_features ist mit Daten in DynamoDB verknüpft. Das folgende Beispiel verknüpft die beiden Tabellen und liefert die geografischen Merkmale der Bundesstaaten, deren Namen mit "New" beginnen.

create external table s3_east_coast_states (state_name STRING, state_alpha STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 's3://bucketname/path/subpath/';
SELECT ecs.state_name, f.feature_name, f.feature_class FROM s3_east_coast_states ecs JOIN ddb_features f ON ecs.state_alpha = f.state_alpha WHERE ecs.state_name LIKE 'New%';