Earth Engine memiliki lingkungan yang berbeda untuk memproses data: interaktif dan batch. Kedua lingkungan ini (atau "realm") menangani berbagai jenis kueri dan memiliki karakteristik performa yang sangat berbeda, jadi penting untuk memahami kapan dan cara menggunakan masing-masing.
Lingkungan interaktif
Juga disebut stack "sinkron" atau "online", lingkungan ini 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 dilakukan 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 bervolume tinggi
Endpoint volume tinggi dirancang untuk menangani volume permintaan yang lebih tinggi secara paralel daripada endpoint standar. Perbedaan utamanya meliputi:
- Latensi yang lebih tinggi: Endpoint volume tinggi memiliki latensi rata-rata per permintaan yang lebih tinggi.
- Lebih sedikit caching: Menyediakan lebih sedikit caching hasil perantara, sehingga kueri yang kompleks mungkin memerlukan lebih banyak waktu komputasi.
- Terbaik untuk kueri kecil otomatis: Endpoint volume tinggi sangat cocok untuk menangani banyak permintaan terprogram, tetapi paling cocok untuk kueri sederhana yang tidak memerlukan agregasi (seperti mengambil ubin dari gambar bawaan).
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 kompleks biasanya memerlukan lebih banyak waktu EECU saat menggunakan endpoint bervolume tinggi daripada di endpoint online reguler.
Penggunaan endpoint bervolume tinggi
Klien Python
Saat melakukan inisialisasi library earthengine
, teruskan parameter opt_url
dan tetapkan ke
https://earthengine-highvolume.googleapis.com
.
Seperti biasa, pastikan juga untuk meneruskan kredensial yang sesuai dan menentukan project Cloud. Contoh:
ee.Initialize(
credentials=credentials,
project='my-project',
opt_url='https://earthengine-highvolume.googleapis.com'
)
Klien JavaScript
Saat melakukan inisialisasi 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
Panduan Mulai Cepat REST API,
misalnya).
Lingkungan batch
Juga disebut stack "asinkron" atau "offline", lingkungan ini dioptimalkan
untuk pemrosesan paralel latensi tinggi dari data dalam jumlah besar. Permintaan dikirimkan sebagai tugas ke endpoint pemrosesan batch, biasanya dengan memanggil fungsi import atau ekspor data (misalnya, Export.*
dan
ee.batch.*
) dari library klien Earth Engine. Setiap tugas batch memiliki
masa berlaku maksimum sepuluh hari. Setiap project mendukung hingga 3.000 tugas
yang tertunda, tetapi setiap pengguna individu
dibatasi untuk sejumlah kecil tugas yang berjalan
secara serentak.
Siklus proses tugas
Tugas dikirim ke antrean dan diurutkan berdasarkan prioritasnya
(tertinggi terlebih dahulu) dan waktu pengiriman (paling awal terlebih dahulu). Tugas berubah dari
status SUBMITTED
(antrean) menjadi status RUNNING
saat ditetapkan ke
pemroses batch. Setiap prosesor bertanggung jawab untuk mengatur jumlah
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 oleh 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 seluruh project; jika project terdaftar untuk akses (riset) tidak berbayar, tugas akan dijadwalkan secara independen untuk setiap individu, tetapi tetap terlihat oleh semua pengguna project.
Tugas berhasil diselesaikan saat 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
- Mengaktifkan pengelolaan tugas di tingkat project Cloud. Ke depannya, ini adalah antarmuka pengguna utama untuk mengelola tugas.
- Halaman Task Manager
- Antarmuka ini menampilkan tugas di tingkat pengguna dan project, serta mendukung pemfilteran berdasarkan nama tugas.
- Tab Tugas Editor Kode
- Memungkinkan pemantauan tugas bersama skrip Editor Kode.
- Endpoint
ListOperations
dan perintahtask
- Terbaik 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 intermiten (misalnya, waktu tunggunya habis saat menjalankan komputasi), Earth Engine akan otomatis mencoba mencobanya lagi dan mengisi kolom retries
. Tugas dapat gagal hingga lima kali, dan kegagalan
akhir 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 tertunda di klienREADY
, dimasukkan dalam antrean di serverRUNNING
, saat ini berjalanCOMPLETED
, berhasil diselesaikanFAILED
, tidak berhasil diselesaikanCANCEL_REQUESTED
, masih berjalan tetapi telah diminta untuk dibatalkan (yaitu, bukan 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 akan dijadwalkan sebelum tugas tertunda lainnya dengan prioritas lebih rendah, terlepas dari waktu pengirimannya. Prioritas tugas defaultnya adalah 100.
Kemampuan untuk menetapkan prioritas lain (lebih tinggi atau lebih rendah) pada tugas ekspor hanya tersedia untuk pengguna project yang terdaftar untuk akses Earth Engine berbayar. Mengubah prioritas tugas ekspor tidak memengaruhi cara penjadwalannya dibandingkan dengan tugas impor, karena kedua jenis tugas dijadwalkan secara terpisah.
Contoh: menggunakan prioritas tugas
Pertimbangkan daftar tugas berikut, dengan tugas 1-5 dikirim dalam urutan alami dengan prioritas default. Keduanya berjalan dalam urutan yang dikirimkan, karena prioritasnya sama, dan, karena dua slot pemrosesan batch tersedia untuk project ini, dua slot berjalan secara serentak (yang pertama dan kedua 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 tertunda dengan prioritas tertinggi akan berjalan (dalam hal ini, tugas prioritas tinggi):
Task name State Priority
-----------------------------------------
MyHighPriorityTask RUNNING 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 COMPLETED 100
MyDefaultTask1 RUNNING 100