Lingkungan Pemrosesan

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:

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 klien
  • READY, dimasukkan dalam antrean di server
  • RUNNING, saat ini berjalan
  • COMPLETED, berhasil diselesaikan
  • FAILED, selesai tidak berhasil
  • CANCEL_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