= Utilisation de DQ2 = [[PageOutline]] == Quand utiliser DQ2 ? == [[BR]]Selon vos besoins, vous devrez obtenir des informations sur les données afin de les rapatrier ou de les utiliser à distance. DQ2 permet de réaliser des opérations de manipulation de dataset mais il est à utiliser avec retenue, ceci afin de ne pas saturer l'espace disque du LPSC.[[BR]] Plusieurs cas peuvent se présenter * Votre job doit utiliser des données stockées sur un SE distant. [[BR]]Si vous n'accordez pas d'importance à l'endroit ou le job s'exécute, faites le tourner sur un CE proche des données. Il est inutile dans ce cas de rapatrier vos données sur le SE du LPSC. Vous n'utiliserez DQ2 qu' afin d'obtenir des informations sur vos fichiers. * Vous souhaitez que votre job s'exécute sur le site du LPSC. [[BR]]Dans ce cas, si vous avez besoin d'un dataset précis, il faut utiliser DQ2 afin de demander le transfert d'un dataset sur un espace disque réservé du SE du LPSC. Cette demande de transfert s'appelle une souscription. * Vous souhaiter effectuer un job-test sur un échantillon réduit de données.[[BR]] Dans ce cas, utilisez DQ2 pour rapatrier sur votre compte local les fichiers qu'il vous faut pour votre job. == DQ2 pour le site LPSC == [[BR]][https://twiki.cern.ch/twiki/bin/view/Atlas/DistributedDataManagement DQ2] est l'outil officiel de manipulation des données d'ATLAS. Il est développé et maintenu par le groupe DDM.[[BR]]DQ2 est installé sur les UI du LPSC (la dernière version est sur lpsc-ui.in2p3.fr). * Initialiser l'environnement DQ2 au LPSC [[BR]]L'environnement DQ2 est automatiquement initialisé quand vous vous connectez sur l'UI. == Récuperer un dataset en local avec dq2 == [[BR]]Par exemple, récuperer un fichier AOD.021339._00001.pool.root.2 d'un dataset valid1.005107.pythia_Wtauhad.recon.AOD.e322_s412_b25_r385 sur le site de BNLPANDA. * '''dq2-get''' -s site -f file dataset {{{ [lambert@lpsc-ui ~]$ dq2-get -s BNLPANDA -D -f AOD.021339._00001.pool.root.2 valid1.005107.pythia_Wtauhad.recon.AOD.e322_s412_b25_r385 [lambert@lpsc-ui ~]$ ls AOD.021339._00001.pool.root.2 }}} ''-->Exercice: Trouver un dataset non vide avec [wiki:amiUse AMI] et rapatriez un de ses fichiers sur votre compte local'' == Créer un dataset de fichier avec dq2 == [[BR]]Par exemple, créer un dataset user.!FabianLambert.test_151208 sur le space token LPSC-USERDISK contenant un fichier user.!FabianLambert.test_151208. * '''dq2-put''' -L -f file dataset {{{ [lambert@lpsc-ui ~]$ dq2-put -L IN2P3-LPSC_USERDISK -f user.FabianLambert.test_151208.txt user.FabianLambert.test_151208 ... Gathering list of files... done user.FabianLambert.test_151208.txt: pre-checking file Checking for GUID clashes user.FabianLambert.test_151208 -- confirm creating dataset (1 file): (7dadd08c-7258-42f0-8235-4a15b4b32163 ad:370105ee 17) user.FabianLambert.test_151208.txt Confirm (y/n)? y Confirmed lcg-cp -v --vo atlas -b -D srmv2 -S ATLASUSERDISK file:///atlas/lambert/user.FabianLambert.test_151208.txt srm://lpsc-se-dpm-server.in2p3.fr:8446/srm/managerv2?SFN=/dpm/in2p3.fr/home/atlas/atlasuserdisk/user/FabianLambert/user.FabianLambert.test_151208/user.FabianLambert.test_151208.txt: starting (you will not see output until the command is finished) lcg-cp -v --vo atlas -b -D srmv2 -S ATLASUSERDISK file:///atlas/lambert/user.FabianLambert.test_151208.txt srm://lpsc-se-dpm-server.in2p3.fr:8446/srm/managerv2?SFN=/dpm/in2p3.fr/home/atlas/atlasuserdisk/user/FabianLambert/user.FabianLambert.test_151208/user.FabianLambert.test_151208.txt: done user.FabianLambert.test_151208.txt: verifying user.FabianLambert.test_151208.txt: file catalogue registration successful (7dadd08c-7258-42f0-8235-4a15b4b32163) Dataset user.FabianLambert.test_151208 registered with version 1 at location IN2P3-LPSC_USERDISK with status CLOSED Finished }}} ''-->Exercice: Créer un dataset non vide sur le space-token LPSC-USERDISK (espace scratch) et contrôler qu'il a bien été créé avec dq2-list-dataset'' == Souscrire un dataset == [[BR]]En théorie, vous pouvez demander le transfert d'un dataset sur un site avec la commande '''dq2-register-subscription''' [[BR]] En pratique, la manière officielle de procéder est de remplir ce [http://gridui02.usatlas.bnl.gov:25880/server/pandamon/query?mode=reqsubs0 formulaire] == Lister les datasets présent sur le site LPSC == * '''dq2-list-dataset-site''' site {{{ [lambert@lpsc-ui ~]$ dq2-list-dataset-site LPSC mc12.006895.AlpgenJimmyGamGamWithAAMassNp0.evgen.EVNT.v12000702_tid014701 calib0_valid1_V1.007061.singlepart_e_E100.recon.AOD.v13003003_tid017711 trig1_misal1_mc12.005181.PythiaZmumuJet.recon.ESD.v13003003_tid018043 }}} == Lister les fichiers d'un dataset == * '''dq2-list-files''' dataset {{{ [lambert@lpsc-ui ~]$ dq2-list-files user.flambert.testDataset user.flambert.testfileLFN 75f277aa-2e51-438d-8e7e-360e119131ee md5:adc279da3fba38268f09afee571a543e 28 total files: 1 total size: 28 date: 2008-05-23 13:15:07 }}} == Déclarer un dataset == [[BR]]Les datasets suivent une nomenclature très précise. Mais pour des données personnelles, vous pouvez très bien créer vos propres datasets * '''dq2-register-dataset''' dataset {{{ [lambert@lpsc-ui ~]$ dq2-register-dataset user.flambert.testDataset Dataset user.flambert.testDataset created. }}} == Déclarer une localisation de dataset == * '''dq2-register-location''' dataset site {{{ [lambert@lpsc-ui ~]$ dq2-register-location user.flambert.testDataset LPSC Dataset user.flambert.testDataset registered at LPSC }}} == Déclarer des fichiers d'un dataset == * '''dq2-register_files''' dataset lfn guid fs: md5:[[BR]] Les attributs taille du fichier et checksum sont maintenant requis {{{ [lambert@lpsc-ui ~]$ dpns-ls -l -rw-rw-r-- 1 102 102 28 May 23 09:55 user.flambert.testfile [lambert@lpsc-ui ~]$ md5sum user.flambert.testfile adc279da3fba38268f09afee571a543e user.flambert.testfile [lambert@lpsc-ui ~]$ dq2-register-files user.flambert.testDataset user.flambert.testfileLFN 75f277aa-2e51-438d-8e7e-360e119131ee fs:28 md5:adc279da3fba38268f09afee571a543e Dataset user.flambert.testDataset updated }}} ''-->Exercice: Créez votre dataset, déclarez le comme étant au LPSC et ajoutez y un fichier''[[BR]] ''-->Exercice: Vérifiez que votre dataset est au LPSC''[[BR]] ''-->Exercice: Vérifiez que votre fichier fait partie de votre dataset''[[BR]] ''-->Exercice: Récupérer votre dataset sur votre compte local'' == Supprimer un dataset == [[BR]]Les entrées dans la base DQ2 sont effacées mais vos fichiers sont toujours présents sur le SE * '''dq2-erase''' dataset {{{ [lambert@lpsc-ui ~]$ dq2-erase user.flambert.testDataset Dataset user.flambert.testDataset erased }}} ''-->Exercice: Supprimer votre dataset et vérifier qu'il est bien supprimer de DQ2'' == Autre commandes dq2 == DQ2 fournit de nombreuses commandes. Vous pouvez obtenir de l'aide avec l'option --help. {{{ dq2-check-replica-consistency dq2-get-metadata dq2-list-files dq2-register-datasets-container dq2-close-dataset dq2-get-number-files dq2-list-subscription dq2-register-files dq2-delete-datasets dq2-get-replica-metadata dq2-list-subscription-info dq2-register-location dq2-delete-files dq2-list-dataset dq2-list-subscription-site dq2-register-subscription dq2-delete-replicas dq2-list-dataset-by-creationdate dq2-ls dq2-register-version dq2-delete-subscription dq2-list-dataset-replicas dq2-metadata dq2-reset-subscription dq2-destinations dq2-list-datasets-container dq2-ping dq2-reset-subscription-site dq2-erase dq2-list-dataset-site dq2-put dq2-sample dq2-freeze-dataset dq2-list-erased-datasets dq2-register-container dq2-sources dq2-get dq2-list-file-replicas dq2-register-dataset }}} [wiki:dataMgt up] ; [wiki:amiUse previous]