Oktatóanyag: Adatok betöltése a Sdutil használatával a Szeizmikus Tárolóba

A Seismic Store egy felhőalapú megoldás bármilyen méretű adathalmaz tárolására és kezelésére. Biztonságos módot biztosít az adathalmazok elérésére egy hatókörön belüli engedélyezési mechanizmuson keresztül. A szeizmikus tároló az általános adathalmazok több független objektumként való kezelésével leküzdi a felhőszolgáltatók objektumméret-korlátozásait.

A Sdutil egy parancssori Python-eszköz a Szeizmikus Tárolóval való interakcióhoz. A sdutil használatával olyan alapvető műveleteket hajthat végre, mint az adatok feltöltése a Szeizmikus tárolóba, adathalmazok letöltése a Szeizmikus áruházból, felhasználók kezelése és mappatartalmak listázása.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Állítsa be és futtassa a sdutil eszközt.
  • Szerezze be a Szeizmikus Tároló URI-t.
  • Alprojekt létrehozása.
  • Felhasználó regisztrálása.
  • A sdutil használatával kezelheti az adathalmazokat a Szeizmikus Tárolóval.
  • Teszteket futtathat a sdutil eszköz funkcióinak ellenőrzéséhez.

Előfeltételek

Telepítse az alábbi előfeltételeket az operációs rendszer alapján.

Windows:

Linux:

Unix/Mac

A Sdutil más, a következőben requirements.txtfeljegyzett modulokat igényel: . A modulokat telepítheti úgy, ahogy van, vagy virtuális környezetben telepítheti őket, hogy a gazdagép tiszta maradjon a csomagütközésektől. Ha nem szeretné virtuális környezetben telepíteni őket, hagyja ki a következő kódban szereplő négy virtuális környezeti parancsot. Továbbá, ha Macet használ az Ubuntu vagy a WSL – Ubuntu 20.04 helyett, használja homebrew a csomagkezelő helyett apt-get , vagy manuálisan telepítse apt-get.

  # Check if virtualenv is already installed
  virtualenv --version

  # If not, install it via pip or apt-get
  pip install virtualenv
  # or sudo apt-get install python3-venv for WSL

  # Create a virtual environment for sdutil
  virtualenv sdutilenv
  # or python3 -m venv sdutilenv for WSL

  # Activate the virtual environment
  Windows:    sdutilenv/Scripts/activate  
  Linux:      source sdutilenv/bin/activate

Telepítse a szükséges függőségeket:

  # Run this from the extracted sdutil folder
  pip install -r requirements.txt

Használat

Konfiguráció

  1. Klónozza a sdutil-adattárat a közösségi azure-stable ágból, és nyissa meg a kedvenc szerkesztőjében.

  2. Cserélje le a mappa tartalmát config.yaml a sdlib következő YAML-fájlra. Töltse ki a három templatizált értéket (két példányt <meds-instance-url> és egy példányt <put refresh token here...>).

    seistore:
      service: '{"azure": {"azureGlabEnv":{"url": "https://<meds-instance-url>/seistore-svc/api/v3", "appkey": ""}}}'
      url: 'https://<meds-instance-url>/seistore-svc/api/v3'
      cloud_provider: 'azure'
      env: 'glab'
      auth-mode: 'JWT Token'
      ssl_verify: False
    auth_provider:
      azure: '{
            "provider": "azure",
            "authorize_url": "https://login.microsoftonline.com/",
            "oauth_token_host_end": "/oauth2/token",
            "scope_end":"/.default openid profile offline_access",
            "redirect_uri":"http://localhost:8080",
            "login_grant_type": "refresh_token",
            "refresh_token": "<put refresh token here from auth_token.http authorize request>"
            }'
    azure:
      empty: 'none'
    

    Feljegyzés

    Ha még nem található jogkivonat, szerezze be az egyiket a Hitelesítési jogkivonat létrehozása című témakör útmutatásait követve.

  3. Exportálja vagy állítsa be a következő környezeti változókat:

      export AZURE_TENANT_ID=<your-tenant-id>
      export AZURE_CLIENT_ID=<your-client-id>
      export AZURE_CLIENT_SECRET=<your-client-secret>
    

Az eszköz futtatása

  1. Futtassa a sdutil eszközt a kinyert segédprogram mappájából:

      python sdutil
    

    Ha nem ad meg argumentumokat, ez a menü jelenik meg:

      Seismic Store Utility
    
      > python sdutil [command]
    
      available commands:
    
      * auth    : authentication utilities
      * unlock  : remove a lock on a seismic store dataset
      * version : print the sdutil version
      * rm      : delete a subproject or a space separated list of datasets
      * mv      : move a dataset in seismic store
      * config  : manage the utility configuration
      * mk      : create a subproject resource
      * cp      : copy data to(upload)/from(download)/in(copy) seismic store
      * stat    : print information like size, creation date, legal tag(admin) for a space separated list of tenants, subprojects or datasets
      * patch   : patch a seismic store subproject or dataset
      * app     : application authorization utilities
      * ls      : list subprojects and datasets
      * user    : user authorization utilities
    
  2. Ha először használja az eszközt, futtassa a sdutil config init parancsot a konfiguráció inicializálásához:

      python sdutil config init
    
  3. Mielőtt elkezdené használni az eszközt, és bármilyen műveletet végrehajt, be kell jelentkeznie a rendszerbe. A következő parancs futtatásakor a sdutil megnyit egy bejelentkezési lapot egy webböngészőben:

      python sdutil auth login
    

    A sikeres bejelentkezés után a hitelesítő adatai egy hétig érvényesek. Csak akkor kell újból bejelentkeznie, ha a hitelesítő adatok lejárnak.

    Feljegyzés

    Ha nem kapja meg a sikeres bejelentkezésről szóló üzenetet, győződjön meg arról, hogy a három környezeti változó be van állítva, és hogy követte az oktatóanyag korábbi, Konfiguráció szakaszában szereplő összes lépést.

Szeizmikus tároló erőforrásai

Mielőtt elkezdené használni a rendszert, fontos tisztában lenni azzal, hogy a Seismic Store hogyan kezeli az erőforrásokat. A Szeizmikus tároló három típusú erőforrást kezel:

  • Bérlői projekt: A fő projekt. A bérlő a Szeizmikus tároló elérési útjának első szakasza.
  • Alprojekt: A fő bérlőprojekt alatt közvetlenül összekapcsolt munka alprojekt. Az alprojekt a Szeizmikus tároló elérési útjának második szakasza.
  • Adatkészlet: Az adathalmaz-entitás. Az adathalmaz a Szeizmikus tároló elérési útjának harmadik és utolsó szakasza. Az adathalmaz-erőforrást az űrlap path/dataset_namehasználatával adhatja meg. Ebben a formában nem kötelező, path és ugyanazzal a jelentéssel rendelkezik, mint egy általános fájlrendszer könyvtára. A dataset_name rész az adathalmaz-entitás neve.

A Szeizmikus tároló URI egy sztring, amellyel egyedileg kezelhet egy erőforrást a rendszerben. Ezt úgy szerezheti be, hogy hozzáfűzi az előtagot sd:// a szükséges erőforrás-elérési úthoz:

  sd://<tenant>/<subproject>/<path>*/<dataset>

Ha például egy results.segy adatkészletet a qadata/ustest bérlőprojekt alprojektjének gtc címtárstruktúrájában carbon tárol, a megfelelő sdpath kód a következő:

  sd://gtc/carbon/qadata/ustest/results.segy

Az összes erőforrást a megfelelő sdpath szakasz használatával kezelheti:

  Tenant: sd://gtc
  Subproject: sd://gtc/carbon
  Dataset: sd://gtc/carbon/qadata/ustest/results.segy

Alprojektek

A Szeizmikus tárolóban található alprojektek olyan munkaegységek, ahol a felhasználó adathalmazokat menthet. A rendszer több alprojektet is képes kezelni egy bérlőprojektben.

Csak a bérlői rendszergazda hozhat létre alprojekt-erőforrást az alábbi sdutil paranccsal:

  > python sdutil mk *sdpath *admin@email *legaltag (options)

    create a new subproject resource in Seismic Store. user can interactively
    set the storage class for the subproject. only tenant admins are allowed to create subprojects.

    *sdpath       : the seismic store subproject path. sd://<tenant>/<subproject>
    *admin@email  : the email of the user to be set as the subproject admin
    *legaltag     : the default legal tag for the created subproject

    (options)     | --idtoken=<token> pass the credential token to use, rather than generating a new one

Felhasználók kezelése

A Szeizmikus tároló használatához a felhasználókat regisztrálni kell legalább egy alprojekt-erőforráshoz, amelynek szerepköre meghatározza a hozzáférési szintjüket. A szeizmikus tároló két szerepkört támogat az alprojekt szintjén:

  • Rendszergazda: Olvasási/írási hozzáférés és felhasználókezelés.
  • Megtekintő: Olvasási/listahozzáférés.

Csak alprojekt-rendszergazda regisztrálhat felhasználót az alábbi sdutil paranccsal:

  > python sdutil user [ *add | *list | *remove | *roles ] (options)

    *add       $ python sdutil user add [user@email] [sdpath] [role]*
                add a user to a subproject resource

                [user@email]  : email of the user to add
                [sdpath]      : seismic store subproject path, sd://<tenant>/<subproject>
                [role]        : user role [admin|viewer]

Felhasználási példák

Az alábbi kód egy példa arra, hogyan használható a sdutil az adathalmazok szeizmikus tárolóval való kezelésére. Ez a példa alprojekt-erőforrásként szolgál sd://gtc/carbon .

  # Create a new file
  echo "My Test Data" > data1.txt

  # Upload the created file to Seismic Store
  ./sdutil cp data1.txt sd://gtc/carbon/test/mydata/data.txt

  # List the contents of the Seismic Store subproject
  ./sdutil ls sd://gtc/carbon/test/mydata/  (display: data.txt)
  ./sdutil ls sd://gtc                      (display: carbon)
  ./sdutil ls sd://gtc/carbon               (display: test/)
  ./sdutil ls sd://gtc/carbon/test          (display: data/)

  # Download the file from Seismic Store
  ./sdutil cp sd://gtc/carbon/test/mydata/data.txt data2.txt

  # Check if the original file matches the one downloaded from Seismic Store
  diff data1.txt data2.txt

Eszköztesztelés

A tesztmappa tartalmazza a pytesthez írt integrál-/egység- és regressziós teszteket. Futtassa ezeket a teszteket a sdutil eszköz funkcióinak ellenőrzéséhez.

Használja ezt a kódot a követelményekhez:

  # Install required dependencies  
  pip install -r test/e2e/requirements.txt

Használja ezt a kódot az integrált/egységtesztekhez:

  # Run integral/unit test
  ./devops/scripts/run_unit_tests.sh

  # Test execution parameters
  --mnt-volume = sdapi root dir (default=".")

Használja ezt a kódot regressziós tesztekhez:

  # Run regression test
  ./devops/scripts/run_regression_tests.sh --cloud-provider= --service-url= --service-key= --idtoken= --tenant= --subproject=

  # Test execution parameters
  --mnt-volume = sdapi root dir (default=".")
  --disable-ssl-verify (to disable ssl verification)

GYIK

Hogyan hozhatok létre új parancsot az eszközhöz?

Futtassa a parancsgenerálási szkriptet (./command_gen.py) az új parancs sdutil eszközbe való integrálásához szükséges alapinfrastruktúra automatikus létrehozásához. A szkript létrehoz egy mappát, amelyben a parancsinfrastruktúra található sdlib/cmd/new_command_name.

  ./scripts/command_gen.py new_command_name

Hogyan törölhetem a címtárban lévő összes fájlt?

Használja a következő kódot:

  ./sdutil ls -lr sd://tenant/subproject/your/folder/here | xargs -r ./sdutil rm --idtoken=x.xxx.x

Hogyan hozhatom létre az eszköz változásnaplóját?

Futtassa a changelog szkriptet (./changelog-generator.sh) az eszköz változásnaplójának automatikus létrehozásához:

  ./scripts/changelog-generator.sh

Az Azure Data Manager for Energy használata

Az Azure Data Manager for Energy-példány a sdutil OSDU® M12 verzióját használja. Ha a sdutil használatával szeretné kihasználni az Azure Data Manager for Energy-példány Tudományos adatkezelés Rendszer (SDMS) API-jának előnyeit, hajtsa végre a következő lépéseket:

  1. Győződjön meg arról, hogy követte a korábbi telepítési és konfigurációs lépéseket. Ezek a lépések magukban foglalják a sdutil forráskód letöltését, a Python virtuális környezet konfigurálását, a config.yaml fájl szerkesztését és a három környezeti változó beállítását.

  2. Futtassa az alábbi parancsokat a szeizmikus tárolóban végzett feladatok elvégzéséhez.

    • Inicializálni:

        (sdutilenv) > python sdutil config init
        [one] Azure
        Select the cloud provider: **enter 1**
        Insert the Azure (azureGlabEnv) application key: **just press enter--no need to provide a key**
      
        sdutil successfully configured to use Azure (azureGlabEnv)
      
        Should display sign in success message. Credentials expiry set to 1 hour.
      
    • Bejelentkezés:

        python sdutil config init
        python sdutil auth login
      
    • Fájlok listázása a Seismic Store-ban:

        python sdutil ls sd://<tenant> # For example, sd://<instance-name>-<datapartition>
        python sdutil ls sd://<tenant>/<subproject> # For example, sd://<instance-name>-<datapartition>/test
      
    • Töltsön fel egy fájlt a helyi gépről a Seismic Store-ba:

        python sdutil cp local-dir/file-name-at-source.txt sd://<datapartition>/test/file-name-at-destination.txt
      
    • Töltsön le egy fájlt a Seismic Store-ból a helyi gépére:

        python sdutil cp sd://<datapartition>/test/file-name-at-ddms.txt local-dir/file-name-at-destination.txt
      

      Feljegyzés

      Ne használja a parancsot VDS-fájlok cp letöltéséhez. A VDS-átalakítás több fájlt eredményez, így a cp parancs nem fogja tudni letölteni az összes fájlt egy parancsban. Használja inkább a Standard kiadás GYExport vagy a VDSCopy eszközt. Ezek az eszközök REST-hívások sorozatát használják, amelyek egy elnevezési sémához férnek hozzá az összes eredményként kapott VDS-fájl adatainak lekéréséhez.

Az OSDU® a The Open Group védjegye.

Következő lépés

Folytassa a következő oktatóanyaggal: