2013-06-04 1 views
7

Est-il possible de définir des attributs de colonne pour une table partitionnée?Puis-je définir des attributs de colonne pour une table partitionnée kdb?

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

Dois-je définir les attributs sur la table de mémoire, avant que je lance la partition? Les attributs seront-ils conservés après le partitionnement?

+0

Il suffit de lire cette question m'a appris que je pourrais ajouter des attributs aux colonnes de tables avec une instruction 'update'. Merci! – kevinarpe

Répondre

7

Jetez un oeil à la setattrcol en dbmaint.q. Ce script est très utile lorsque vous travaillez avec des bases de données partitionnées.

+0

L'attribut de groupe fonctionne, mais pas l'attr trié. –

+0

Pour appliquer l'attribut trié, les données doivent être dans l'ordre croissant. Appliquer le s # ne trie pas les données, cela indique simplement que la liste est triée par ordre croissant. – user1895961

+0

Merci. En outre, il semble qu'après avoir exécuté setattrcol() toutes les dates que j'ajoute à la base de données incluent cet attribut. Ce serait cohérent, puisque l'attribut est défini au niveau de la table, pas seulement pour les dates actuellement partitionnées. Il doit y avoir un indicateur stocké quelque part qui dit à kdb de construire l'indexation du groupe chaque fois que j'insère de nouvelles dates? –

4

Pour que les partitions sur le disque à trier, vous devez parcourir les partitions et utiliser xasc comme suit: pour chaque partition .. en supposant que vous avez une table de devis cloisonné par date trier par TIMESTAMP

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

une fois que vous avez fini de trier chaque partition, la colonne d'horodatage s attribute will appear on ..

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