2013-06-04 25 views
7

Có thể đặt thuộc tính cột cho bảng được phân đoạn không?Tôi có thể đặt thuộc tính cột cho bảng được phân đoạn kdb không?

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

Tôi có nên đặt thuộc tính trên bảng bộ nhớ trước khi chạy phân vùng không? Các thuộc tính có được bảo toàn sau khi phân vùng không?

+0

Chỉ cần đọc câu hỏi này đã dạy tôi rằng tôi có thể thêm các thuộc tính vào các cột bảng với một 'tuyên bố update'. Cảm ơn! – kevinarpe

Trả lời

7

Hãy xem setattrcol trong dbmaint.q. Kịch bản này rất hữu ích khi làm việc với các cơ sở dữ liệu được phân đoạn.

+0

Thuộc tính nhóm hoạt động, nhưng attr được sắp xếp thì không. –

+0

Để áp dụng thuộc tính được sắp xếp, dữ liệu phải theo thứ tự tăng dần. Áp dụng s # không sắp xếp dữ liệu, nó chỉ cho biết danh sách được sắp xếp theo thứ tự tăng dần. – user1895961

+0

Cảm ơn. Ngoài ra nó trông giống như sau khi tôi chạy setattrcol() tất cả các ngày tôi thêm vào cơ sở dữ liệu bao gồm thuộc tính đó. Điều đó sẽ nhất quán, vì thuộc tính được đặt ở cấp bảng, không chỉ cho các ngày được phân đoạn hiện tại. Phải có một chỉ báo được lưu trữ ở đâu đó mà nói với kdb để xây dựng chỉ số nhóm bất cứ lúc nào tôi đang chèn ngày mới? –

4

Để cho các phân vùng trên đĩa để được sắp xếp, bạn cần phải lặp qua các phân vùng và sử dụng xasc như sau: cho mỗi phân vùng .. giả sử bạn có một bảng phân vùng quote theo ngày để sắp xếp bởi `timestamp

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

Khi bạn đã hoàn thành sắp xếp mỗi phân vùng, cột s attribute will appear on timestamp ..

q)meta quote 
    c  | t f a 
    ---------| ----- 
    date  | d  
    timestamp| p s 
    pair  | s  
    side  | c  
    ... 
Các vấn đề liên quan