Earth Engine memiliki lingkungan yang berbeda untuk memproses data: interaktif dan batch. Kedua lingkungan (atau "realm") ini menangani berbagai jenis kueri dan memiliki karakteristik performa yang sangat berbeda, jadi penting untuk memahami kapan dan cara menggunakan masing-masing lingkungan.
Lingkungan interaktif
Lingkungan ini, yang juga disebut stack "sinkron" atau "online", dioptimalkan untuk menjawab permintaan kecil yang selesai dengan cepat (respons dibatasi hingga puluhan megabyte data dan harus selesai diproses dalam waktu lima menit). Banyak permintaan dapat dibuat secara paralel hingga batas kuota.
Endpoint
Lingkungan interaktif terdiri dari endpoint API yang berbeda: standar dan volume tinggi.
Endpoint standar
Endpoint standar sesuai untuk sebagian besar penggunaan yang berbasis manusia, dan inilah yang mendukung Editor Kode dan Aplikasi Earth Engine. Secara khusus, endpoint ini paling cocok untuk aplikasi yang sensitif terhadap latensi, yang melibatkan permintaan serentak yang tidak terprogram dalam volume rendah.
Endpoint volume tinggi
Endpoint volume tinggi dirancang untuk menangani volume permintaan yang lebih tinggi secara paralel daripada endpoint standar. Perbedaan utamanya meliputi:
- Latensi lebih tinggi: Endpoint volume tinggi memiliki latensi rata-rata yang lebih tinggi per permintaan.
- Lebih sedikit caching: Opsi ini memberikan lebih sedikit caching hasil perantara, sehingga kueri yang kompleks mungkin memerlukan waktu komputasi yang lebih lama.
- Terbaik untuk kueri kecil otomatis: Endpoint volume tinggi sangat baik dalam menangani banyak permintaan terprogram, tetapi paling cocok untuk kueri sederhana yang tidak memerlukan agregasi (seperti mengambil petak dari gambar yang telah dibuat sebelumnya).
Untuk analisis kompleks yang memerlukan penyimpanan dalam cache yang efisien, endpoint API standar mungkin lebih disukai. Endpoint volume tinggi dioptimalkan untuk tugas dengan throughput tinggi dan komputasi rendah. Kueri yang kompleks biasanya memerlukan lebih banyak waktu EECU saat menggunakan endpoint volume tinggi daripada di endpoint online biasa.
Penggunaan endpoint volume tinggi
Klien Python
Saat melakukan inisialisasi library earthengine, teruskan parameter opt_url dan tetapkan ke https://earthengine-highvolume.googleapis.com.
Seperti biasa, pastikan untuk meneruskan kredensial yang tepat dan menentukan project Cloud. Contoh:
ee.Initialize(
credentials=credentials,
project='my-project',
opt_url='https://earthengine-highvolume.googleapis.com'
)
Klien JavaScript
Saat menginisialisasi library earthengine menggunakan
ee.initialize(),
teruskan https://earthengine-highvolume.googleapis.com
untuk parameter pertama.
REST API
Arahkan permintaan REST Anda ke
https://earthengine-highvolume.googleapis.com
(bukan https://earthengine.googleapis.com,
seperti yang ditunjukkan dalam
Mulai Cepat REST API,
misalnya).
Lingkungan batch
Juga disebut stack "asinkron" atau "offline", lingkungan ini dioptimalkan untuk pemrosesan paralel latensi tinggi dalam jumlah besar. Permintaan dikirimkan sebagai tugas ke endpoint pemrosesan batch, biasanya dengan memanggil fungsi impor atau ekspor data (misalnya, Export.* dan ee.batch.*) dari library klien Earth Engine. Setiap tugas batch memiliki masa aktif maksimum sepuluh hari. Setiap project mendukung hingga 3.000 tugas yang tertunda, tetapi setiap pengguna dibatasi hingga sejumlah kecil tugas yang berjalan secara bersamaan.
Siklus proses tugas
Tugas dikirimkan ke antrean dan diurutkan berdasarkan prioritasnya
(tertinggi terlebih dahulu) dan waktu pengiriman (paling awal terlebih dahulu). Tugas berubah dari status
SUBMITTED (dalam antrean) ke status RUNNING saat ditetapkan ke
pemroses batch. Setiap pemroses bertanggung jawab untuk mengatur sejumlah pekerja batch yang bervariasi untuk menjalankan komputasi dan menghasilkan hasil tugas.
Jumlah pekerja untuk tugas ditentukan oleh kemampuan layanan EE untuk
memparalelkan tugas dan tidak dapat dikonfigurasi pengguna.
Saat menggunakan project Cloud, tugas dapat dilihat oleh siapa saja yang memiliki izin tingkat project untuk mencantumkan tugas. Jika project terdaftar untuk akses Earth Engine berbayar, tugas akan diatur dalam antrean di seluruh project; jika project terdaftar untuk akses tidak berbayar (riset), tugas akan dijadwalkan secara terpisah untuk setiap individu, tetapi tetap terlihat oleh semua pengguna project.
Tugas berhasil diselesaikan saat tugas membuat artefak yang diperlukan (aset Earth Engine, file di Google Cloud Storage, dll.).
Pengelolaan tugas
Tugas dapat dilihat dan dibatalkan menggunakan antarmuka berikut:
- Halaman Tasks di Cloud Console
- Memungkinkan pengelolaan tugas di tingkat project Cloud. Selanjutnya, ini adalah antarmuka pengguna utama untuk mengelola tugas.
- Halaman Pengelola Tugas
- Antarmuka ini menampilkan tugas di tingkat pengguna dan project, serta mendukung pemfilteran menurut nama tugas.
- Tab Tugas Editor Kode
- Memungkinkan pemantauan tugas bersama skrip Editor Kode.
- Endpoint
ListOperationsdan perintahtask- Paling cocok untuk melihat dan mengelola tugas secara terprogram.
Kegagalan tugas
Jika tugas gagal karena alasan yang tidak akan diperbaiki dengan mencoba lagi (misalnya, data tidak valid), tugas akan ditandai sebagai FAILED dan tidak akan dijalankan lagi.
Jika tugas gagal karena alasan yang mungkin bersifat sementara (misalnya, waktu tunggu habis saat menjalankan komputasi), Earth Engine akan otomatis mencoba lagi dan mengisi kolom retries. Tugas dapat gagal hingga lima kali, dan kegagalan terakhir akan menyebabkan seluruh tugas ditandai sebagai FAILED.
ID Tugas
Setiap tugas memiliki ID alfanumerik dalam bentuk 3DNU363IM57LNU4SDTMB6I33. Informasi ini dapat dilihat atau diperoleh melalui antarmuka pengelolaan tugas kami. Jika memulai tugas secara terprogram, Anda akan mendapatkan ID tugas dari
ee.data.newTaskId. Saat meminta
bantuan untuk men-debug tugas ekspor atau penyerapan, berikan ID tugas ini sebagai string yang dapat disalin (bukan screenshot).
Daftar status tugas
Tugas dapat memiliki nilai state berikut:
UNSUBMITTED, masih menunggu keputusan klienREADY, dimasukkan dalam antrean di serverRUNNING, saat ini berjalanCOMPLETED, berhasil diselesaikanFAILED, selesai tidak berhasilCANCEL_REQUESTED, masih berjalan, tetapi telah diminta untuk dibatalkan (yaitu, tidak ada jaminan bahwa tugas akan dibatalkan)CANCELLED, dibatalkan oleh pemilik
Prioritas tugas
Prioritas tugas adalah mekanisme untuk mengontrol urutan tugas dalam antrean. Tugas dengan prioritas lebih tinggi dijadwalkan sebelum tugas tertunda lainnya dengan prioritas lebih rendah, terlepas dari waktu pengirimannya. Prioritas tugas default adalah 100.
Kemampuan untuk menetapkan prioritas lain (lebih tinggi atau lebih rendah) pada tugas ekspor hanya tersedia bagi pengguna proyek yang terdaftar untuk akses Earth Engine berbayar. Mengubah prioritas tugas ekspor tidak memengaruhi cara penjadwalannya relatif terhadap tugas impor, karena kedua jenis tugas dijadwalkan secara terpisah.
Contoh: menggunakan prioritas tugas
Pertimbangkan daftar tugas berikut, di mana tugas 1-5 dikirimkan dalam urutan alami dengan prioritas default. Proses ini berjalan dalam urutan pengirimannya, karena semua prioritasnya sama, dan karena dua slot pemrosesan batch tersedia untuk project ini, dua proses berjalan secara bersamaan (yang pertama dan kedua yang dikirimkan).
Task name State Priority
---------------------------------------
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Mengirimkan tugas baru, MyHighPriorityTask1, tidak akan memengaruhi tugas yang sedang berjalan:
Task name State Priority
---------------------------------------
MyHighPriorityTask READY 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Setelah salah satu tugas yang sedang berjalan selesai, tugas yang tertunda dengan prioritas tertinggi akan berjalan (dalam hal ini, tugas berprioritas tinggi kita):
Task name State Priority
-----------------------------------------
MyHighPriorityTask RUNNING 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 COMPLETED 100
MyDefaultTask1 RUNNING 100