Modifié par Nief, le 27 Jun 2006

SRB: manipuler les métadonnées


 1. Introduction
 2. SufMeta
    2.1. Définition
    2.2. Ajout de metadonnées
    2.3. Lister les metadonnées
         2.3.1. Lister les métadonnées associées à une ressource
         2.3.2. Lister les métadonnées du MCAT
    2.4. Supprimer une métadonnée
    2.5. Recherche à partir de métadonnées
         2.5.1. Recherche de fichiers correspondant à un critère avec Sufmeta
         2.5.2. Recherche de fichiers correspondant à un critère avec SgetD
         2.5.3. Listage des fichiers correspondant à un critère avec Sls
    2.6. Option de la commance Sufmeta
    2.7. Exemple divers
 3. SMeta

1. Introduction

Concernant les métadonnées de SRB, il existe une page explicative sur le site du SDSC (Metadonnées SRB). Lorsqu'un utilisateur souhaite ajouter des métadonnées aux objets SRB, il peut le faire avec deux commandes :
> SufMeta
ou
> Smeta
La commande Smeta permet d'accéder à des métadonnées prédéfinis. Les noms des métadonnées sont des noms de champs génériques, comme par exemple UDSMD0, UDSMD1, ... UDSMD9 pour les objets SRB. La commande SufMeta est plus récente que Smeta. SufMeta permet à l'utilisateur de définir ses propres métadonnées.

2. SufMeta

2.1. Définition

Cette commande permet à un utilisateur d'ajouter ses propres métadonnées sur :Une métadonnée est définie par trois champs :

2.2. Ajout de metadonnées

Exemple d'ajout d'une metadonnée sur un fichier test.txt situé dans la collection /Test/home/calvat.in2p3 :
> Scd /Test/home/calvat.in2p3
> Sufmeta age 20 test.txt
> Sufmeta taille 178 test.txt
Un champ age est ajouté aux métadonnés de l'objet test.txt et sa valeur vaut 20. Le nom du champ (age) est stocké dans le champ userdef_metastr0 de la table MDAS_AD_MDATA. La valeur (20) est stockée dans le champ userdef_metastr1 de la table MDAS_AD_MDATA.

2.3. Lister les metadonnées

2.3.1. Lister les métadonnées associées à une ressource

Pour lister les métadonnées associées à un objet, il faut utiliser la commande Sls avec l'option -a. Exemple:
> Scd /Test/home/calvat.in2p3
> Sls -a test.txt
--------------------------- RESULTS ------------------------------
calvat 0 test1  3011592 2005-03-23-14.42 % test.txt
   age:20
   taille:178
-----------------------------------------------------------------

2.3.2. Lister les métadonnées du MCAT

Pour lister les métadonnées du MCAT associé à vos ressources, il faut utiliser la commande Smeta. Exemple d'ffichage des métadonnées:
> Smeta -R
--------------------------- RESULTS ------------------------------
data_name: test.txt
data_grp_name: /Test/home/calvat.in2p3
metadatanum: 0
userdef_metastr0: age
userdef_metastr1: 20
userdef_metastr2: 
userdef_metastr3: 
userdef_metastr4: 
userdef_metastr5: 
userdef_metastr6: 
userdef_metastr7: 
userdef_metastr8: 
userdef_metastr9: 
userdef_metaint0: 
userdef_metaint1: 
-----------------------------------------------------------------
data_name: test.txt
data_grp_name: /Test/home/calvat.in2p3
metadatanum: 1
userdef_metastr0: taille
userdef_metastr1: 178
userdef_metastr2: 
userdef_metastr3: 
userdef_metastr4: 
userdef_metastr5: 
userdef_metastr6: 
userdef_metastr7: 
userdef_metastr8: 
userdef_metastr9: 
userdef_metaint0: 
userdef_metaint1: 

2.4. Supprimer une métadonnée

Pour supprimer une métadonnée, il suffit d'utliser la commmande Sufmeta avec l'option -d. Exemple:
> Sufmeta -R -d age 20 test.txt
cela supprime la métadonnée age attachée à l'objet test.txt

2.5. Recherche à partir de métadonnées

L'ensemble des Scommandes liées à la consultations d'informations peuvent être conditionnés par les métadonnées.

2.5.1. Recherche de fichiers correspondant à un critère avec Sufmeta

Exemple de recherche d'objet dont l'age est 20:
> Scd /Test/home/calvat.in2p3
> Sufmeta -Q age = 20
--------------------------- RESULTS ------------------------------
data_name: test.txt
data_grp_name: /Test/home/calvat.ccin2p3
-----------------------------------------------------------------

2.5.2. Recherche de fichiers correspondant à un critère avec SgetD

Exemple de recherche d'objet dont l'age est 20:
> Scd /Test/home/calvat.in2p3
> SgetD -A "ATTRCONDD age = 20"

--------------------------- RESULTS ------------------------------
repl_enum: 0
data_name: test.txt
data_typ_name: generic
path_name: /srb/srbcache/Test/test1/calvat.ccin2p3/test.txt
data_grp_name: /Test/home/calvat.ccin2p3
data_size: 83
phy_rsrc_name: test1
is_dirty: 1
container_name: 
version_num: 0
-----------------------------------------------------------------

2.5.3. Listage des fichiers correspondant à un critère avec Sls

L'option -A de la commande Sls permet de lister les fichiers d'un répertoire précis.
> Scd /Test/home/calvat.in2p3
> Sls -A "ATTRCONDD age = 20"
--------------------------- RESULTS ------------------------------
test.txt
-----------------------------------------------------------------
L'option -c permet de faire une recherche dans tout le metacalogue SRB.
> Sls -c age = 20
--------------------------- RESULTS ------------------------------
test.txt
-----------------------------------------------------------------

2.6. Option de la commance Sufmeta

-h   display command options
-d   operate on metadata for data objects
-c   operate on metadata for collections
-u   operate on metadata for users=
-r   operate on metadata for resources
-Q   defines a query operation
-f   defines bulk load option with metadata stored in a file.
-e   defines bulk load option with metadata extracted from a  srbObject
     or extracted from the targetObject itself.
-z   zone option applies to the second synopsis and is used to  perform
     the  Sls  operation on a particular zone.  If ALL is used for zone
     then every zone known to the current zone will be  queried.   zone
     can have wild cards.

2.7. Exemple divers

> Sufmeta alpha 200 foo.dat
> Sufmeta -c alpha 200 myColl
> Sufmeta -c beta bar myColl
> Sufmeta -c beta 200 myColl
> Sufmeta -Q  alpha = 200
> Sufmeta -Q  -c alpha = 200 beta = bar
> Sufmeta -Q  -c alpha = 200 beta like '*a*'
> Sufmeta -Q  -c alpha '>' 100 beta like '*a*'
> Sufmeta foo.dat
> Sufmeta -f mdFile '|' ticket123.dat
> Sufmeta -c -f mdFile '|' ticket123.dat
    where mdFile is of the form:
          ticketnum|es2345
          car name|ford escort
          driver name|john q. public
          numplate|123455
          speed|89|kmph|overspeed
          fine|55|dollars

> Sufmeta -D -f mdFileMult '|'
    where mdFileMultis of the form:
          SETMINMETADATANUM=GIVENPERDATA
          /home/srb/rajatest|Sput.c|11|ticketnum|es2345
          /home/srb/rajatest|Sput.c|12|car name|ford escort
          /home/srb/rajatest|Sput.c|13|driver name|john q. public
          /home/srb/rajatest|Srm.c|11|numplate|123455
          /home/srb/rajatest|Srm.c|12|speed|89|kmph|overspeed

3. SMeta

Commande obsolète : utilisez plutôt Sufmeta !!!