hallo vielleicht können Sie versuchen, diese
zwei Tabellen DynamoDB Die Verbindung beizutreten auf dem Cluster berechnet und zurückgegeben. Der Join findet nicht in DynamoDB statt. In diesem Beispiel wird eine Liste mit Kunden und deren Käufen für Kunden zurückgegeben, die mehr als zwei Bestellungen aufgegeben haben.
CREATE EXTERNAL TABLE hive_purchases(customerId bigint, total_cost double, items_purchased array<String>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Purchases",
"dynamodb.column.mapping" = "customerId:CustomerId,total_cost:Cost,items_purchased:Items");
CREATE EXTERNAL TABLE hive_customers(customerId bigint, customerName string, customerAddress array<String>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Customers",
"dynamodb.column.mapping" = "customerId:CustomerId,customerName:Name,customerAddress:Address");
Select c.customerId, c.customerName, count(*) as count from hive_customers c
JOIN hive_purchases p ON c.customerId=p.customerId
GROUP BY c.customerId, c.customerName HAVING count > 2;
Um zwei Tabellen aus verschiedenen Quellen
Im folgende Beispiel zu verbinden, ist Customer_S3 eine Hive-Tabelle, die eine CSV-Datei in Amazon S3 und hive_purchases gespeichert lädt eine Tabelle, die Verweise Daten in DynamoDB. Im folgenden Beispiel werden Kundendaten, die in Amazon S3 als CSV-Datei gespeichert sind, mit in DynamoDB gespeicherten Auftragsdaten zusammengeführt, um eine Reihe von Daten zurückzugeben, die Bestellungen von Kunden mit "Miller" im Namen enthalten.
CREATE TABLE hive_purchases EXTERNAL (customerId Bigint, total_cost Doppel, items_purchased array) gespeicherten TBLPROPERTIES 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' ("dynamodb.table.name" = "Einkäufe", "dynamodb.column.mapping" = "customerId: CustomerId, total_cost: Kosten, Artikel_abgekauft: Artikel");
CREATE EXTERNAL TABLE Customer_S3(customerId bigint, customerName string, customerAddress array<String>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 's3://bucketname/path/subpath/';
Select c.customerId, c.customerName, c.customerAddress from
Customer_S3 c
JOIN hive_purchases p
ON c.customerid=p.customerid
where c.customerName like '%Miller%';
für weitere Informationen können Sie die Dokumentation DynamoDB Export , Import Querys
viel Glück lesen und versuchen
Ah, die Freuden des Lernens zweier Dinge (Dynamo _and_ MySQL) zu tun _eine_ Aufgabe. –
Sie sollten DynamoDB wahrscheinlich nicht mit einer JOIN-Anforderung verwenden - die Daten vor dem Hochladen zuerst denormalisieren, weiterhin MySQL verwenden oder eine andere Datenbank auswählen, die besser ist bei JOINs –