2013-06-04 50 views
7

是否可以設置分區表的列屬性?我可以設置kdb分區表的列屬性嗎?

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

我應該在運行分區之前在內存表上設置屬性嗎?在分區之後屬性會保留嗎?

+0

只是閱讀這個問題告訴我,我可以用一個'update'語句添加屬性表中的列。謝謝! – kevinarpe

回答

7

請看dbmaint.q中的setattrcol。使用分區數據庫時,此腳本非常有用。

+0

組屬性有效,但排序後的attr不。 –

+0

爲了應用排序後的屬性,數據必須按升序排列。應用s#不會對數據進行排序,它只是表示列表按升序排序。 – user1895961

+0

謝謝。此外它看起來像我運行setattrcol()後,我添加到數據庫中的所有日期包括該屬性。這是一致的,因爲該屬性設置在表級別,而不僅僅是當前分區日期。在我插入新日期的任何時候,必須有指示符存儲在某處,以告訴kdb建立組索引? –

4

爲了對磁盤分區進行排序,您需要通過分區迭代,並使用xasc如下: 每個分區..假設你按日期分區報價表由'時間戳

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

一旦你整理完每個分區,s attribute will appear on時間戳列..

q)meta quote 
    c  | t f a 
    ---------| ----- 
    date  | d  
    timestamp| p s 
    pair  | s  
    side  | c  
    ... 
相關問題