Earth Engine'da verileri işlemek için farklı ortamlar vardır: etkileşimli ve toplu. Bu iki ortam (veya "alem"), farklı türde sorguları işler ve çok farklı performans özelliklerine sahiptir. Bu nedenle, her birini ne zaman ve nasıl kullanacağınızı bilmeniz önemlidir.
Etkileşimli ortam
"Senkron" veya "online" yığın olarak da adlandırılan bu ortam, hızlıca tamamlanan küçük isteklerin yanıtlanması için optimize edilmiştir (yanıtlar onlarca megabayt veri ile sınırlıdır ve beş dakika içinde işlenmeleri gerekir). Kota sınırlarına kadar birçok istek paralel olarak gönderilebilir.
Uç noktalar
Etkileşimli ortam, standart ve yüksek hacimli olmak üzere farklı API uç noktalarından oluşur.
Standart uç nokta
Standart uç nokta, kullanıcı tarafından yönlendirilen çoğu kullanım için uygundur ve Code Editor ile Earth Engine uygulamalarını destekler. Daha açık belirtecek olursak bu uç nokta, düşük hacimli eşzamanlı, programatik olmayan istekler içeren gecikmeye duyarlı uygulamalar için en uygun uç noktadır.
Yüksek hacimli uç nokta
Yüksek hacimli uç nokta, standart uç noktaya kıyasla paralel olarak daha yüksek sayıda istek işleyebilecek şekilde tasarlanmıştır. Temel farklılıklar şunlardır:
- Daha yüksek gecikme: Yüksek hacimli uç noktanın istek başına ortalama gecikmesi daha yüksektir.
- Daha az önbelleğe alma: Ara sonuçlar daha az önbelleğe alınır. Bu nedenle karmaşık sorgular daha fazla hesaplama süresi gerektirebilir.
- Otomatik, küçük sorgular için en iyi seçenek: Yüksek hacimli uç nokta, birçok programatik isteği işlemede başarılıdır ancak toplama gerektirmeyen basit sorgular için en uygun seçenektir (ör. önceden oluşturulmuş resimlerden karo getirme).
Etkili önbelleğe almaya ihtiyaç duyan karmaşık analizler için standart API uç noktası tercih edilebilir. Yüksek hacimli uç nokta, yüksek verim ve düşük işlem gerektiren görevler için optimize edilmiştir. Karmaşık sorgular, yüksek hacimli uç nokta kullanıldığında genellikle normal online uç noktada olduğundan daha fazla EECU süresi gerektirir.
Yüksek hacimli uç noktanın kullanılması
Python istemcisi
earthengine
kitaplığını başlatırken bir opt_url
parametresi iletin ve parametreyi https://earthengine-highvolume.googleapis.com
olarak ayarlayın.
Her zaman olduğu gibi, doğru kimlik bilgilerini ilettiğinizden ve Cloud projesini belirttiğinizden emin olun. Örneğin:
ee.Initialize(
credentials=credentials,
project='my-project',
opt_url='https://earthengine-highvolume.googleapis.com'
)
JavaScript istemcisi
ee.initialize()
kullanarak earthengine
kitaplığını başlatırken ilk parametre olarak https://earthengine-highvolume.googleapis.com
değerini iletin.
REST API
REST isteklerinizi https://earthengine-highvolume.googleapis.com
adresine yönlendirin (ör. REST API Hızlı Başlangıç bölümünde gösterildiği gibi https://earthengine.googleapis.com
yerine).
Toplu işlem ortamı
"Asenkron" veya "çevrimdışı" yığın olarak da bilinen bu ortam, büyük miktarlarda verinin yüksek gecikmeli paralel işlenmesi için optimize edilmiştir. İstekler, genellikle veri import veya dışa aktarma işlevleri (ör. Export.*
ve
ee.batch.*
) kullanabilirsiniz. Her toplu görev en fazla on gün boyunca geçerlidir. Her proje 3.000'e kadar bekleyen görevi destekler ancak her kullanıcı aynı anda çalışan az sayıda görevle sınırlıdır.
Görev yaşam döngüsü
Görevler bir sıraya gönderilir ve önceliklerine (önce en yüksek) ve gönderim zamanlarına (önce en erken) göre sıralanır. Görevler, toplu işlemciye atandığında SUBMITTED
(sırada) durumundan RUNNING
durumuna geçer. Her işlemci, hesaplamayı çalıştırmak ve görevin sonuçlarını üretmek için değişen sayıda toplu işleyici'yi koordine etmekten sorumludur.
Bir görev için çalışan sayısı, EE hizmetinin işi paralelleştirme özelliğine göre belirlenir ve kullanıcı tarafından yapılandırılamaz.
Cloud projesi kullanırken görevler, proje düzeyinde görev listelemesine izin verilen herkes tarafından görülebilir. Proje, ücretli Earth Engine erişimi için kaydedilmişse görevler proje genelinde bir kuyrukta düzenlenir. Proje, ücretsiz (araştırma) erişime kayıtlıysa görevler her kullanıcı için bağımsız olarak planlanır ancak projenin kullanıcıları tarafından görülebilir.
Gerekli yapıları (Earth Engine öğeleri, Google Cloud Storage'daki dosyalar vb.) oluşturduklarında görevler başarıyla tamamlanır.
Görev yönetimi
Görevler aşağıdaki arayüzler kullanılarak görüntülenebilir ve iptal edilebilir:
- Cloud Console'daki Görevler sayfası
- Cloud projesi düzeyinde görev yönetimini etkinleştirir. Bundan sonra, görevleri yönetmek için ana kullanıcı arayüzü bu olacak.
- Görev Yöneticisi sayfası
- Bu arayüz, görevleri kullanıcı ve proje düzeyinde gösterir ve görev adına göre filtrelemeyi destekler.
- Kod Düzenleyici Görevler Sekmesi
- Kod Düzenleyici komut dosyasıyla birlikte görevlerin izlenmesine olanak tanır.
ListOperations
uç noktası vetask
komutu- Görevleri programatik olarak görüntülemek ve yönetmek için idealdir.
Görev hataları
Bir görev, yeniden denemeyle düzeltilmeyecek bir nedenle başarısız olursa (ör. veriler geçersizse) FAILED
olarak işaretlenir ve tekrar çalıştırılmaz.
Bir görev, kesintili olabilecek bir nedenle başarısız olursa (ör. bir hesaplama çalıştırırken zaman aşımı yaşanırsa) Earth Engine, görevi otomatik olarak yeniden denemeyi ve retries
alanını doldurmayı dener. Görevler beş kez başarısız olabilir ve son başarısızlık, görevin tamamının FAILED
olarak işaretlenmesine neden olur.
Görev Kimliği
Her görevin 3DNU363IM57LNU4SDTMB6I33
biçiminde bir alfanümerik kimliği vardır. Bu raporları görev yönetimi arayüzlerimizden görüntüleyebilir veya edinebilirsiniz. Görevleri programatik olarak başlatıyorsanız görev kimliğini ee.data.newTaskId
üzerinden alırsınız. Bir dışa aktarma veya besleme görevinde hata ayıklamayla ilgili yardım istediğinizde bu görev kimliğini kopyalanabilen bir dize olarak (ekran görüntüsü değil) sağlayın.
Görev durumlarının listesi
Görevler aşağıdaki state
değerlerine sahip olabilir:
UNSUBMITTED
, istemcide hâlâ beklemedeREADY
, sunucuda sıraya alındıRUNNING
, şu anda çalışıyorCOMPLETED
, başarıyla tamamlandıFAILED
, tamamlanamadıCANCEL_REQUESTED
, çalışmaya devam ediyor ancak iptal edilmesi istendi (ör. görevin iptal edileceği garanti edilmez)CANCELLED
, sahibi tarafından iptal edildi
Görev önceliği
Görev önceliği, sıradaki görevlerin sırasını kontrol etmeye yarayan bir mekanizmadır. Yüksek öncelikli görevler, gönderim zamanlarından bağımsız olarak daha düşük öncelikli bekleyen görevlerden önce planlanır. Varsayılan görev önceliği 100'dür.
Dışa aktarma görevlerinde başka öncelikler (daha yüksek veya daha düşük) belirleme özelliği yalnızca ücretli Earth Engine erişimi için kayıtlı projelerin kullanıcıları tarafından kullanılabilir. İki görev türü ayrı olarak planlandığından, dışa aktarma görevinin önceliğini değiştirmek, bu görevin içe aktarma görevlerine göre nasıl planlandığını etkilemez.
Örnek: Görev önceliklerini kullanma
1-5 arasındaki görevlerin varsayılan öncelikle doğal sıralarında gönderildiği aşağıdaki görev listesini düşünün. Önceliklerin tümü aynı olduğundan ve bu proje için iki toplu işleme aralığı bulunduğundan, gönderildikleri sırayla çalıştırılırlar. İkisi de aynı anda çalışır (ilk ve ikinci gönderilen).
Task name State Priority
---------------------------------------
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Yeni bir görev (MyHighPriorityTask1
) göndermek, çalışan görevleri etkilemez:
Task name State Priority
---------------------------------------
MyHighPriorityTask READY 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Çalışan görevlerden biri tamamlandıktan sonra, en yüksek önceliğe sahip bekleyen görev (bu durumda yüksek öncelikli görevimiz) çalıştırılır:
Task name State Priority
-----------------------------------------
MyHighPriorityTask RUNNING 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 COMPLETED 100
MyDefaultTask1 RUNNING 100