Mengkueri data di DynamoDB - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkueri data di DynamoDB

Contoh berikut menunjukkan beberapa cara yang dapat Anda gunakan dalam menggunakan HiveQL untuk mengkueri data yang disimpan di DynamoDB.

Contoh-contoh ini mengacu pada tabel ddb_features di tutorial (Langkah 5: Salin data ke DynamoDB).

Menggunakan fungsi agregat

HiveQL menyediakan fungsi bawaan untuk meringkas nilai-nilai data. Misalnya, Anda dapat menggunakan fungsi MAX untuk menemukan nilai terbesar untuk kolom tertentu. Contoh berikut mengembalikan elevasi fitur tertinggi di negara bagian Colorado.

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

Menggunakan klausul GROUP BY dan HAVING

Anda dapat menggunakan klausul GROUP BY untuk mengumpulkan data di beberapa catatan. Klausul ini sering kali digunakan dengan fungsi agregat seperti SUM, COUNT, MIN, atau MAX. Anda juga dapat menggunakan klausul HAVING untuk membuang hasil yang tidak memenuhi kriteria tertentu.

Contoh berikut menghasilkan daftar elevasi tertinggi dari negara-negara yang memiliki lebih dari lima fitur di tabel ddb_features.

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

Menggabungkan dua tabel DynamoDB

Contoh berikut memetakan tabel Hive lain (east_coast_states) ke tabel di DynamoDB. Pernyataan SELECT adalah gabungan di dua tabel ini. Gabungan tersebut dikomputasi pada klaster dan dikembalikan. Gabungan ini tidak terjadi di DynamoDB.

Pertimbangkan tabel DynamoDB EastCoastStates bernama yang berisi data berikut:

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

Mari kita asumsikan tabel tersedia sebagai tabel eksternal Hive bernama east_coast_states:

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");

Gabungan berikut menampilkan negara-negara di Pantai Timur Amerika Serikat yang memiliki setidaknya tiga fitur:

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;

Tabel Gabungan dari berbagai sumber

Di contoh berikut, s3_east_coast_states adalah tabel Hive yang terkait dengan file CSV yang disimpan di Amazon S3. Tabel ddb_features terkait dengan data dalam DynamoDB. Contoh berikut menggabungkan dua tabel ini, menampilkan fitur geografis dari negara-negara yang namanya dimulai dengan "New."

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%';