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:
- Cloud Console'daki Görevler sayfası
- Cloud projesi düzeyinde görev yönetimini etkinleştirir. Bundan sonra, görevleri yönetmek için kullanılacak ana kullanıcı arayüzü budur.
- Görev Yöneticisi sayfası
- Bu arayüzde görevler kullanıcı ve proje düzeyinde gösterilir ve görev adına göre filtreleme desteklenir.
- Kod Düzenleyici Görevler Sekmesi
- Görevlerin bir kod düzenleyici komut dosyasıyla birlikte izlenmesine olanak tanır.
ListOperationsuç noktası vetaskkomutu- Görevleri programatik olarak görüntülemek ve yönetmek için idealdir.
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â beklemedeREADY, sunucuda sıraya alınmışRUNNING, şu anda çalışıyorCOMPLETED, 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