

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

# Kueri tabel Amazon DynamoDB dengan SQL dengan menggunakan Amazon Athena
<a name="query-amazon-dynamodb-tables-sql-amazon-athena"></a>

*Gavin Perrie, Ajit Ambike, dan Brad Yates, Amazon Web Services*

## Ringkasan
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-summary"></a>

Jika data Anda menyertakan sumber selain Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3), Anda dapat menggunakan kueri gabungan untuk mengakses sumber data relasional, non-relasional, objek, atau kustom tersebut. Pola ini menunjukkan cara mengonfigurasi akses kueri federasi melalui Amazon Athena ke Amazon DynamoDB dengan menggunakan konektor sumber data SQL.

Dengan menggunakan pola ini, Anda dapat melakukan hal berikut:
+ Kueri tabel DynamoDB dengan menggunakan SQL.
+ Jalankan kueri SQL federasi di Athena dan gabungkan tabel DynamoDB dengan sumber data lain yang didukung.

## Prasyarat dan batasan
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-prereqs"></a>

**Prasyarat**
+ Sebuah tabel DynamoDB.
+ Kelompok kerja Athena diatur untuk menggunakan mesin Athena versi 2. Untuk instruksi, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html).
+ Bucket S3 tempat `AthenaDynamoDBConnector` AWS Lambda fungsi dapat menumpahkan data. Bucket S3 dan fungsi Lambda harus berada di Wilayah AWS yang sama.

Jika ini adalah pertama kalinya Anda mengakses Athena, Anda memerlukan bucket S3 tambahan untuk digunakan sebagai lokasi hasil kueri. Untuk instruksi, lihat dokumentasi [Athena](https://docs.aws.amazon.com/athena/latest/ug/querying.html#query-results-specify-location-console).

**Batasan**
+ Operasi tulis seperti [INSERT INTO](https://docs.aws.amazon.com/athena/latest/ug/insert-into.html) tidak didukung. ****

**Versi produk**
+ [Federasi Kueri Athena dirilis pada GitHub](https://github.com/awslabs/aws-athena-query-federation/releases)

## Arsitektur
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-architecture"></a>

**Arsitektur target**

Diagram berikut menunjukkan aliran koneksi setelah pola ditetapkan. Pengguna terhubung ke Amazon Athena untuk memberikan kueri. Athena meneruskan kueri dan target ke fungsi Lambda konektor sumber data DynamoDB, yang mengambil dan mengembalikan data ke Athena. Jika sejumlah besar data dikembalikan, Athena menyimpan hasil sementara di ember tumpahan sebelum mengemas dan mengembalikan kumpulan data lengkap.

![Alur kerja dari pengguna ke Athena ke Lambda, yang terhubung ke bucket S3 dan ke tabel DynamoDB.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/9d1ee529-36f3-4c7e-a2e7-05b76e09a3d8/images/e50a00cf-a55a-4def-81d5-4d2755dc9a97.png)


## Alat
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar. Pola ini menggunakan [Amazon Athena DynamoDB Connector](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb), alat yang dibangun menggunakan Amazon Athena Query Federation SDK dan diinstal sebagai aplikasi melalui file. AWS Lambda AWS Serverless Application Repository
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

**Repositori kode**

Kode untuk pola ini tersedia di repositori GitHub [Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation/releases).

## Epik
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-epics"></a>

### Siapkan dan uji konektor sumber data DynamoDB
<a name="set-up-and-test-the-ddb-data-source-connector"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan AthenaDynamo DBConnector aplikasi. | Untuk menyebarkan AthenaDynamoDBConnecter, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Buat sumber data untuk Athena. | Untuk membuat sumber data, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | AWS DevOps | 
| Gunakan Athena untuk menanyakan tabel DynamoDB. | Untuk menanyakan tabel DynamoDB, lakukan hal berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/query-amazon-dynamodb-tables-sql-amazon-athena.html) | Pengembang aplikasi | 

## Pemecahan masalah
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kueri gagal dengan `GENERIC_INTERNAL_ERROR: The bucket is in this region: <region>`*.* | Pastikan bahwa ember tumpahan Athena dan fungsi Lambda dibuat dalam hal yang sama. Wilayah AWS | 
| Sumber data yang baru dibuat tidak terlihat di konsol Athena. | Katalog data Athena bersifat regional. Pastikan `AthenaDynamoDBConnector` telah dikerahkan di Wilayah tempat Anda mencoba menggunakan Athena. | 
| Anda tidak dapat menjalankan kueri terhadap sumber data yang baru dibuat. | Periksa apakah **Lokasi Hasil Kueri** telah ditetapkan. | 

## Sumber daya terkait
<a name="query-amazon-dynamodb-tables-sql-amazon-athena-resources"></a>
+ [Konektor DynamoDB Amazon Athena](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-dynamodb)
+ [Pertanyaan Federasi Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-to-a-data-source.html)