Öğretici: Sismik Depoya veri yüklemek için sdutil kullanma
Sismik Mağaza, her boyuttaki veri kümelerini depolamak ve yönetmek için bulut tabanlı bir çözümdür. Kapsamlı yetkilendirme mekanizması aracılığıyla veri kümelerine erişmek için güvenli bir yol sağlar. Sismik Mağaza, genel veri kümelerini birden çok bağımsız nesne olarak yöneterek bulut sağlayıcılarının nesne boyutu sınırlamalarının üstesinden gelir.
Sdutil, Sismik Depo ile etkileşime yönelik bir komut satırı Python aracıdır. Sdutil kullanarak Sismik Store'a veri yükleme, Sismik Mağaza'dan veri kümesi indirme, kullanıcıları yönetme ve klasör içeriğini listeleme gibi temel işlemleri gerçekleştirebilirsiniz.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Sdutil aracını ayarlayın ve çalıştırın.
- Sismik Depo URI'sini alın.
- Bir alt proje oluşturun.
- Kullanıcı kaydetme.
- Sismik Mağaza ile veri kümelerini yönetmek için sdutil kullanın.
- Sdutil aracının işlevlerini doğrulamak için testleri çalıştırın.
Önkoşullar
İşletim sisteminize göre aşağıdaki önkoşulları yükleyin.
Windows:
Linux:
Unix/Mac
Sdutil, içinde requirements.txt
belirtilen diğer modülleri gerektirir. Konakınızın paket çakışmalarına karşı temiz kalmasını sağlamak için modülleri olduğu gibi yükleyebilir veya bir sanal ortama yükleyebilirsiniz. Bunları bir sanal ortama yüklemek istemiyorsanız aşağıdaki kodda yer alan dört sanal ortam komutlarını atlayın. Ayrıca, Ubuntu veya WSL - Ubuntu 20.04 yerine Mac kullanıyorsanız paket yöneticiniz yerine apt-get
kullanın homebrew
veya el ile yükleyinapt-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
Gerekli bağımlılıkları yükleyin:
# Run this from the extracted sdutil folder
pip install -r requirements.txt
Kullanım
Yapılandırma
Topluluk
azure-stable
dalından sdutil deposunu kopyalayın ve sık kullandığınız düzenleyicide açın.klasöründeki
sdlib
içeriğiniconfig.yaml
aşağıdaki YAML ile değiştirin. Üç şablonlaştırılmış değeri (iki örneği<meds-instance-url>
ve bir örneği<put refresh token here...>
) doldurun.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'
Not
Bir belirteç henüz yoksa, Kimlik doğrulama belirteci oluşturma bölümünde yer alan yönergeleri izleyerek bir belirteç alın.
Aşağıdaki ortam değişkenlerini dışarı aktarın veya ayarlayın:
export AZURE_TENANT_ID=<your-tenant-id> export AZURE_CLIENT_ID=<your-client-id> export AZURE_CLIENT_SECRET=<your-client-secret>
Aracı çalıştırma
Ayıklanan yardımcı program klasöründen sdutil aracını çalıştırın:
python sdutil
Herhangi bir bağımsız değişken belirtmezseniz, bu menü görüntülenir:
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
Aracı ilk kez kullanıyorsanız, yapılandırmayı
sdutil config init
başlatmak için komutunu çalıştırın:python sdutil config init
Aracı kullanmaya ve işlemleri gerçekleştirmeye başlamadan önce sistemde oturum açmanız gerekir. Aşağıdaki komutu çalıştırdığınızda, sdutil bir web tarayıcısında oturum açma sayfası açar:
python sdutil auth login
Başarıyla oturum açtıktan sonra, kimlik bilgileriniz bir hafta boyunca geçerli olur. Kimlik bilgilerinin süresi dolmadıkça yeniden oturum açmanız gerekmez.
Not
Başarılı oturum açma ile ilgili iletiyi almıyorsanız, üç ortam değişkeninizin ayarlandığından ve bu öğreticinin önceki bölümlerinde yer alan Yapılandırma bölümündeki tüm adımları izlediğinizden emin olun.
Sismik Mağaza kaynakları
Sistemi kullanmaya başlamadan önce Sismik Mağaza'nın kaynakları nasıl yönettiğini anlamanız önemlidir. Sismik Mağaza üç tür kaynağı yönetir:
- Kiracı projesi: Ana proje. Kiracı, Sismik Mağaza yolunun ilk bölümüdür.
- Alt proje: Ana kiracı projesi altında doğrudan bağlantılı olan çalışma alt projesi. Alt proje, Sismik Mağaza yolunun ikinci bölümüdür.
- Veri kümesi: Veri kümesi varlığı. Veri kümesi, Sismik Mağaza yolunun üçüncü ve son bölümüdür. veri kümesi kaynağını formunu
path/dataset_name
kullanarak belirtebilirsiniz. Bu formda isteğepath
bağlıdır ve genel bir dosya sistemindeki dizinle aynı anlama sahiptir. bölümüdataset_name
, veri kümesi varlığının adıdır.
Sismik Depo URI'si, sistemdeki bir kaynağı benzersiz olarak ele almak için kullandığınız bir dizedir. Ön eki sd://
gerekli kaynak yoluna ekleyerek elde edebilirsiniz:
sd://<tenant>/<subproject>/<path>*/<dataset>
Örneğin, kiracı projesi altındaki qadata/ustest
gtc
alt projede dizin yapısında carbon
depolanan bir results.segy
veri kümeniz varsa, ilgili sdpath
kod şöyledir:
sd://gtc/carbon/qadata/ustest/results.segy
İlgili sdpath
bölümü kullanarak her kaynağı ele alabilirsiniz:
Tenant: sd://gtc
Subproject: sd://gtc/carbon
Dataset: sd://gtc/carbon/qadata/ustest/results.segy
Alt Projeler
Sismik Mağaza'daki alt proje, kullanıcının veri kümelerini kaydedebildiği bir çalışma birimidir. Sistem, kiracı projesi altında birden çok alt projeyi işleyebilir.
Yalnızca bir kiracı yöneticisi aşağıdaki sdutil komutunu kullanarak bir alt proje kaynağı oluşturabilir:
> 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
Kullanıcı yönetimi
Sismik Mağaza'yı kullanabilmek için kullanıcıların erişim düzeylerini tanımlayan bir role sahip en az bir alt proje kaynağına kayıtlı olması gerekir. Sismik depo, alt proje düzeyinde kapsamı belirlenmiş iki rolü destekler:
- Yönetici: Okuma/yazma erişimi ve kullanıcı yönetimi.
- Görüntüleyici: Okuma/listeleme erişimi.
Aşağıdaki sdutil komutunu kullanarak yalnızca bir alt proje yöneticisi kullanıcıyı kaydedebilir:
> 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]
Kullanım örnekleri
Aşağıdaki kod, Sismik Depolama ile veri kümelerini yönetmek için sdutil'in nasıl kullanılacağını gösteren bir örnektir. Bu örnekte alt proje kaynağı olarak kullanılır 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
Araç testi
Test klasörü, pytest için yazılmış bir dizi integral/birim ve regresyon testi içerir. Sdutil aracının işlevlerini doğrulamak için bu testleri çalıştırın.
Gereksinimler için şu kodu kullanın:
# Install required dependencies
pip install -r test/e2e/requirements.txt
İntegral/birim testleri için bu kodu kullanın:
# Run integral/unit test
./devops/scripts/run_unit_tests.sh
# Test execution parameters
--mnt-volume = sdapi root dir (default=".")
Regresyon testleri için şu kodu kullanın:
# 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)
SSS
Araç için nasıl yeni bir komut oluşturabilirim?
Sdutil aracında yeni bir komutu tümleştirmek için temel altyapıyı otomatik olarak oluşturmak için komut oluşturma betiğini (./command_gen.py
) çalıştırın. Betik, içinde sdlib/cmd/new_command_name
komut altyapısı olan bir klasör oluşturur.
./scripts/command_gen.py new_command_name
Dizindeki tüm dosyaları nasıl silebilirim?
Aşağıdaki kodu kullanın:
./sdutil ls -lr sd://tenant/subproject/your/folder/here | xargs -r ./sdutil rm --idtoken=x.xxx.x
Aracın değişiklik günlüğü nasıl oluşturulabilir?
Aracın değişiklik günlüğü otomatik olarak oluşturmak için changelog betiğini (./changelog-generator.sh
) çalıştırın:
./scripts/changelog-generator.sh
Enerji için Azure Data Manager kullanımı
Enerji için Azure Data Manager örneği, sdutil'in OSDU® M12 sürümünü kullanır. Sdutil kullanarak Enerji için Azure Data Manager örneğinizin Bilimsel Veri Yönetimi Sistemi (SDMS) API'sini kullanmak istiyorsanız aşağıdaki adımları tamamlayın:
Önceki yükleme ve yapılandırma adımlarını izlediğinize emin olun. Bu adımlar sdutil kaynak kodunu indirmeyi, Python sanal ortamınızı yapılandırmayı, dosyayı düzenlemeyi ve üç ortam değişkenini ayarlamayı
config.yaml
içerir.Sismik Depo'da görevleri gerçekleştirmek için aşağıdaki komutları çalıştırın.
Başlatmak:
(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.
Oturum Aç:
python sdutil config init python sdutil auth login
Sismik Depo'da dosyaları listeleme:
python sdutil ls sd://<tenant> # For example, sd://<instance-name>-<datapartition> python sdutil ls sd://<tenant>/<subproject> # For example, sd://<instance-name>-<datapartition>/test
Yerel makinenizden Sismik Mağaza'ya bir dosya yükleyin:
python sdutil cp local-dir/file-name-at-source.txt sd://<datapartition>/test/file-name-at-destination.txt
Sismik Depo'dan yerel makinenize bir dosya indirin:
python sdutil cp sd://<datapartition>/test/file-name-at-ddms.txt local-dir/file-name-at-destination.txt
Not
VDS dosyalarını indirmek için komutunu kullanmayın
cp
. VDS dönüştürmesi birden çok dosyaya neden olur, bu nedenlecp
komut bunların tümünü tek bir komutta indiremez. Bunun yerine SEGYExport veya VDSCopy aracını kullanın. Bu araçlar, sonuçta elde edilen tüm VDS dosyaları hakkındaki bilgileri almak için bir adlandırma düzenine erişen bir dizi REST çağrısı kullanır.
OSDU®, Open Group'un ticari markasıdır.
Sonraki adım
Sonraki öğreticiye ilerleyin:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin