Kueri tabel Amazon DynamoDB dengan SQL dengan menggunakan Amazon Athena - AWS Prescriptive Guidance

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

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

Ringkasan

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

Prasyarat

  • Sebuah tabel DynamoDB.

  • Kelompok kerja Athena diatur untuk menggunakan mesin Athena versi 2. Untuk instruksi, lihat dokumentasi Athena.

  • 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.

Batasan

Versi produk

Arsitektur

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.

Alat

Layanan AWS

  • Amazon Athena 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, alat yang dibangun menggunakan Amazon Athena Query Federation SDK dan diinstal sebagai aplikasi melalui file. AWS Lambda AWS Serverless Application Repository

  • Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

  • AWS Lambdaadalah 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) 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.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan AthenaDynamo DBConnector aplikasi.

Untuk menyebarkan AthenaDynamoDBConnecter, lakukan hal berikut:

  1. Masuk ke AWS Management Console, dan pilih Wilayah AWS yang Anda gunakan untuk tabel DynamoDB dan ember tumpahan.

  2. Buka Serverless Application Repository di. https://console.aws.amazon.com/serverlessrepo/

  3. Di panel navigasi, pilih Aplikasi yang Tersedia.

  4. Untuk akses AWS Identity and Access Management (IAM), di bawah bilah pencarian, pilih kotak centang Tampilkan aplikasi yang membuat peran IAM kustom atau kebijakan sumber daya.

  5. Cari dan pilih AthenaDynamoDBConnector, dan pastikan bahwa penulis yang terdaftar adalah Federasi Amazon Athena.

  6. Di Pengaturan Aplikasi, masukkan nilai berikut:

    • SpillBucket- Lokasi dimana fungsi dapat menumpahkan data ke.

    • AthenaCatalogName- Nama fungsi Lambda yang akan dibuat. Nama tersebut juga akan digunakan sebagai Nama Sumber Data di Athena.

  7. Pilih kotak centang untuk mengetahui pembuatan peran dan kebijakan IAM.

  8. Pilih Deploy.

AWS DevOps

Buat sumber data untuk Athena.

Untuk membuat sumber data, lakukan hal berikut:

  1. Buka konsol Athena di

    https://console.aws.amazon.com/athena/.

  2. Perluas panel navigasi, dan pilih Sumber data.

  3. Pilih Buat sumber data.

  4. Pilih Amazon DynamoDB.

  5. Masukkan Nama Sumber Data.

  6. Pilih fungsi Lambda yang Anda buat.

  7. Tinjau detailnya, dan pilih Buat sumber data.

AWS DevOps

Gunakan Athena untuk menanyakan tabel DynamoDB.

Untuk menanyakan tabel DynamoDB, lakukan hal berikut:

  1. Di konsol Athena, perluas panel navigasi, dan pilih Editor kueri.

  2. Pada daftar tarik-turun Sumber data, pilih sumber data yang Anda buat.

  3. Konfirmasikan bahwa tabel DynamoDB tercantum di bawah Tabel.

  4. Jalankan kueri.

Pengembang aplikasi

Pemecahan Masalah

IsuSolusi

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