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.
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 ).
Themen
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%';