Langage Q - Fonctions de maintenance

.Q.en

.Q.enest une fonction dyadique qui aide à écarter une table en énumérant une colonne de symboles. Il est particulièrement utile lorsque nous traitons de la base de données historique (évasée, tables de partition, etc.). -

.Q.en[`:directory;table]

directory est le répertoire personnel de la base de données historique où sym file se trouve et table est la table à énumérer.

L'énumération manuelle des tables n'est pas nécessaire pour les enregistrer en tant que tables évasées, car cela sera fait par -

.Q.en[`:directory_where_symbol_file_stored]table_name

.Q.dpft

le .Q.dpftLa fonction aide à créer des tables partitionnées et segmentées. C'est une forme avancée de.Q.en, car il divise non seulement la table mais crée également une table de partition.

Il y a quatre arguments utilisés dans .Q.dpft -

  • descripteur de fichier symbolique de la base de données où l'on souhaite créer une partition,

  • q valeur de données avec laquelle nous allons partitionner la table,

  • nom du champ avec lequel l'attribut parted (`p #) va être appliqué (généralement` sym), et

  • le nom de la table.

Prenons un exemple pour voir comment cela fonctionne -

q)tab:([]sym:5?`msft`hsbc`samsung`ibm;time:5?(09:30:30);price:5?30.25)

q).Q.dpft[`:c:/q/;2014.08.24;`sym;`tab]
`tab

q)delete tab from `
'type

q)delete tab from `/
'type

q)delete tab from .
'type

q)delete tab from `.
`.

q)tab
'tab

Nous avons supprimé le tableau tabde la mémoire. Chargez-le maintenant depuis la base de données

q)\l c:/q/2014.08.24/

q)\a
,`tab

q)tab

   sym      time      price
-------------------------------
  hsbc    07:38:13   15.64201
  hsbc    07:21:05   5.387037
  msft    06:16:58   11.88076
  msft    08:09:26   12.30159
 samsung  04:57:56   15.60838

.Q.chk

.Q.chk est une fonction monadique dont le seul paramètre est le descripteur de fichier symbolique du répertoire racine. Il crée des tables vides dans une partition, si nécessaire, en examinant chaque sous-répertoire de partition à la racine.

.Q.chk `:directory

directory est le répertoire personnel de la base de données historique.