Pemula6 menit baca

Cara Meng-query DynamoDB dengan AI (Bahasa Alami)

"Tampilkan order gagal minggu lalu" adalah satu kalimat di kepala Anda dan sebuah KeyConditionExpression dengan peta placeholder di kabel. Menutup celah itulah arti sebenarnya "meng-query DynamoDB dengan AI" — karena API DynamoDB sendiri tidak punya endpoint bahasa alami. Setiap request tetap berupa expression atau ; AI duduk di lapisan tooling, menerjemahkan niat Anda ke dalamnya.

Terjemahan itu bisa benar-benar hebat atau diam-diam berbahaya, tergantung satu hal: apakah model bisa melihat schema Anda yang sebenarnya. Panduan ini membahas tiga setup yang berfungsi dan di mana masing-masing patah.

Bagaimana cara meng-query DynamoDB dengan bahasa alami?

Tiga opsi nyata: minta sebuah LLM umum mendraf PartiQL dan jalankan sendiri (cepat, tetapi modelnya menebak-nebak nama atribut Anda), hubungkan sebuah agen AI ke DynamoDB lewat sebuah MCP server agar ia bisa menginspeksi dan meng-query sungguhan, atau gunakan klien DynamoDB dengan asisten sadar-schema bawaan — AI chat DynoTable mengubah bahasa sehari-hari menjadi PartiQL atau SQL terhadap schema terindeks Anda yang sebenarnya, menghitung agregat eksak seluruh-tabel, dan men-stage setiap penulisan untuk Anda tinjau.

Opsi 1: PartiQL didraf LLM, dijalankan oleh Anda

Versi tanpa-setup: deskripsikan query-nya ke model mana pun yang mumpuni, dapatkan PartiQL, jalankan di editor PartiQL console atau lewat CLI:

aws dynamodb execute-statement \
  --statement "SELECT * FROM \"Orders\" WHERE PK = 'ORDER#1001'"

Ia berfungsi — dan ia gagal dalam tiga cara yang bisa diprediksi:

  • Model tidak bisa melihat tabel Anda. Ia akan dengan percaya diri mengarang nama atribut dan bentuk key (orderId padahal milik Anda PK = ORDER#<id>). Anda berakhir men-debug schema halusinasi alih-alih menulis query-nya.
  • Batas-batas PartiQL tetap berlaku. Sebuah SELECT membaca tepat satu tabel, dan WHERE yang tidak mengunci sebuah key menjadi full table scan — mahal secara diam-diam, persis seolah Anda menulisnya sendiri. Modelnya jarang memperingatkan Anda; PartiQL vs SQL menjelaskan apa yang diberikan dan tidak diberikan permukaan SQL itu.
  • Menempelkan schema atau data ke sebuah chatbot adalah keputusan data-governance. Sampel Item di sebuah prompt adalah data produksi yang meninggalkan boundary Anda.

Bagus untuk query sekali-jalan pada schema yang bisa Anda tempel dari ingatan; goyah sebagai alur kerja.

Opsi 2: agen AI yang terhubung lewat MCP

Perbaikan struktural untuk "model tidak bisa melihat tabel Anda" adalah memberi agen tools alih-alih schema yang ditempel ke prompt. Model Context Protocol (MCP) melakukan persis itu: sebuah MCP server mengekspos operasi DynamoDB sebagai tools bertipe, dan agen apa pun yang mendukung MCP (Claude, asisten IDE, agen custom) bisa mendaftar tabel, menginspeksi key, dan menjalankan query dengan hasil nyata yang mengalir kembali ke percakapan.

Kami membahas setup lengkapnya — beserta pertanyaan consent, scoping, dan keamanan-tulis yang menyertai membiarkan sebuah agen menyentuh database — di Menggunakan DynamoDB dengan MCP server. DynoTable sendiri menyertakan satu: ia bisa mengekspos tools yang dijaga gerbang dan hanya-loopback ke agen eksternal, dengan consent dan scope per-koneksi.

Ini arsitektur yang tepat ketika agen adalah produknya — bot support, asisten Slack internal. Untuk kerja interaktif sehari-hari, ia tetap menyisakan Anda merakit sendiri agen, server, dan kredensialnya.

Opsi 3: asisten sadar-schema di klien DynamoDB Anda

Asisten bawaan DynoTable adalah versi terintegrasinya: ia hidup di samping tabel Anda (⌘;), dan ia membaca schema terindeks Anda — tabel-tabel di bawah profile aktif, key dan indeksnya, path atribut dan tipe yang ditemukan oleh pengindeksan tabel, bahkan nilai sampel — sehingga "filter ini ke minggu lalu" ter-resolve terhadap nama atribut Anda yang sebenarnya, bukan tebakan. Ketik @ untuk mereferensikan sebuah @table, @column, atau @gsi secara eksplisit.

AI chat DynoTable tertambat di samping sebuah tab tabel: pertanyaan bahasa sehari-hari, query yang dihasilkan, dan hasilnya terbuka sebagai sebuah view.
AI chat DynoTable tertambat di samping sebuah tab tabel: pertanyaan bahasa sehari-hari, query yang dihasilkan, dan hasilnya terbuka sebagai sebuah view.

Apa yang ia lakukan dengan sebuah pertanyaan, sesuai katalog kapabilitasnya:

  • Menuliskan query-nya untuk Anda — PartiQL read-only, atau SQL Workbench ketika pertanyaannya membutuhkan JOIN / GROUP BY / agregat (analitik yang tidak dimiliki API DynamoDB) — dan mengusulkan hasilnya sebagai sebuah chip yang Anda klik untuk dibuka sebagai tab sungguhan.
  • Menghitung jawaban eksak seluruh-tabel. Minta hitungan, jumlah, rata-rata, atau rincian per-grup dan ia membaca setiap Item yang cocok, bukan satu halaman sampel — "berapa order bulan lalu?" mencerminkan tabel yang sebenarnya. Ia bisa membentuk-ulang lintasan yang sama menjadi file ekspor yang ditransformasi.
  • Men-stage setiap penulisan. Minta ia memperbaiki sebuah baris dan perubahannya mendarat di staging area sebagai diff yang bisa ditinjau — asisten tidak bisa menulis ke DynamoDB secara langsung, batch-delete sebuah tabel, atau mengubah struktur tabel, dalam mode izin apa pun. Anda meninjau, Anda commit.
  • Bertanya sebelum membelanjakan uang Anda. Pembacaan yang mengenai AWS dan berbiaya capacity dijaga gerbang izin (Manual / Auto / Full Auto, per profile), dan setiap keputusan bergerbang mendarat di log audit lokal yang selalu aktif.

Model kepercayaannya sama pentingnya dengan fitur-fiturnya: asisten berjalan di atas kredensial AWS Bedrock Anda sendiri, berbicara langsung ke Bedrock di akun Anda — prompt, schema, dan data tabel tidak pernah melewati server DynoTable, dan inferensi ditagihkan kepada Anda dengan tarif Bedrock sendiri tanpa markup. Hasil tool diperlakukan sebagai data tak-tepercaya, jadi sebuah baris berisi "ignore previous instructions" tidak bisa membajak agennya.

Apa yang TIDAK diubah AI tentang DynamoDB

Lapisan AI yang jujur mana pun mewarisi fisika database-nya:

  • Pola akses tetap berkuasa. "Where status = X" atas atribut non-key adalah scan berfilter siapa pun yang menulisnya — modelnya hanya mengetik query mahal itu lebih cepat. Jika sebuah pertanyaan terus memaksa scan, perbaikannya adalah pemodelan (sebuah GSI, sebuah sort key yang lebih baik), bukan prompt yang lebih baik.
  • Pembacaan berbiaya capacity nyata. Agregat eksak seluruh-tabel adalah pembacaan seluruh-tabel. Alat yang baik menjaga gerbangnya dan mengatakannya; kalkulator harga memberi tahu Anda berapa biaya satu lintasan penuh sebelum Anda menyetujuinya.
  • Determinisme punya tempatnya. Untuk query yang akan Anda jalankan selamanya di produksi, bangun expression-nya sekali dengan tangan di Expression Builder dan kirimkan peta names/values persisnya — AI untuk eksplorasi, builder untuk kode yang Anda commit.

FAQ

Bisakah saya meng-query DynamoDB dalam bahasa sehari-hari? Tidak terhadap API-nya sendiri — DynamoDB hanya berbicara expression dan PartiQL. Tetapi sebuah lapisan AI bisa menerjemahkan: sebuah LLM yang mendraf PartiQL, sebuah agen terhubung-MCP, atau asisten sadar-schema seperti milik DynoTable yang menghasilkan dan menjalankan query terhadap schema Anda yang sebenarnya.

Apakah DynamoDB punya fitur query AI bawaan? API DynamoDB tidak punya endpoint bahasa alami. Query AI apa pun yang Anda dapatkan datang dari lapisan tooling di atasnya — itulah kenapa model keamanan tooling itu (gerbang baca, staged write, kredensial Anda sendiri) adalah hal yang perlu dievaluasi.

Apakah aman membiarkan AI mendekati data produksi? Ini pertanyaan perizinan. Carilah: pembacaan yang dijaga di balik persetujuan eksplisit, penulisan yang mendarat di staging area yang bisa ditinjau alih-alih dieksekusi langsung, sebuah log audit, dan inferensi di atas kredensial yang Anda kendalikan. Asisten DynoTable memenuhi keempatnya; sebuah chatbot dengan data tempelan Anda tidak memenuhi satu pun.

Bisakah AI-nya me-join tabel atau melakukan GROUP BY? Tidak lewat API DynamoDB — tidak ada engine untuk itu. Asisten DynoTable menjawab pertanyaan-pertanyaan itu lewat SQL Workbench read-only-nya (JOIN, GROUP BY, dan agregat sungguhan di dalam aturan pola akses DynamoDB), yang juga menjadi tempat mendaratnya pertanyaan count/sum/average.

Berapa biayanya? Dua meteran: read capacity DynamoDB untuk apa pun yang disentuh query-nya (asisten bertanya sebelum pembacaan bergerbang), dan inferensi Bedrock yang ditagihkan ke akun AWS Anda sendiri — DynoTable tidak menambahkan markup dan tidak mem-proxy apa pun.

Ajukan pertanyaan Anda berikutnya dalam bahasa sehari-hari — unduh DynoTable, arahkan AI ke Bedrock Anda sendiri, dan jaga setiap penulisan di balik sebuah peninjauan.

Diperbarui