PartiQL

PartiQL è il linguaggio di query compatibile con SQL di DynamoDB. Porta un qualsiasi tab tabella in modalità PartiQL (⌘⇧M) per scrivere direttamente istruzioni SELECT, INSERT, UPDATE e DELETE invece di cliccare sulle pillole di filtro.

Il completamento resta dentro la tabella corrente: l'editor suggerisce i campi e i valori indicizzati di quella tabella, più un segnaposto $table. Non offre un selettore di tabelle. Vedi Statistiche della tabella per capire come viene costruito l'indice locale.

Portare un tab in modalità PartiQL esegue automaticamente lo predefinito SELECT * FROM "table", l'equivalente diretto dell'apertura della tabella nella vista visuale. Una volta che modifichi l'istruzione, eseguirla sta a te: premi ⌘↩. I risultati arrivano in streaming e Carica altro recupera le pagine successive.

PartiQL usa lo stesso piano di query e anteprima dei costi del Workbench.

SELECT * FROM "my-table" WHERE pk = 'USER#42' AND begins_with(sk, 'ORDER#')
L'editor PartiQL con un'istruzione SELECT, il menu dei template e i risultati in streaming sotto.
L'editor PartiQL con un'istruzione SELECT, il menu dei template e i risultati in streaming sotto.

PartiQL non è SQL

Il PartiQL di DynamoDB è un sottoinsieme voluto. L'editor fa il lint della query mentre scrivi e segnala i costrutti che DynamoDB non eseguirà. Alcune diagnostiche includono una correzione rapida in un clic. Le trappole più comuni:

  • IN usa le parentesi quadre, non quelle tondeWHERE id IN ['a', 'b'], non ('a', 'b'). La correzione rapida lo riscrive. Il linter avvisa anche quando la lista supera i limiti di DynamoDB (50 valori su una colonna chiave di partizione, 100 su una colonna non chiave), prima che sia il server a rifiutarla.
  • Nessuna clausola LIMIT — la dimensione della pagina è un controllo del tab, non SQL. Usa Carica altro.
  • Niente JOIN, GROUP BY, HAVING, aggregazioni, subquery, UNION o CTE. Per quelli apri un tab Workbench: il linter ti indirizza lì.
  • LIKE → funzioneLIKE '%foo%' diventa contains(col, 'foo'), 'foo%' diventa begins_with(col, 'foo'). Correzione rapida disponibile.
  • IS NULL / IS NOT NULLattribute_not_exists(col) / attribute_exists(col). Correzione rapida disponibile (nota la mappatura invertita).
  • Letterali stringa con apici singoli'value', non "value". I doppi apici indicano un identificatore.

Il popover di aiuto sul formato accanto al pulsante Esegui li elenca inline ogni volta che ti serve un promemoria.

Template e query salvate

Il menu Query inserisce nell'editor istruzioni già pronte, risolte sulle chiavi reali della tabella attiva e su un valore campionato: così un template SELECT arriva già con un riferimento alla tua chiave di partizione, non a un segnaposto. Passa con Tab tra i buchi evidenziati per completare il resto.

Conserva un'istruzione che riutilizzerai con il pulsante Salva: le tue query salvate vivono nello stesso menu accanto ai template, pronte da eseguire su qualsiasi tabella. Workbench e PartiQL mantengono librerie separate, dato che parlano linguaggi di query diversi.

Template di scrittura

I template INSERT / UPDATE / DELETE usano di proposito chiavi sintetiche DEMO-*, così eseguirne uno subito non può modificare per sbaglio una riga reale. Sono pensati per essere eseguiti in ordine — insert, poi update, poi delete dello stesso item di prova — e sei tu a modificare le chiavi per puntare ai dati veri.

Cronologia

Ogni query eseguita viene salvata nella cronologia della modalità (separata da quella del Workbench). Riapri il menu della cronologia per ripristinare nell'editor un'istruzione precedente, comprese le esecuzioni fallite, così puoi correggerle e riprovare.

Aggiornato