Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Ohje Allaksen käyttöön Roihu-supertietokoneessa

Yksi Allaksen tärkeimmistä käyttötapauksista on datan säilyttäminen silloin, kun sitä ei käytetä aktiivisesti CSC:n supertietokoneilla. Kun aloitat työskentelyn, tuot datan Allaksesta käyttöön. Ja kun data ei ole enää aktiivisessa käytössä, se voidaan siirtää takaisin Altaaseen. Roihun scratch-levyalue mahdollistaa suurten aineistojen analysoinnin. Scratch-levyä ei kuitenkaan ole tarkoitettu tutkimusdatan pitkäaikaiseen säilytykseen. Data, jota täytyy säilyttää pidempään kuin vain muutamia viikkoja, kannattaa kopioida sen sijaan Allakseen tai LUMI-O-objektitallennuspalveluun. Allas tarjoaa alustan, jota voit käyttää datasi säilyttämiseen niin kauan kuin CSC-projektisi on aktiivinen. Tallennuksen lisäksi Allasta voidaan käyttää datan siirtämiseen eri palvelimien välillä ja datan jakamiseen muiden käyttäjien kanssa.

Jos et ole käyttänyt Allasta aiemmin, aloita lukemalla Allaksen yleisesittely, joka sisältää paljon tärkeitä huomioita.

Huomaa, että CSC:n laskentaprojekteilla ei ole automaattisesti pääsyä Allakseen. Projektin johtajan täytyy aktivoida Allas-palvelu MyCSC:ssä ennen kuin projekti voi alkaa käyttää Allasta. Allaksen esittelysivulla kerrotaan, miten tämä tehdään, sekä oletuskiintiöistä ja lisätallennustilan hakemisesta.

Lisätietoa aiheista:

Datan siirtämiseen Allaksen ja Roihun välillä on useita vaihtoehtoisia työkaluja. Voit käyttää Roihun selainkäyttöliittymää, komentorivityökaluja tai Python-, R- tai muita työkaluja. Roihussa Allaksen komentorivityökalut ovat CSC:n asentamia ja saatavilla allas-moduulin kautta.

Esimerkit

Tässä ohjeessa annetaan kolme esimerkkiä Allaksen käytöstä Roihussa. Nämä esimerkit perustuvat interaktiivisesti suoritettuihin komentoihin, joten esimerkit 1 ja 2 soveltuvat vain verrattain pienille aineistoille (enintään joitakin satoja gigatavuja). Kolmas esimerkki sopii myös suuremmille aineistoille.

  1. Ensimmäisessä esimerkissä käytetään a-komentoja (a-put, a-get) datan lataamiseen Roihusta Allakseen ja sitten datan lataamiseen takaisin Roihuun.
  2. Toisessa esimerkissä siirretään sama data käyttäen Rclonea.
  3. Kolmannessa esimerkissä käsitellään tapausta, jossa kopioitava aineisto sisältää suuren määrän tiedostoja.

A-komennot soveltuvat paremmin tilanteisiin, joissa dataa käytetään pääasiassa CSC:n laskentaympäristössä (Roihu, Lumi). Toinen vaihtoehto, Rclone, on hyvä tilanteissa, joissa dataa käytetään myös CSC:n ulkopuolella. Huomaa, että s3cmd ja aws s3 ovat täysin käyttökelpoisia vaihtoehtoja rclonelle ja a-komennoille, vaikka niitä ei käytetä tässä ohjeessa.

Esimerkki 1: Allaksen käyttö a-komennoilla

A. Datan lataaminen Roihusta Allakseen

A-komennot ovat Allas-kohtaisia työkaluja, joiden avulla Allaksen käyttö on helppo aloittaa. A-komennot arkistoivat ja siirtävät datan automaattisesti. Voit myös pakata datan ennen tallennusta. Esimerkiksi tekstimuotoisessa datassa pakkaus vähentää tarvittavaa tallennustilaa, mutta toisaalta tekee siirtoprosessista hieman hitaamman. A-komennot ovat hyvä vaihtoehto sekalaiselle datalle, jota käytetään enimmäkseen CSC-ympäristössä.

Tässä esimerkissä meillä on alihakemisto genomes/zebrafish projektin scratch-hakemistossa Roihussa (/scratch/project_2001659). Hakemisto zebrafish sisältää alla luetellut kahdeksan tiedostoa:

[kkayttaj@roihu-cpu-login1 ~]$ ls /scratch/project_2001659/genomes/zebrafish
Danio_rerio.GRCz10.91.1.bt2      Danio_rerio.GRCz10.91.2.bt2  
Danio_rerio.GRCz10.91.3.bt2      Danio_rerio.GRCz10.91.4.bt2  
Danio_rerio.GRCz10.91.rev.1.bt2  Danio_rerio.GRCz10.91.rev.2.bt2  
Danio_rerio.GRCz10.fa            Danio_rerio.GRCz10.fa.fai

Kopioidaksemme tämän hakemiston sisällön Allakseen asetamme ensin Allas-ympäristön:

module load allas

Sen jälkeen avaamme yhteyden Allakseen komennolla allas-conf. Komento pyytää käyttäjän CSC-salasanaa ja listaa sitten käytettävissä olevat Allas-projektit. Tässä tapauksessa valitsemme project_2001659.

[kkayttaj@roihu-cpu-login1 ~]$ allas-conf
Mode s3cmd
Please enter CSC password for account kkayttaj: <password>
Checking projects available for your account.
Please wait.
1) project_2000982     2) project_2001659     3) project_2000136      4) abort allas_conf
Please choose a project by giving an item number from the list above: 2
Configuration will be done for project: project_2001659
Protocols:
  S3
s3cmd configuration updated

Remote endpoints configured for rclone

Rclone remote name       Protocol
--------------------------------------------------------
s3allas:                 s3    
s3allas-project_2001659: s3    
--------------------------------------------------------
rclone remote s3allas: now provides an S3 based connection to project project_2001659 in Allas
aws client and s3cmd use now project_2001659
a-commands use now project_2001659 when used in S3 mode

allas-conf tallentaa S3-todennusavaimet kotihakemistoosi. Jos haluamme alkaa käyttää toista projektia, meidän täytyy suorittaa allas-conf uudelleen.

Seuraavaksi siirrymme zebrafish-hakemistoon:

cd /scratch/project_2001659/genomes/zebrafish

Voimme nyt ladata tiedostoja yksi kerrallaan Allakseen komennolla a-put:

a-put Danio_rerio.GRCz10.fa

Latausprosessin lopussa komento ilmoittaa:

-------------------------------------------------------------------------------
1 files from Danio_rerio.GRCz10.fa uploaded to bucket 2001659-mahti-SCRATCH in Allas as one file: 
2001659-mahti-SCRATCH/genomes/zebrafish/Danio_rerio.GRCz10.fa
-----------------------------------------------------------------

Upload summary:
              Date                      Name  Files Size(kB)         Location in allas
 12.10.20 12:10:50     Danio_rerio.GRCz10.fa      1  1330852 2001659-mahti-SCRATCH/genomes/zebrafish
-----------------------------------------------------------------
OK

Datan siirtäminen Allakseen tiedosto kerrallaan on hidasta ja tuottaa suuren määrän objekteja. Usein on tehokkaampaa ladata dataa Allakseen hakemisto kerrallaan ja tallentaa data suurempiin kokonaisuuksiin. Esimerkiksi zebrafish-hakemiston lataamiseksi siirrymme ensin ylähakemistoon genomes:

cd /scratch/project_2001659/genomes/

Sen jälkeen käytämme a-put-komentoa ladataksemme koko zebrafish-hakemiston Allakseen yhtenä objektina:

a-put zebrafish/

Latausprosessin lopussa komento ilmoittaa:

Files or directories to be uploaded: zebrafish/
Processing: zebrafish/
Checking total size of zebrafish. Please wait.

zebrafish contains 8 files or directories that take 2585920K of disk space
Collecting data from directory zebrafish to archive file: zebrafish.tar
zebrafish/
zebrafish/Danio_rerio.GRCz10.fa.fai
zebrafish/Danio_rerio.GRCz10.91.3.bt2
zebrafish/Danio_rerio.GRCz10.91.4.bt2
zebrafish/Danio_rerio.GRCz10.fa
zebrafish/Danio_rerio.GRCz10.91.rev.2.bt2
zebrafish/Danio_rerio.GRCz10.91.rev.1.bt2
zebrafish/Danio_rerio.GRCz10.91.2.bt2
zebrafish/Danio_rerio.GRCz10.91.1.bt2
Packing successful.
Uploading data to s3allas.
Transferred:        3.044 GiB / 3.044 GiB, 100%, 62.753 MiB/s, ETA 0s
Transferred:            1 / 1, 100%
Elapsed time:        46.9s
Confirming upload...

Adding metadata for uploaded zebrafish
Transferred:            975 B / 975 B, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.0s

-------------------------------------------------------------------------------
8 files from zebrafish uploaded to bucket 2001659-roihu-scratch in Allas as one tar file: 
2001659-roihu-scratch/genomes/zebrafish.tar
-----------------------------------------------------------------

Upload summary:
              Date                      Name  Files Size(kB)         Location in Allas
 06.05.26 13:05:05                 zebrafish      8  2585920 2001659-roihu-scratch/genomes
-----------------------------------------------------------------
OK

Tämän jälkeen meillä on toinen objekti 2001659-roihu-scratch-ämpärissä:

[kkayttaj@roihu-cpu-login1 genomes]$ a-list 2001659-roihu-scratch
2001659-roihu-scratch/genomes/zebrafish.tar
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa

Huomaa, että tiedosto Danio_rerio.GRCz10.fa on nyt itse asiassa tallennettu Allakseen kahdesti: sekä yksittäisenä objektina (genomes/zebrafish/Danio_rerio.GRCz10.fa) että osana objektia genomes/zebrafish.tar.

B. Datan lataaminen Roihuun

Seuraavaksi lataamme saman datan takaisin Roihuun. Tässä esimerkissä oletamme, että seeprakalojen genomidata on poistettu Roihusta joko käyttäjän toimesta tai automaattisen siivousprosessin vuoksi.

Kun olemme muodostaneet yhteyden Roihuun, siirrymme projektin 2001659 scratch-hakemistoon ja lataamme allas-moduulin:

cd /scratch/project_2001659
module load allas

Komennon module load allas tulosteesta voit tarkistaa, käyttävätkö a-komennot oikeaa Allasta, tässä tapauksessa project_2001659:ää. Tarvittaessa voit ottaa projektin käyttöön komennolla allas-conf:

allas-conf project_2001659

Yllä olevan komennon tapauksessa määritysprosessi kysyy vain CSC-salasanan ja muodostaa sitten yhteyden Allakseen projektia 2001659 varten. Koska Roihun scratch-hakemisto on jaettu kaikkien projektin jäsenten kesken, luomme käyttäjäkohtaisen alihakemiston kkayttaj:

mkdir kkayttaj
cd kkayttaj/

Komennolla a-list voimme nyt nähdä objektit, jotka aiemmin ladattiin Allakseen:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-list
2001659-roihu-scratch
[kkayttaj@roihu-login1 kkayttaj]$ a-list 2001659-roihu-scratch
2001659-roihu-scratch/genomes/zebrafish.tar
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa

Datan paikantaminen on helppoa, koska ämpärissä on vain kaksi objektia, mutta kun Allakseen lisätään enemmän dataa, tietyn tiedoston löytäminen kymmenien ämpärien ja satojen objektien joukosta voi olla vaikeaa. Siinä tapauksessa voit etsiä tiettyä tiedostoa komennolla a-find. Tässä esimerkissä voimme tarkistaa, sisältääkö jokin objekti tiedoston Danio_rerio.GRCz10.fa:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-find -a Danio_rerio.GRCz10.fa
Checking bucket: 2001659-roihu-scratch

Matching object names:
2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
----------------------------------------------
a-put generated objects that include matching file name:

 Object: 2001659-roihu-scratch/genomes/zebrafish.tar
 includes 2 file names that that match query: Danio_rerio.GRCz10.fa

 Object: 2001659-roihu-scratch/genomes/zebrafish/Danio_rerio.GRCz10.fa
 includes 1 file names that that match query: Danio_rerio.GRCz10.fa

------------------------------------------------ 
Query: Danio_rerio.GRCz10.fa
Total of 3 hits were found in 2 objects
-------------------------------------------------

Yllä oleva a-find-raportti näyttää esimerkiksi, että objekti 2001659-mahti-SCRATCH/genomes/zebrafish.tar sisältää kaksi tiedostoa, joiden nimet vastaavat hakua Danio_rerio.GRCz10.fa (toinen tiedosto on Danio_rerio.GRCz10.fa.fai). Huomaa, että a-find löytää osumia vain objekteista, jotka on ladattu komennolla a-put. Lisäksi a-find hakee vain objektinimen perusteella. Älä sisällytä ämpärin nimeä hakutermiin. Käytä sen sijaan valitsinta -b <bucket-name>, jos haluat hakea objektia vain yhdestä ämpäristä.

Seuraavaksi lataamme datan Roihuun komennolla a-get:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ a-get 2001659-roihu-scratch/genomes/zebrafish.tar
Starting to copy data from allas...
Object:
  2001659-roihu-scratch/genomes/zebrafish.tar 
copied and uncompressed from s3allas into:
  zebrafish

Tämän jälkeen nykyisessä työhakemistossa Roihussa on uusi hakemisto zebrafish, joka sisältää tiedostot, jotka aiemmin ladattiin Roihusta Allakseen:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ ls zebrafish/
Danio_rerio.GRCz10.91.1.bt2  Danio_rerio.GRCz10.91.rev.1.bt2
Danio_rerio.GRCz10.91.2.bt2  Danio_rerio.GRCz10.91.rev.2.bt2
Danio_rerio.GRCz10.91.3.bt2  Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.4.bt2  Danio_rerio.GRCz10.fa.fai

Esimerkki 2: Allaksen käyttö Rclonella

A. Datan lataaminen Rclonella

Rclone on tehokäyttäjän työkalu Allakselle. Se sopii hyvin tilanteisiin, joissa data täytyy tallentaa niin, että jokainen tiedosto on erillinen objekti.

Warning

Rclone tarjoaa nopean ja tehokkaan tavan käyttää Allasta, mutta sitä tulee käyttää varoen, sillä Rclone-operaatiot voivat ylikirjoittaa ja poistaa dataa sekä Allaksessa että paikallisessa levyympäristössä ilmoittamatta tai pyytämättä vahvistusta.

Tässä esimerkissä käytetään samaa dataa kuin edellisessä tapauksessa: Roihun scratch-hakemistossa meillä on alihakemisto genomes/zebrafish, joka sisältää alla luetellut kahdeksan tiedostoa:

[kkayttaj@roihu-cpu-login2 ~]$ ls /scratch/project_2001659/genomes/zebrafish
Danio_rerio.GRCz10.91.1.bt2  Danio_rerio.GRCz10.91.rev.1.bt2
Danio_rerio.GRCz10.91.2.bt2  Danio_rerio.GRCz10.91.rev.2.bt2
Danio_rerio.GRCz10.91.3.bt2  Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.4.bt2  Danio_rerio.GRCz10.fa.fai

Kopioidaksemme tämän hakemiston sisällön Allakseen asetamme ensin Allas-ympäristön:

module load allas

Komennon module load allas tulosteesta voit tarkistaa, käyttääkö a-komennot oikeaa Allasta, tässä tapauksessa project_2001659:ää. Tarvittaessa voit ottaa projektin käyttöön komennolla allas-conf:

allas-conf project_2001659

Yllä olevan komennon tapauksessa määritysprosessi kysyy vain CSC-salasanan ja muodostaa sitten yhteyden Allakseen projektia 2001659 varten. Määrityksen jälkeen voit käyttää määritellyn projektin Allas-aluetta kahden rclone-päätepisteen kautta: s3allas:, s3allas-project_name. Tässä esimerkissä päätepisteet ovat s3allas: ja s3allas-project_2001659:.

Määrityksen jälkeen nämä kaksi päätepistettä ovat käytössä kaikissa Roihu-istunnoissa, myös eräajoissa. Lyhyttä päätepistettä on mukavampi käyttää komentorivillä, mutta se muuttuu, jos suoritat allas-conf-komennon toisen projektin käyttöön ottamiseksi. Siksi projektikohtainen päätepiste (s3allas-project_2001659) on parempi vaihtoehto eräajoihin ja projektikohtaisiin skripteihin.

Latauksen aloittamiseksi siirrymme genomes-hakemistoon:

cd /scratch/project_2001659/genomes

Edellisessä esimerkissä käytetyn a-put-komennon sijaan käytämme komentoa rclone copy kopioidaksemme kaikki tiedostot annetusta hakemistosta Allakseen. rclone-komennon tapauksessa oletusämpäriä ei ole. Sen sijaan meidän täytyy määritellä ämpärin nimi. Tässä esimerkissä käytämme ämpärin nimeä 2001659-genomes ja määrittelemme, että jokaisen objektin nimessä on etuliite zebrafish.

rclone copy -P zebrafish/ s3allas:2001659-genomes/zebrafish

Tiedostojen kopioinnin jälkeen voimme käyttää rclone ls -komentoa nähdäksemme, mitä on ladattu Allakseen:

[kkayttaj@roihu-cpu-login2 genomes] rclone ls s3allas:2001659-genomes/zebrafish
450646234 Danio_rerio.GRCz10.91.1.bt2
334651392 Danio_rerio.GRCz10.91.2.bt2
   187325 Danio_rerio.GRCz10.91.3.bt2
334651387 Danio_rerio.GRCz10.91.4.bt2
450646234 Danio_rerio.GRCz10.91.rev.1.bt2
334651392 Danio_rerio.GRCz10.91.rev.2.bt2
1362788082 Danio_rerio.GRCz10.fa
      715 Danio_rerio.GRCz10.fa.fai

B. Datan lataaminen Roihuun

Seuraavaksi lataamme saman datan takaisin Roihuun. Kun olemme muodostaneet yhteyden Roihuun, siirrymme projektin project_2001659 scratch-hakemistoon ja lataamme allas-moduulin:

cd /scratch/project_2001659
module load allas

Jos rclone on edelleen määritetty projektille 2001659, allas-conf-komentoa ei tarvitse suorittaa.

Koska Roihun scratch-hakemisto on jaettu kaikkien projektin jäsenten kesken, luomme käyttäjäkohtaisen alihakemiston kkayttaj ja siirrymme sinne:

mkdir kkayttaj
cd kkayttaj/

Voimme nyt käyttää komentoa rclone lsd tarkistaaksemme käytettävissä olevat ämpärit Allaksessa:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone lsd s3allas:
  3268222761 2026-05-03 10:01:42         8 2001659-genomes
  2576778428 2026-05-03 10:01:42         4 2001659-roihu-SCRATCH

Nyt näemme kaksi ämpäriä. 2001659-genomes on tässä esimerkissä juuri luotu, kun taas 2001659-roihu-SCRATCH on peräisin edellisestä a-komentoesimerkistä. Seuraavaksi listaamme objektit 2001659-genomes-ämpärissä:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone ls s3allas:2001659-genomes
450646234 zebrafish/Danio_rerio.GRCz10.91.1.bt2
334651392 zebrafish/Danio_rerio.GRCz10.91.2.bt2
   187325 zebrafish/Danio_rerio.GRCz10.91.3.bt2
334651387 zebrafish/Danio_rerio.GRCz10.91.4.bt2
450646234 zebrafish/Danio_rerio.GRCz10.91.rev.1.bt2
334651392 zebrafish/Danio_rerio.GRCz10.91.rev.2.bt2
1362788082 zebrafish/Danio_rerio.GRCz10.fa
      715 zebrafish/Danio_rerio.GRCz10.fa.fa

Lopuksi käytämme komentoa rclone copy kopioidaksemme datan Allaksesta Roihuun uuteen hakemistoon zebrafish2:

[kkayttaj@roihu-cpu-login2 kkayttaj]$ rclone -P copy s3allas:2001659-genomes/zebrafish zebrafish2
Transferred:        3.044 GiB / 3.044 GiB, 100%, 323.600 MBytes/s, ETA 0s
Transferred:            8 / 8, 100%
Elapsed time:        9.6s

[kkayttaj@roihu-cpu-login1 kkayttaj]$ ls zebrafish2
Danio_rerio.GRCz10.91.1.bt2      Danio_rerio.GRCz10.91.3.bt2  
Danio_rerio.GRCz10.91.2.bt2      Danio_rerio.GRCz10.91.4.bt2
Danio_rerio.GRCz10.91.rev.1.bt2  Danio_rerio.GRCz10.fa
Danio_rerio.GRCz10.91.rev.2.bt2  Danio_rerio.GRCz10.fa.fai

Esimerkki 3: Monimutkaisten hakemistorakenteiden lataaminen Allakseen

Jotkin työnkulut ja ohjelmistot luovat monimutkaisia hakemistorakenteita datan tallentamiseen ja hallintaan. Sinulla voi olla hakemistoja, joissa on tuhansia tai jopa miljoonia yksittäisiä tiedostoja. Tällaisten aineistojen kopioiminen Allakseen vie aikaa eikä ole aina suoraviivaista. Järkevin tapa ladata tämänkaltaista dataa riippuu tapauksesta. Tämä esimerkki esittelee muutamia vaihtoehtoja.

Aloitamme avaamalla tmux-istunnon Roihussa ja muodostamalla Allas-yhteyden aivan kuten edellisessä esimerkissä:

ssh <username>@roihu-cpu.csc.fi
tmux new -s allas-upload
module load allas
allas-conf

Oletetaan, että meillä on hakemistorakenne, joka sisältää kuvia tienpintakameroista kymmenestä sijainnista kymmenen minuutin välein vuosilta 2021–2025. Data sijaitsee hakemistossa road_cameras, jossa jokaisella sijainnilla on oma alihakemistonsa (kymmenen hakemistoa). Jokaisen alihakemiston sisällä on toinen alihakemistokerros, yksi jokaiselle vuodelle (viisi alihakemistoa), joista kukin sisältää alihakemistot vuoden jokaiselle päivälle (lisäksi 365 alihakemistoa), ja jokainen niistä sisältää 144 pientä kuvatiedostoa.

Esimerkiksi:

road_cameras/site_7/2022/day211/image_654887.jpg

Näin ollen tiedostojen kokonaismäärä hakemistossa road_cameras on 10 * 5 * 365 * 144 = 2 628 000.

Periaatteessa voisimme kopioida kaikki 2,6 miljoonaa tiedostoa erillisinä objekteina Allakseen, mutta siinä tapauksessa data pitäisi jakaa useisiin ämpäreihin, koska yhdessä ämpärissä voi olla enintään 0,5 miljoonaa objektia. Voisit esimerkiksi suorittaa erillisen rclone-komennon jokaiselle site_*-hakemistolle ja sijoittaa kunkin sijainnin datan sijaintikohtaiseen ämpäriin. Esimerkiksi:

rclone copyto road_cameras/site_1 s3allas:2001659_road_cameras_site_1/

Tällä tavalla päätyisit luomaan kymmenen ämpäriä, joista kukin sisältää 262 800 objektia. Tämä lähestymistapa voisi olla tehokkain tapa datan tallentamiseen ja uudelleenkäyttöön, jos tiedät, että sinun täytyy käyttää yksittäisiä kuvia satunnaisesti. Tällöin sinun pitäisi kuitenkin käyttää muita työkaluja kuin rclonea tai a-komentoja, sillä rclonessa on virhe, jonka vuoksi se epäonnistuu tilanteissa, joissa yksi ämpäri sisältää valtavan määrän objektinimiä (tyypillisesti tämä alkaa vaikuttaa, kun objektien määrä ylittää 15 000–50 000).

Toisena äärivaihtoehtona voisimme käyttää a-put-komentoa ja kerätä kaiken datan yhdeksi arkisto-objektiksi. Jotta tämä onnistuu, sinun täytyy lisätä valitsin --skip-filelist a-put-komentoon. Oletuksena a-put kerää yksityiskohtaisen metadatan jokaisesta tiedostosta ameta-tiedostoon. Jos tiedostoja on kuitenkin miljoonia, tämän tiedon kerääminen vie paljon aikaa. Jos sinun täytyy tietää tiedostonimet, voit käyttää valitsinta --simple-fileslist nimien keräämiseen – mutta ei muuta tietoa – metadatatiedostoon. Tämä jo nopeuttaa esikäsittelyä merkittävästi. Tässä tapauksessa nimeäminen on kuitenkin ollut järjestelmällistä, joten tiedostonimien tallentaminen metadatatiedostoihin voidaan jättää kokonaan pois (--skip-filelist), mikä on nopein vaihtoehto.

a-put --skip-filelist road_cameras/

Tämä lähestymistapa tallentaisi kaikki 2,6 miljoonaa tiedostoa yhtenä objektina.

Käytännössä optimaalinen tapa tallentaa data on kuitenkin usein jotakin näiden kahden ääripään väliltä. Kompromissina voisit käyttää pakkaamista hierarkiassa ylemmällä tasolla. Esimerkiksi:

a-put --skip-filelist road_cameras/site_*

Tämä tuottaisi kymmenen objektia, joista kukin sisältää yhden kamerasijainnin kaikki tiedot. Vaihtoehtoisesti voisit tehdä arkistoinnin niin, että kunkin kameran kunkin vuoden data kerätään yhdeksi objektiksi:

a-put --skip-filelist road_cameras/site_*/20*

Tämä vaihtoehto tallentaisi datan 50 objektina. Päiväkohtaiset objektit kullekin kameralle voisivat olla käytön kannalta käytännöllisin vaihtoehto myöhemmin, mutta haittapuolena datan esikäsittely 10 * 5 * 365 = 18250 objektiksi vie todennäköisesti melko paljon aikaa.

Miljoonien tiedostojen kopioiminen Allakseen vie paljon aikaa menetelmästä riippumatta. Jos olemme käynnistäneet a-put-komennon tmux-istunnon sisällä, voimme irrottautua virtuaali-istunnosta painamalla Ctrl-b d, kirjautua ulos Roihusta ja jättää latausprosessin käyntiin pitkäksi aikaa. Jos kirjautumissolmu kuitenkin käynnistyy uudelleen istuntojen välillä, tmux-istuntosi päättyy.

Palataksesi istuntoon myöhemmin, muodosta yhteys Roihuun uudelleen ja suorita:

tmux attach -t allas-upload

Kun et enää tarvitse tmux-istuntoa, voit lopettaa istunnon kirjoittamalla exit istunnon sisällä.

Kun a-put-komento on valmis, suoritamme a-check-komennon tarkistaaksemme, että kaikki dataobjektit on luotu. a-check täytyy suorittaa täsmälleen samoilla valitsimilla, joita käytettiin a-put-komennon kanssa. Tässä tapauksessa komento olisi:

a-check --skip-filelist road_cameras/site_*/20*

a-check-komento vertaa ladattaviksi tarkoitettujen kohteiden nimiä vastaaviin objekteihin Allaksessa. Tiedostot tai hakemistot, joille ei löydy kohdeobjektia Allaksesta, raportoidaan ja tallennetaan tiedostoon. Tässä tapauksessa, jos jokin yllä olevan a-put-komennon objekteista puuttuisi, a-check listaisi puuttuvat tiedostot ja hakemistot tiedostoon missing_<bucket_name>_<number> (lopussa oleva numero on vain satunnaisluku).

Puuttuvien kohteiden tiedostoa voidaan sitten käyttää a-put-komennon valitsimen --input-list kanssa epäonnistuneen latausprosessin jatkamiseksi:

a-put -b 2001659-uniref --nc --input-list missing_<bucket_name>_<number>

On hyvä huomata, että a-check ei tarkista, ovatko objektin todelliset sisällöt oikeita. Se tarkistaa vain objektien nimet, jotka voivat aivan hyvin olla peräisin jostakin muusta lähteestä.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta