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.txt
feljegyzett 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ó
Klónozza a sdutil-adattárat a közösségi
azure-stable
ágból, és nyissa meg a kedvenc szerkesztőjében.Cserélje le a mappa tartalmát
config.yaml
asdlib
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.
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
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
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
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_name
haszná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. Adataset_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:
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.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 acp
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: