Linguaggio Q - Funzioni di manutenzione

.Q.en

.Q.enè una funzione diadica che aiuta a dividere una tabella enumerando una colonna di simboli. È particolarmente utile quando abbiamo a che fare con db storici (splayed, tabelle delle partizioni, ecc.). -

.Q.en[`:directory;table]

dove directory è la home directory del database storico dove sym file si trova e table è la tabella da enumerare.

L'enumerazione manuale delle tabelle non è necessaria per salvarle come tabelle divaricate, poiché ciò sarà fatto da:

.Q.en[`:directory_where_symbol_file_stored]table_name

.Q.dpft

Il .Q.dpftla funzione aiuta nella creazione di tabelle partizionate e segmentate. È una forma avanzata di.Q.en, poiché non solo visualizza la tabella, ma crea anche una tabella delle partizioni.

Ci sono quattro argomenti usati in .Q.dpft -

  • handle di file simbolico del database in cui vogliamo creare una partizione,

  • q valore dei dati con cui partizioneremo la tabella,

  • nome del campo con cui verrà applicato l'attributo parted (`p #) (solitamente` sym), e

  • il nome della tabella.

Facciamo un esempio per vedere come funziona:

q)tab:([]sym:5?`msft`hsbc`samsung`ibm;time:5?(09:30:30);price:5?30.25)

q).Q.dpft[`:c:/q/;2014.08.24;`sym;`tab]
`tab

q)delete tab from `
'type

q)delete tab from `/
'type

q)delete tab from .
'type

q)delete tab from `.
`.

q)tab
'tab

Abbiamo cancellato la tabella tabdalla memoria. Adesso carichiamolo dal db

q)\l c:/q/2014.08.24/

q)\a
,`tab

q)tab

   sym      time      price
-------------------------------
  hsbc    07:38:13   15.64201
  hsbc    07:21:05   5.387037
  msft    06:16:58   11.88076
  msft    08:09:26   12.30159
 samsung  04:57:56   15.60838

.Q.chk

.Q.chk è una funzione monadica il cui singolo parametro è l'handle simbolico del file della directory root. Crea tabelle vuote in una partizione, ove necessario, esaminando le sottodirectory di ciascuna partizione nella radice.

.Q.chk `:directory

dove directory è la home directory del database storico.