SQL Workbench

Workbench adalah tab penulisan SQL yang menjalankan kueri JOIN, GROUP BY, dan agregat sungguhan lintas tabel DynamoDB Anda — hal-hal yang tak bisa dilakukan PartiQL. Ini adalah SQL dalam aturan access-pattern DynamoDB: Anda menulis satu SELECT, sebuah compiler memeriksa bahwa setiap join membaca melalui key atau indeks nyata, mematerialisasi baris yang di-join, dan menjalankan sisa pernyataannya — filter, agregat, GROUP BY, ORDER BY — di atasnya.

Buka satu dari menu klik-kanan sidebar (New Workbench), pintasan ⌘⌥B, atau File → New Workbench. Tulis SQL, lalu tekan ⌘↩ untuk menjalankan.

Editor menyarankan nama tabel, plus field dan value terindeks berdasarkan konteks SQL di posisi kursor. Lihat Statistik tabel untuk isi indeks lokal dan cara menyegarkannya.

SELECT c.email, COUNT(*) AS orders, SUM(o.total) AS revenue
FROM orders o
JOIN customers c ON o.customerId = c.id
GROUP BY c.email
ORDER BY revenue DESC
Workbench: SQL JOIN multi-tabel, dengan grid hasil yang di-join di bawah.
Workbench: SQL JOIN multi-tabel, dengan grid hasil yang di-join di bawah.

Apa yang didukung

Satu pernyataan SELECT dengan:

  • JOIN ... ON ... — join INNER dan LEFT lintas tabel.
  • AgregatCOUNT, SUM, AVG, MIN, MAX, plus GROUP BY dan HAVING.
  • WHERE, DISTINCT, CASE, CAST, ORDER BY.

Selagi kueri agregat masih di-stream, sebuah badge partial menandai kolom yang terdampak — angkanya menyempurna seiring lebih banyak halaman tiba.

Aturan access-pattern

DynamoDB tidak punya join sisi-server. Compiler Workbench menegakkan apa yang bisa dilakukan DynamoDB: atribut sisi-tujuan tiap JOIN harus berupa partition key atau partition key pada tabel target, sehingga setiap pencarian adalah Query nyata, bukan full-table tersembunyi per baris.

Jika sebuah join menunjuk ke atribut non-key, editor menggarisbawahinya dan menjelaskan alasannya. Penolakan compiler lainnya juga muncul sebagai squiggle validasi yang presisi. Workbench tidak menyediakan quick fix:

  • Join RIGHT / FULL OUTER / CROSS dan comma-join (hanya INNER / LEFT).
  • Subquery, CTE (WITH), UNION / INTERSECT / EXCEPT.
  • Fungsi window (OVER), banyak pernyataan, apa pun yang bukan SELECT.

Hanya-baca

Sebuah Workbench selalu read-only. Tidak ada penyuntingan, staging, atau batch-delete — ini adalah permukaan analisis. Menjalankan kueri tak pernah menulis ke tabel Anda.

Identifier mengikuti casing SQL standar: nama tanpa tanda petik cocok tanpa-peka-huruf (WHERE PLATFORM menemukan platform); bungkus sebuah nama dengan tanda petik atau backtick untuk pencocokan peka-huruf persis.

Preview the query cost

Saat query plan tersedia, pratinjaunya mengidentifikasi Scan versus Query dan indeksnya; perkiraan RCU hanya muncul saat metadata tabel mendukungnya.

Status bar ini muncul di Workbench dan PartiQL, bukan di baris filter visual. SQL kosong, kegagalan kompilasi, DML, atau PartiQL yang tak bisa diurai tidak punya plan, jadi tidak ada bar biaya yang muncul.

Query partisi biasa menampilkan “biaya tergantung item yang cocok” dan tanpa RCU. Point read dan Scan yang punya ukuran juga tidak menghasilkan RCU tanpa metadata DescribeTable yang mendukungnya.

Point read tetap menampilkan “≈1 item”. Scan dengan jumlah item bisa menampilkan estimasi tabel, tetapi menghitung RCU-nya butuh ukuran tabel dalam byte. Tanpa salah satu nilai itu, Scan menyatakan “ukuran tidak diketahui”.

Estimasi Scan memakai angka tabel yang disegarkan DynamoDB secara berkala, bukan nilai langsung. Cabang point read menghitung harga dengan strongly consistent; cabang Scan menghitungnya dengan eventually consistent.

Baik Workbench maupun PartiQL menjalankan pembacaan eventually consistent. Karena itu perkiraan point read bisa dua kali lipat biaya sebenarnya dari request-nya. Perlakukan setiap angka sebagai petunjuk pra-eksekusi, bukan tagihan.

Menjalankan, template, dan riwayat

  • Run⌘↩ di editor, tombol Run, atau ⌘R untuk menjalankan ulang. Tab Workbench tak pernah auto-run saat dibuka; eksekusi selalu disengaja.
  • Run to end⌘⇧↩, atau pilih dari menu split tombol Run, untuk men-stream seluruh hasil join alih-alih satu halaman. Batas halaman terangkat dan halaman terus tiba sampai kueri habis; Stop adalah satu-satunya rem. Berguna untuk agregat besar yang ingin Anda tuntaskan dalam satu langkah.
  • Templates & saved queries — menu Queries memuat template pemula (select-all, filter-by-key, count-by-group, dengan lubang yang dapat di-Tab) plus kueri apa pun yang Anda simpan lewat Save — kueri bernama milik Anda sendiri, dapat dipakai ulang di tabel mana pun. Memilih salah satunya menggantikan isi editor, jadi ia berjalan persis seperti yang Anda simpan.
  • History — setiap run disimpan (terpisah dari riwayat PartiQL), dapat dicari, dan dapat dipulihkan — termasuk run yang gagal, jadi Anda bisa memperbaiki dan mencoba lagi.

Sebuah tab Workbench adalah spec tersimpan — beri nama, buka kembali dari ⌘K, dan ia bertahan melewati reload. Anda juga bisa mengekspor hasil join-nya.

Workbench vs Smart Table

Keduanya menjalankan mesin join yang sama; mereka adalah dua cara untuk menulis hal yang sama:

  • Workbench adalah jalur SQL — ketik sebuah kueri, dapatkan agregat dan atribut yang terselesaikan.
  • Smart Table adalah jalur visual — gambar join pada kanvas dan jelajahi baris yang di-join seperti tabel biasa.

Diperbarui