Data agregat di Amazon DynamoDB untuk peramalan ML di Athena - AWS Prescriptive Guidance

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

Data agregat di Amazon DynamoDB untuk peramalan ML di Athena

Sachin Doshi dan Peter Molnar, Amazon Web Services

Ringkasan

Pola ini menunjukkan kepada Anda cara membangun agregasi kompleks data Internet of Things (IoT) dalam tabel Amazon DynamoDB dengan menggunakan Amazon Athena. Anda juga mempelajari cara memperkaya data dengan inferensi pembelajaran mesin (ML) dengan menggunakan Amazon SageMaker AI dan cara menanyakan data geospasial dengan menggunakan Athena. Anda dapat menggunakan pola ini sebagai dasar untuk membuat solusi peramalan ML yang memenuhi persyaratan organisasi Anda.

Untuk tujuan demonstrasi, pola ini menggunakan contoh skenario bisnis yang mengoperasikan rideshare skuter dan ingin memprediksi jumlah skuter optimal yang harus digunakan untuk pelanggan di lingkungan perkotaan yang berbeda. Bisnis ini menggunakan model ML pra-terlatih yang memprediksi permintaan pelanggan untuk jam berikutnya berdasarkan empat jam terakhir. Skenario ini menggunakan dataset publik dari Office of Civic Innovation & Technology untuk pemerintah Metro Louisville. Sumber daya untuk skenario ini tersedia di GitHub repositori.

Prasyarat dan batasan

  • Aktif Akun AWS

  • Izin untuk membuat AWS CloudFormation tumpukan dengan peran AWS Identity and Access Management (IAM) untuk hal berikut:

    • bucket Amazon Simple Storage Service (Amazon S3)

    • Athena

    • DynamoDB

    • SageMaker AI

    • AWS Lambda

Arsitektur

Tumpukan teknologi

  • Amazon QuickSight

  • Amazon S3

  • Athena

  • DynamoDB

  • Lambda

  • SageMaker AI

Arsitektur target

Diagram berikut menunjukkan arsitektur untuk membangun agregasi data yang kompleks di DynamoDB dengan menggunakan kemampuan kueri Athena, fungsi Lambda, penyimpanan Amazon S3, titik akhir AI, dan dasbor. SageMaker QuickSight

Arsitektur untuk membangun agregasi data yang kompleks di DynamoDB.

Diagram menunjukkan alur kerja berikut:

  1. Tabel DynamoDB menyerap data IoT yang ditransmisikan dari armada skuter.

  2. Fungsi Lambda memuat tabel DynamoDB dengan data yang dicerna.

  3. Kueri Athena membuat tabel DynamoDB baru untuk data geospasial yang mewakili lingkungan perkotaan.

  4. Lokasi kueri disimpan dalam bucket S3.

  5. Fungsi Athena menanyakan inferensi ML dari titik akhir SageMaker AI yang menjadi tuan rumah model ML yang telah dilatih sebelumnya.

  6. Athena menanyakan data langsung dari tabel DynamoDB dan mengumpulkan data untuk analisis.

  7. Seorang pengguna melihat output dari data yang dianalisis di QuickSight dasbor.

Alat

Layanan AWS

  • Amazon Athena adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.

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

  • Amazon SageMaker AI adalah layanan ML terkelola yang membantu Anda membangun dan melatih model ML dan kemudian menerapkannya ke lingkungan host yang siap produksi.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Amazon QuickSight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.

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

Repositori kode

Kode untuk pola ini tersedia dalam prediksi GitHub Use ML melalui data Amazon DynamoDB dengan repositori Amazon Athena ML. Anda dapat menggunakan CloudFormation template dari repositori untuk membuat sumber daya berikut yang digunakan dalam skenario contoh:

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Unduh kumpulan data dan sumber daya.

  1. Unduh kumpulan data publik persewaan kendaraan tanpa dermaga. Untuk tujuan demo, data ini diisi sebelumnya di DynamoDB sebagai bagian dari kasus penggunaan, tetapi dalam lingkungan produksi Anda mengirim data ini ke DynamoDB melalui berbagai mekanisme seperti perangkat IoT atau konsumen Amazon Kinesis. Mekanisme ini menggunakan Lambda untuk memasukkan data ke DynamoDB.

  2. Unduh shapefile GIS yang mewakili batas-batas lingkungan sejarah dan budaya di dalam kota Louisville, KY. Dataset publik disediakan oleh Louisville dan Jefferson County, Konsorsium Informasi KY. Shapefile asli sudah diubah menjadi file teks yang dapat Anda kueri dengan Athena, tetapi Anda dapat menemukan kode Python untuk mengubah shapefile di notebook Jupyter pada pemrosesan Geo-Spatial dari shapefile GIS dengan Amazon Athena di. GitHub

  3. Unduh kode Python yang telah dilatih sebelumnya yang melatih model ML untuk prakiraan per jam dengan menggunakan SageMaker AI dan Athena.

  4. Dapatkan kueri SQL di Athena yang menyatukan semuanya untuk prediksi langsung dari data yang disimpan di DynamoDB.

  5. (Opsional) Gunakan QuickSight untuk memvisualisasikan data geospasial melalui peta Louisville, Kentucky.

Pengembang aplikasi, Ilmuwan data
TugasDeskripsiKeterampilan yang dibutuhkan

Buat CloudFormation tumpukan.

  1. Unduh CloudFormation template dari GitHub repositori.

  2. catatan

    Masuk ke AWS Management Console, lalu pilihus-east-1. : Model ML disimpan di Amazon Elastic Container Registry (Amazon ECR) Registry for us-east-1 Wilayah AWS the, tetapi polanya adalah Region agnostik. Anda dapat mereplikasi pola di Wilayah mana pun yang Layanan AWS digunakan dalam pola ini didukung.

  3. Buka CloudFormation konsol, lalu pilih Tumpukan di panel navigasi.

  4. Pilih Buat tumpukan, lalu pilih Dengan sumber daya yang ada (sumber daya impor).

  5. Pada halaman Identifikasi sumber daya, pilih Berikutnya.

  6. Di bagian Tentukan templat, untuk Sumber templat, pilih Unggah file templat.

  7. Pilih File, lalu pilih CloudFormation template yang Anda unduh sebelumnya.

  8. Pilih Berikutnya, terima nilai parameter default, dan pilih Berikutnya untuk melangkah melalui sisa wizard pengaturan.

  9. Pilih kotak centang Saya mengakui yang AWS CloudFormation mungkin membuat sumber daya IAM dengan nama khusus.

  10. Pilih Buat tumpukan.

catatan

 Diperlukan waktu 15-20 menit untuk CloudFormation tumpukan untuk membuat sumber daya ini.

AWS DevOps

Verifikasi CloudFormation penyebaran.

Untuk memverifikasi bahwa data sampel dari CloudFormation template dimuat ke DynamoDB, lakukan hal berikut:

  1. Buka konsol DynamoDB, lalu pilih Tabel dari panel navigasi.

  2. Di bagian Tabel, periksa DynamoDBTableDocklessVehicles tabel.

  3. Setelah pembuatan sumber daya selesai, buka konsol Athena, lalu pilih Workgroups dari panel navigasi.

  4. Pilih V2EngineWorkGroup workgroup, lalu pilih Switch workgroup.

  5. Jika Anda mendapatkan prompt untuk menyimpan lokasi hasil kueri, pilih lokasi Amazon S3 tempat Anda memiliki izin menulis.

  6. Pilih Simpan.

  7. Di panel navigasi, pilih Editor kueri, lalu pilih athena-ml-db-<your-AWS-account-number> database.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Buat tabel Athena dengan data geospasial.

Untuk memuat file geolokasi ke Athena, lakukan hal berikut:

  1. Buka konsol Athena, lalu pilih Editor kueri dari panel navigasi.

  2. Pilih tab Kueri tersimpan.

  3. Cari dan pilih Q1: Lingkungan.

  4. Untuk kembali ke editor kueri, pilih tab Editor.

  5. Pilih Jalankan. Ini membuat tabel bernama louisville_ky_neighborhoods dalam database Anda. Pastikan tabel dibuat dalam athena-ml-db-<your-AWS-account-number> database.

Kueri membuat tabel baru untuk data geospasial yang mewakili lingkungan perkotaan. Tabel data dibuat dari shapefiles GIS. CREATE EXTERNAL TABLEPernyataan tersebut mendefinisikan skema tabel dan lokasi serta format file data yang mendasarinya.

Untuk kode Python untuk memproses shapefile dan menghasilkan tabel ini, lihat Pemrosesan Geo-Spatial dari shapefile GIS dengan Amazon Athena di Sampel. AWS Untuk kode SQL rinci, lihat create_neighborhood_table.sql pada GitHub.

Insinyur data
TugasDeskripsiKeterampilan yang dibutuhkan

Deklarasikan fungsi di Athena untuk menanyakan AI. SageMaker

  1. Buka konsol Athena, pilih Editor kueri dari panel navigasi, lalu pilih tab Editor.

  2. Copy dan paste pernyataan SQL berikut ke editor query.

    USING EXTERNAL FUNCTION predict_demand ( location_id BIGINT, hr BIGINT , dow BIGINT, n_pickup_1 BIGINT, n_pickup_2 BIGINT, n_pickup_3 BIGINT, n_pickup_4 BIGINT, n_dropoff_1 BIGINT, n_dropoff_2 BIGINT, n_dropoff_3 BIGINT, n_dropoff_4 BIGINT ) RETURNS DOUBLE SAGEMAKER '<Your SageMaker endpoint>'

    Bagian pertama dari pernyataan SQL mendeklarasikan fungsi eksternal untuk menanyakan inferensi ML dari titik akhir SageMaker AI yang menjadi tuan rumah model yang telah dilatih sebelumnya.

  3. Tentukan urutan dan jenis parameter input dan jenis nilai yang dikembalikan.

  4. Pilih Jalankan.

Ilmuwan data, Insinyur data

Memprediksi permintaan untuk skuter berdasarkan lingkungan dari data DynamoDB agregat.

Sekarang Anda dapat menggunakan Athena untuk menanyakan data transaksional langsung dari DynamoDB, dan kemudian mengumpulkan data untuk analisis dan peramalan. Hal ini tidak mudah dicapai dengan langsung query database DynamoDB NoSQL.

  1. Buka konsol Athena, lalu pilih Editor kueri dari panel navigasi.

  2. Pilih tab Kueri tersimpan.

  3. Cari dan pilih Q2: Dynamo DBAthena MLScooter Predict.

  4. Untuk kembali ke editor kueri, pilih tab Editor.

  5. Pilih Jalankan.

Pernyataan SQL melakukan hal berikut:

  • Menggunakan Athena Federated Query untuk menanyakan tabel DynamoDB dengan data perjalanan mentah

  • Menempatkan koordinat geografis ke lingkungan dengan menggunakan fungsi geospasial Athena

  • Memperkaya data dengan inferensi ML dengan menggunakan AI SageMaker

Untuk informasi tentang penggunaan SQL untuk menggabungkan data DynamoDB dan data SageMaker inferensi AI di Athena, lihat athena_long.sql di. GitHub

Pengembang aplikasi, Ilmuwan data

Verifikasi output.

Tabel output mencakup lingkungan, bujur, dan garis lintang centroid lingkungan. Ini juga termasuk jumlah kendaraan yang diprediksi untuk jam berikutnya.

Kueri menghasilkan prediksi untuk titik waktu yang dipilih. Anda dapat membuat prediksi untuk waktu lain dengan mengubah ekspresi di TIMESTAMP '2019-09-07 15:00' mana-mana dalam pernyataan.

Jika Anda memiliki umpan data real-time di tabel DynamoDB Anda, ubah stempel waktu menjadi. NOW()

Pengembang aplikasi, Ilmuwan data
TugasDeskripsiKeterampilan yang dibutuhkan

Hapus sumber daya.

  1. Buka konsol Athena dan kosongkan ember yang Anda buat sebagai bagian dari tumpukan. CloudFormation

  2. Buka CloudFormation konsol, lalu hapus tumpukan bernamabdb-1462-athena-dynamodb-ml-stack.

  3. Buka CloudWatch konsol Amazon, lalu hapus grup log bernama/aws/sagemaker/Endpoints/Sg-athena-ml-dynamodb-model-endpoint.

Pengembang aplikasi, AWS DevOps

Sumber daya terkait