İşleme Ortamları

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:

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â beklemede
  • READY, sunucuda sıraya alındı
  • RUNNING, şu anda çalışıyor
  • COMPLETED, 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