Condividi tramite


Panoramica delle funzioni finestra

Le funzioni window operano su più righe (record) in un set di righe alla volta. A differenza delle funzioni di aggregazione, le funzioni finestra richiedono che le righe del set di righe vengano serializzate (con un ordine specifico). Le funzioni finestra possono dipendere dall'ordine per determinare il risultato.

Le funzioni finestra possono essere usate solo nei set serializzati. Il modo più semplice per serializzare un set di righe consiste nell'usare l'operatore serialize. Questo operatore "blocca" l'ordine delle righe in modo arbitrario. Se l'ordine delle righe serializzate è semanticamente importante, usare l'operatore di ordinamento per forzare un ordine specifico.

Al processo di serializzazione è associato un costo non semplice. Ad esempio, potrebbe impedire il parallelismo delle query in molti scenari. Pertanto, non applicare la serializzazione inutilmente. Se necessario, ridisporre la query per eseguire la serializzazione nel set di righe più piccolo possibile.

Set di righe serializzato

Un set di righe arbitrario, ad esempio una tabella o l'output di un operatore tabulare, può essere serializzato in uno dei modi seguenti:

  1. Ordinando il set di righe. Vedere di seguito per un elenco di operatori che generano set di righe ordinati.
  2. Utilizzando l'operatore serialize.

Molti operatori tabulari serializzano l'output ogni volta che l'input è già serializzato, anche se l'operatore non garantisce che il risultato venga serializzato. Ad esempio, questa proprietà è garantita per l'operatore extend, l'operatore project e l'operatore where.

Operatori che generano set di righe serializzati ordinando

Operatori che mantengono la proprietà del set di righe serializzato