2013-06-04 13 views
7

È possibile impostare gli attributi di colonna per una tabella partizionata?Posso impostare gli attributi di colonna per una tabella partizionata kdb?

q)h "update `g#ticker from `pmd" 
'par 
q)h "update `s#ts from `pmd" 
'par 
q) 

Devo impostare gli attributi sulla tabella di memoria, prima di eseguire il partizionamento? Gli attributi saranno preservati dopo il partizionamento?

+0

Proprio la lettura di questa domanda mi ha insegnato che avrei potuto aggiungere attributi a tabelle colonne con un'istruzione 'update'. Grazie! – kevinarpe

risposta

7

Dai uno sguardo allo setattrcol in dbmaint.q. Questo script è molto utile quando si lavora con database partizionati.

+0

L'attributo di gruppo funziona, ma l'attr selezionato non lo fa. –

+0

Per applicare l'attributo ordinato, i dati devono essere in ordine crescente. L'applicazione di s # non ordina i dati, ma indica semplicemente che l'elenco è ordinato in ordine crescente. – user1895961

+0

Grazie. Inoltre sembra che dopo aver eseguito setattrcol() tutte le date che sto aggiungendo al database includano quell'attributo. Ciò sarebbe coerente, poiché l'attributo è impostato a livello di tabella, non solo per le date attualmente partizionate. Ci deve essere un indicatore memorizzato da qualche parte che dice a kdb di costruire l'indicizzazione del gruppo ogni volta che inserisco nuove date? –

4

Affinché le partizioni sul disco da ordinare, è necessario scorrere le partizioni e utilizzare xasc come segue: per ogni partizione .. a patto di avere un tavolo citazione partizionata per data per ordinare da `timestamp

{`timestamp xasc `$":./2014.04.20/quote/"} 

volta che hai finito di ordinamento ogni partizione, la colonna s attribute will appear on timestamp ..

q)meta quote 
    c  | t f a 
    ---------| ----- 
    date  | d  
    timestamp| p s 
    pair  | s  
    side  | c  
    ... 
Problemi correlati