İşleme Ortamları

Earth Engine'de verileri işlemek için farklı ortamlar vardır: etkileşimli ve toplu. Bu iki ortam (veya "alan") farklı türde sorguları işler ve çok farklı performans özelliklerine sahiptir. Bu nedenle, her birini ne zaman ve nasıl kullanacağınızı anlamak önemlidir.

Earth Engine kotaları sayfasını inceleyin.

Etkileşimli ortam

"Senkron" veya "çevrimiçi" yığın olarak da adlandırılan bu ortam, hızlı bir şekilde tamamlanan küçük istekleri yanıtlamak için optimize edilmiştir (yanıtlar, onlarca megabaytlık verilerle sınırlıdır ve işleme beş dakika içinde tamamlanmalıdır). Kota sınırlarına kadar birçok istek paralel olarak gönderilebilir.

Uç noktalar

Etkileşimli ortam, farklı API uç noktalarından (standart ve yüksek hacimli) oluşur.

Standart uç nokta

Standart uç nokta, insan odaklı kullanımın çoğu için uygundur ve Code Editor ile Earth Engine Uygulamaları'na güç veren uç noktadır. Bu uç nokta özellikle eşzamanlı ve programatik olmayan düşük hacimli istekler içeren, gecikmeye duyarlı uygulamalar için en uygundur.

Yüksek hacimli uç nokta

Yüksek hacimli uç nokta, standart uç noktaya kıyasla daha yüksek hacimli istekleri paralel olarak işlemek üzere tasarlanmıştır. Temel farklar şunlardır:

  • Daha yüksek gecikme: Yüksek hacimli uç nokta, istek başına daha yüksek ortalama gecikmeye sahiptir.
  • Daha az önbelleğe alma: Ara sonuçlar daha az önbelleğe alınır. Bu nedenle, karmaşık sorgular daha fazla işlem süresi gerektirebilir.
  • Otomatik ve küçük sorgular için en iyisi: Yüksek hacimli uç nokta, çok sayıda programatik isteği işleme konusunda mükemmeldir ancak toplama gerektirmeyen basit sorgular (ör. önceden oluşturulmuş resimlerden döşeme getirme) için en uygundur.

Verimli önbelleğe alma gerektiren karmaşık analizler için standart API uç noktası tercih edilebilir. Yüksek hacimli uç nokta, yüksek işleme hızı ve düşük hesaplama gerektiren görevler için optimize edilmiştir. Karmaşık sorgular, yüksek hacimli uç nokta kullanılırken normal çevrimiçi uç noktaya kıyasla genellikle daha fazla EECU süresi gerektirir.

Yüksek hacimli uç noktanın kullanımı

Python istemcisi

earthengine kitaplığını başlatırken bir opt_url parametresi iletin ve bunu https://earthengine-highvolume.googleapis.com olarak ayarlayın. Her zaman olduğu gibi, uygun kimlik bilgilerini ilettiğinizden ve Cloud projesini belirttiğinizden de 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 için https://earthengine-highvolume.googleapis.com değerini iletin.

REST API

REST isteklerinizi https://earthengine-highvolume.googleapis.com adresine yönlendirin (örneğin, REST API Hızlı Başlangıç Kılavuzu'nda gösterildiği gibi https://earthengine.googleapis.com yerine).

Toplu işlem ortamı

"Asenkron" veya "çevrimdışı" yığın olarak da adlandırılan bu ortam, büyük miktarda verinin yüksek gecikmeli paralel işlenmesi için optimize edilmiştir. İstekler, genellikle Earth Engine istemci kitaplıklarından veri import veya export işlevleri (ör. Export.* ve ee.batch.*) çağrılarak toplu işleme uç noktalarına görev olarak gönderilir. Her toplu görevin maksimum ömrü on gündür. Her proje 3.000'e kadar bekleyen görevi destekler ancak her kullanıcı aynı anda çalışan görevlerin küçük bir sayısıyla sınırlıdır.

Görev yaşam döngüsü

Görevler bir sıraya gönderilir ve önceliklerine (en yüksekten en düşüğe) ve gönderilme zamanlarına (en erken gönderilenden en geç gönderilene) 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 farklı sayıda toplu işlem çalışanı düzenlemekten sorumludur. Bir görevdeki çalışan sayısı, EE hizmetinin işi paralelleştirme becerisine göre belirlenir ve kullanıcı tarafından yapılandırılamaz.

Cloud projesi kullanırken görevler, proje düzeyinde görevleri listeleme izni olan herkes tarafından görülebilir. Proje, ücretli Earth Engine erişimi için kayıtlıysa görevler proje genelinde bir kuyrukta düzenlenir. Proje, ücretsiz (araştırma) erişimi için kayıtlıysa görevler her kullanıcı için ayrı ayrı planlanır ancak yine de projenin kullanıcıları tarafından görülebilir.

Gerekli yapıtları (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ı

Yeniden denendiğinde düzeltilemeyecek bir nedenle başarısız olan görevler (ör. veriler geçersizdir) FAILED olarak işaretlenir ve tekrar çalıştırılmaz.

Bir görev aralıklı olarak ortaya çıkabilecek bir nedenden dolayı başarısız olursa (ör. hesaplama çalıştırılırken zaman aşımına uğradı) Earth Engine, görevi otomatik olarak yeniden denemeye çalışır ve retries alanını doldurur. Görevler en fazla 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 alfanümerik bir kimliği vardır. Bunlar, görev yönetimi arayüzlerimiz aracılığıyla görüntülenebilir veya edinilebilir. Görevleri programatik olarak başlatıyorsanız görev kimliğini ee.data.newTaskId adresinden alırsınız. Bir dışa aktarma veya alma görevinin hata ayıklaması için yardım isterken bu görev kimliğini kopyalanabilir bir dize (ekran görüntüsü değil) olarak sağlayın.

Görev durumlarının listesi

Görevler aşağıdaki state değerlere sahip olabilir:

  • UNSUBMITTED, istemcide hâlâ beklemede
  • READY, sunucuda sıraya alınmış
  • RUNNING, şu anda çalışıyor
  • COMPLETED, başarıyla tamamlandı
  • FAILED, başarısızlıkla tamamlandı
  • CANCEL_REQUESTED, çalışmaya devam ediyor ancak iptal edilmesi istendi (yani görevin iptal edileceği garanti edilmez)
  • CANCELLED, sahibi tarafından iptal edildi

Görev önceliği

Görev önceliği, kuyruktaki görevlerin sırasını kontrol etmeye yarayan bir mekanizmadır. Daha yüksek öncelikli görevler, gönderilme zamanlarına bakılmaksızın daha düşük öncelikli diğer bekleyen görevlerden önce planlanır. Varsayılan görev önceliği 100'dür.

Dışa aktarma görevlerinde diğer öncelikleri (daha yüksek veya daha düşük) ayarlama özelliği yalnızca ücretli Earth Engine erişimine kayıtlı projelerin kullanıcıları tarafından kullanılabilir. İki görev türü ayrı ayrı planlandığından, dışa aktarma görevinin önceliğini değiştirmek, içe aktarma görevlerine göre nasıl planlandığını etkilemez.

Örnek: Görev önceliklerini kullanma

Aşağıdaki görev listesini inceleyin. Burada 1-5 arasındaki görevler, varsayılan öncelik ile doğal sıralarında gönderilmiştir. Öncelikler aynı olduğundan bu işler gönderildikleri sırayla çalışır. Bu proje için iki toplu işleme yuvası bulunduğundan iki iş aynı anda çalışır (gönderilen ilk ve ikinci iş).

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 çalıştırılır (bu örnekte yüksek öncelikli görevimiz):

Task name             State      Priority
-----------------------------------------
MyHighPriorityTask    RUNNING    500
MyDefaultTask5        READY      100
MyDefaultTask4        READY      100
MyDefaultTask3        READY      100
MyDefaultTask2        COMPLETED  100
MyDefaultTask1        RUNNING    100