2013-06-04 13 views
7

Czy można ustawić atrybuty kolumn dla tabeli podzielonej na partycje?Czy mogę ustawić atrybuty kolumn dla tabeli z partycjami kdb?

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

Czy należy ustawić atrybuty w tabeli pamięci, zanim uruchomię partycjonowanie? Czy atrybuty zostaną zachowane po partycjonowaniu?

+0

tylko czytanie to pytanie nauczyło mnie, że mogę dodać atrybuty do tabel kolumn z 'update' oświadczeniu. Dzięki! – kevinarpe

Odpowiedz

7

Spójrz na setattrcol w dbmaint.q. Ten skrypt jest bardzo przydatny podczas pracy z partycjonowanymi bazami danych.

+0

Atrybut grupy działa, ale posortowane atr nie działa. –

+0

Aby zastosować posortowany atrybut, dane muszą być w kolejności rosnącej. Zastosowanie s # nie sortuje danych, wskazuje tylko, że lista jest posortowana w porządku rosnącym. – user1895961

+0

Dzięki. Również wygląda tak, jak po uruchomieniu setattrcol() wszystkie daty dodawane do bazy danych zawierają ten atrybut. Byłoby to spójne, ponieważ atrybut jest ustawiony na poziomie tabeli, a nie tylko dla obecnie podzielonych na partycje dat. Musi być gdzieś zapisany wskaźnik, który każe kdb budować indeksowanie grupy za każdym razem, gdy wstawiam nowe daty? –

4

Aby partycji na dysku, aby być sortowane, trzeba wykonać iterację rozbiorów i używać xasc następująco: dla każdej partycji .. zakładając, że masz stolik cytat podzielono według daty, aby posortować według `datownik

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

Po zakończeniu sortowania każdej partycji kolumnę s attribute will appear on datownika ..

q)meta quote 
    c  | t f a 
    ---------| ----- 
    date  | d  
    timestamp| p s 
    pair  | s  
    side  | c  
    ... 
Powiązane problemy