Kurz: Použití nástroje sdutil k načtení dat do Seismic Storu
Seismic Store je cloudové řešení pro ukládání a správu datových sad libovolné velikosti. Poskytuje bezpečný způsob přístupu k datovým sadám prostřednictvím mechanismu autorizace s vymezeným oborem. Seismic Store překonat omezení velikosti objektů poskytovatelů cloudu tím, že spravuje obecné datové sady jako více nezávislých objektů.
Sdutil je nástroj pythonu příkazového řádku pro interakci se Seismic Storem. Nástroj sdutil můžete použít k provádění základních operací, jako je nahrávání dat do Seismic Storu, stahování datových sad ze Seismic Storu, správa uživatelů a výpis obsahu složek.
V tomto kurzu se naučíte:
- Nastavte a spusťte nástroj sdutil.
- Získejte identifikátor URI úložiště Seismic.
- Vytvořte dílčí projekt.
- Zaregistrujte uživatele.
- Použití nástroje sdutil ke správě datových sad pomocí Seismic Storu.
- Spuštěním testů ověřte funkce nástroje sdutil.
Požadavky
Na základě operačního systému nainstalujte následující požadavky.
Windows:
Linux:
Unix/Mac
Sdutil vyžaduje další moduly uvedené v requirements.txt
. Moduly můžete nainstalovat tak, jak jsou, nebo je nainstalovat do virtuálního prostředí, aby byl hostitel čistý před konflikty balíčků. Pokud je nechcete instalovat do virtuálního prostředí, přeskočte čtyři příkazy virtuálního prostředí v následujícím kódu. Pokud navíc používáte Mac místo Ubuntu nebo WSL - Ubuntu 20.04, použijte homebrew
apt-get
místo správce balíčků nebo ručně nainstalujte 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
Instalace požadovaných závislostí:
# Run this from the extracted sdutil folder
pip install -r requirements.txt
Využití
Konfigurace
Naklonujte úložiště sdutil z větve komunity
azure-stable
a otevřete ho ve svém oblíbeném editoru.config.yaml
Obsah složkysdlib
nahraďte následujícím kódem YAML. Vyplňte tři šablonované hodnoty (dvě instance<meds-instance-url>
a jednu instanci<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'
Poznámka:
Pokud token ještě není k dispozici, získejte ho podle pokynů v části Jak vygenerovat ověřovací token.
Exportujte nebo nastavte následující proměnné prostředí:
export AZURE_TENANT_ID=<your-tenant-id> export AZURE_CLIENT_ID=<your-client-id> export AZURE_CLIENT_SECRET=<your-client-secret>
Spuštění nástroje
Spusťte nástroj sdutil ze složky extrahovaného nástroje:
python sdutil
Pokud nezadáte žádné argumenty, zobrazí se tato nabídka:
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
Pokud nástroj používáte poprvé, spusťte
sdutil config init
příkaz pro inicializaci konfigurace:python sdutil config init
Než začnete nástroj používat a provedete jakékoli operace, musíte se přihlásit k systému. Když spustíte následující příkaz, nástroj sdutil otevře přihlašovací stránku ve webovém prohlížeči:
python sdutil auth login
Po úspěšném přihlášení jsou vaše přihlašovací údaje platné po dobu týdne. Pokud nevyprší platnost přihlašovacích údajů, nemusíte se znovu přihlašovat.
Poznámka:
Pokud se vám nezobrazuje zpráva o úspěšném přihlášení, ujistěte se, že jsou nastavené tři proměnné prostředí a že jste postupovali podle všech kroků v části Konfigurace dříve v tomto kurzu.
Seismic Store – prostředky
Než začnete používat systém, je důležité pochopit, jak Seismic Store spravuje prostředky. Seismic Store spravuje tři typy prostředků:
- Projekt tenanta: Hlavní projekt. Tenant je první část cesty k Seismic Storu.
- Dílčí projekt: Pracovní dílčí projekt, který je přímo propojený v rámci hlavního projektu tenanta. Dílčí projekt je druhou částí cesty Seismic Store.
- Datová sada: Entita datové sady. Datová sada je třetí a poslední částí cesty Seismic Store. Prostředek datové sady můžete zadat pomocí formuláře
path/dataset_name
. V této podoběpath
je nepovinný a má stejný význam jako adresář v obecném systému souborů. Součástídataset_name
je název entity datové sady.
Identifikátor URI úložiště Seismic je řetězec, který použijete k jedinečné adrese prostředku v systému. Můžete ho získat připojením předpony sd://
k požadované cestě prostředku:
sd://<tenant>/<subproject>/<path>*/<dataset>
Pokud máte například datovou sadu uloženou results.segy
v qadata/ustest
adresářové struktuře v dílčím carbon
projektu v gtc
projektu tenanta, odpovídající sdpath
kód je:
sd://gtc/carbon/qadata/ustest/results.segy
Každý prostředek můžete vyřešit pomocí odpovídajícího sdpath
oddílu:
Tenant: sd://gtc
Subproject: sd://gtc/carbon
Dataset: sd://gtc/carbon/qadata/ustest/results.segy
Dílčích projektů
Dílčí projekt v Seismic Storu je pracovní jednotka, ve které může uživatel ukládat datové sady. Systém může zpracovávat více dílčích projektů v rámci projektu tenanta.
Pomocí následujícího příkazu sdutil může vytvořit pouze správce tenanta prostředek dílčího projektu:
> 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
Správa uživatelů
Aby uživatelé mohli používat Seismic Store, musí být zaregistrovaní alespoň k dílčímu prostředku projektu s rolí, která definuje jejich úroveň přístupu. Úložiště Seismic podporuje dvě role vymezené na úrovni dílčího projektu:
- Správa: Přístup pro čtení a zápis a správu uživatelů.
- Prohlížeč: Přístup pro čtení a seznam
Pomocí následujícího příkazu sdutil může uživatele zaregistrovat pouze správce dílčích projektů:
> 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]
Příklady použití
Následující kód je příkladem použití nástroje sdutil ke správě datových sad pomocí Seismic Storu. Tento příklad se používá sd://gtc/carbon
jako zdroj dílčího projektu.
# 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
Testování nástrojů
Složka testu obsahuje sadu integrálních/jednotek a regresních testů napsaných pro pytest. Spuštěním těchto testů ověřte funkce nástroje sdutil.
Tento kód použijte pro požadavky:
# Install required dependencies
pip install -r test/e2e/requirements.txt
Tento kód použijte pro celočíselné testy/testy jednotek:
# Run integral/unit test
./devops/scripts/run_unit_tests.sh
# Test execution parameters
--mnt-volume = sdapi root dir (default=".")
Tento kód použijte pro regresní testy:
# 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)
Často kladené dotazy
Jak můžu pro nástroj vygenerovat nový příkaz?
Spuštěním skriptu generování příkazů (./command_gen.py
) automaticky vygenerujte základní infrastrukturu pro integraci nového příkazu v nástroji sdutil. Skript vytvoří složku s infrastrukturou příkazů v sdlib/cmd/new_command_name
.
./scripts/command_gen.py new_command_name
Jak můžu odstranit všechny soubory v adresáři?
Použijte následující kód:
./sdutil ls -lr sd://tenant/subproject/your/folder/here | xargs -r ./sdutil rm --idtoken=x.xxx.x
Jak můžu vygenerovat protokol změn nástroje?
Spuštěním skriptu protokolu změn (./changelog-generator.sh
) automaticky vygenerujte protokol změn nástroje:
./scripts/changelog-generator.sh
Využití azure Data Manageru pro energii
Instance Azure Data Manageru pro energii používá verzi nástroje sdutil M12 OSDU®. Pokud chcete použít nástroj sdutil k využití rozhraní API SDMS (Scientific Správa dat System) vaší instance Azure Data Manageru pro energii, proveďte následující kroky:
Ujistěte se, že jste postupovali podle předchozích kroků instalace a konfigurace . Mezi tyto kroky patří stažení zdrojového kódu nástroje sdutil, konfigurace virtuálního prostředí Pythonu, úprava
config.yaml
souboru a nastavení tří proměnných prostředí.Spuštěním následujícíchpříkazůch
Inicializovat:
(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.
Přihlásit se:
python sdutil config init python sdutil auth login
Výpis souborů v Seismic Storu:
python sdutil ls sd://<tenant> # For example, sd://<instance-name>-<datapartition> python sdutil ls sd://<tenant>/<subproject> # For example, sd://<instance-name>-<datapartition>/test
Nahrajte soubor z místního počítače do Seismic Storu:
python sdutil cp local-dir/file-name-at-source.txt sd://<datapartition>/test/file-name-at-destination.txt
Stáhněte si soubor ze Seismic Storu do místního počítače:
python sdutil cp sd://<datapartition>/test/file-name-at-ddms.txt local-dir/file-name-at-destination.txt
Poznámka:
K stahování souborů VDS nepoužívejte
cp
tento příkaz. Výsledkem převodu VDS je více souborů, takžecp
příkaz nebude moct stáhnout všechny soubory v jednom příkazu. Místo toho použijte nástroj SEGYExport nebo VDSCopy. Tyto nástroje používají řadu volání REST, která přistupují k schématu pojmenování a načítají informace o všech výsledných souborech VDS.
OSDU® je ochranná známka the Open Group.
Další krok
Přejděte k dalšímu kurzu: