SQL Workbench

Workbench, DynamoDB tabloların arasında gerçek JOIN, GROUP BY ve toplama sorguları çalıştıran bir SQL yazma sekmesidir — PartiQL'in yapamadığı şeyler. Bu, DynamoDB'nin erişim-kalıbı kuralları içinde SQL'dir: tek bir SELECT yazarsın, bir derleyici her birleştirmenin gerçek bir anahtar ya da indeks üzerinden okuduğunu kontrol eder, birleştirilmiş satırları maddeleştirir ve ifadenin geri kalanını — filtreler, toplamalar, GROUP BY, ORDER BY — üstünde çalıştırır.

Birini kenar çubuğu sağ tıklama menüsünden (Yeni Workbench), ⌘⌥B kısayolundan ya da Dosya → Yeni Workbench'ten aç. SQL yaz, ardından çalıştırmak için ⌘↩'a bas.

Düzenleyici, imlecin bulunduğu yerdeki SQL bağlamına göre tablo adlarının yanı sıra indekslenmiş alanları ve değerleri önerir. Yerel indeksin neler içerdiği ve nasıl yenilendiği için bkz. Tablo istatistikleri.

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: çok tablolu bir SQL JOIN ve altta birleştirilmiş sonuç ızgarası.
Workbench: çok tablolu bir SQL JOIN ve altta birleştirilmiş sonuç ızgarası.

Neyi destekler

Şunlarla birlikte tek bir SELECT ifadesi:

  • JOIN ... ON ... — tablolar arasında INNER ve LEFT birleştirmeler.
  • ToplamalarCOUNT, SUM, AVG, MIN, MAX, artı GROUP BY ve HAVING.
  • WHERE, DISTINCT, CASE, CAST, ORDER BY.

Bir toplama sorgusu hâlâ akarken, bir partial rozeti etkilenen sütunları işaretler — daha fazla sayfa geldikçe sayılar incelir.

Erişim-kalıbı kuralı

DynamoDB'nin sunucu tarafı birleştirmesi yoktur. Workbench derleyicisi DynamoDB'nin yapabileceğini zorlar: her JOIN'in karşı taraf özniteliği, hedef tabloda bir partition key ya da bir GSI partition key olmalıdır; böylece her arama gerçek bir sorgudur, satır başına gizli bir tam tablo taraması asla değildir.

Bir birleştirme bir anahtar olmayan özniteliğe işaret ederse, düzenleyici onun altını çizer ve nedenini açıklar. Derleyicinin reddettiği diğer yapılar da kesin doğrulama kıvrımları olarak görünür. Workbench hızlı düzeltme sunmaz:

  • RIGHT / FULL OUTER / CROSS birleştirmeler ve virgül-birleştirmeler (yalnızca INNER / LEFT).
  • Alt sorgular, CTE'ler (WITH), UNION / INTERSECT / EXCEPT.
  • Pencere fonksiyonları (OVER), birden çok ifade, SELECT olmayan her şey.

Salt okunur

Bir Workbench her zaman salt okunurdur. Düzenleme, hazırlama ya da toplu silme yoktur — bir analiz yüzeyidir. Bir sorgu çalıştırmak asla tablolarına yazmaz.

Tanımlayıcılar standart SQL büyük/küçük harf kullanımını izler: tırnaksız adlar büyük/küçük harfe duyarsız eşleşir (WHERE PLATFORM, platform'u bulur); tam büyük/küçük harf eşleşmesi için bir adı tırnak ya da ters tırnak içine al.

Sorgu maliyetini önizle

Bir plan mevcut olduğunda önizleme, ScanQuery mi olduğunu ve hangi indeksi kullandığını belirtir; RCU tahmini yalnızca tablo meta verileri buna izin verdiğinde görünür.

Bu durum çubuğu Workbench ve PartiQL'de görünür, görsel filtre satırında değil. Boş SQL, derleme hatası, DML ya da ayrıştırılamayan PartiQL için bir plan yoktur, dolayısıyla maliyet çubuğu da çıkmaz.

Sıradan bir partition Query'si “maliyet eşleşen öğelere bağlı” der ve hiç RCU göstermez. Bir nokta okuması ve boyutu bilinen bir Scan de destekleyici DescribeTable meta verileri olmadan RCU vermez.

Bir nokta okuması yine de “≈1 öğe” gösterir. Öğe sayısı olan bir Scan bir tablo tahmini gösterebilir, ama RCU'sunu hesaplamak için tablo boyutunun bayt cinsinden bilinmesi gerekir. Bu değerlerin ikisi de yoksa Scan “boyut bilinmiyor” der.

Scan tahminleri, canlı değerleri değil DynamoDB'nin düzenli aralıklarla yenilenen tablo sayılarını kullanır. Nokta okuması dalı güçlü tutarlılığı, Scan dalı ise nihai tutarlılığı fiyatlandırır.

Hem Workbench hem PartiQL nihai tutarlı okumalar çalıştırır. Bu nedenle nokta okuması tahmini, isteğin gerçek maliyetinin iki katı olabilir. Her sayıyı bir fatura değil, çalıştırma öncesi bir ipucu olarak gör.

Çalıştırma, şablonlar ve geçmiş

  • Çalıştır — düzenleyicide ⌘↩, Run düğmesi ya da yeniden çalıştırmak için ⌘R. Workbench sekmeleri açılışta asla otomatik çalışmaz; çalıştırma her zaman kasıtlıdır.
  • Sonuna kadar çalıştır⌘⇧↩ ya da Run düğmesinin bölünmüş menüsünden seç; tek bir sayfa yerine tüm birleştirilmiş sonucu akıtmak için. Sayfa sınırı kalkar ve sorgu tükenene kadar sayfalar gelmeye devam eder; Durdur tek frendir. Tek geçişte tamamlamak istediğin büyük toplamalar için kullanışlı.
  • Şablonlar ve kaydedilmiş sorgularSorgular menüsü, başlangıç şablonlarını (tümünü-seç, anahtara-göre-filtrele, gruba-göre-say; Tab ile gezilen deliklerle) ve Kaydet ile sakladığın her sorguyu — herhangi bir tabloda yeniden kullanılabilen kendi adlandırdığın sorgularını — barındırır. Birini seçmek düzenleyicinin içeriğini değiştirir, böylece tam olarak kaydettiğin gibi çalışır.
  • Geçmiş — her çalıştırma kaydedilir (PartiQL'in geçmişinden ayrı olarak), aranabilir ve geri yüklenebilir — başarısız çalıştırmalar dahil; böylece düzeltip yeniden deneyebilirsin.

Bir Workbench sekmesi kaydedilmiş bir spec'tir — adlandır, ⌘K'den yeniden aç ve yeniden yüklemelere dayanır. Ayrıca birleştirilmiş sonuçlarını dışa aktarabilirsin.

Workbench ve Smart Table

Her ikisi de aynı birleştirme motorunu çalıştırır; aynı şeyi yazmanın iki yolu:

  • Workbench, SQL şerididir — bir sorgu yaz, toplamalar ve çözümlenmiş öznitelikler al.
  • Smart Table, görsel şerittir — birleştirmeleri bir tuvale çiz ve birleştirilmiş satırlara normal bir tablo gibi gözat.

Güncellendi