處理環境

Earth Engine 提供不同的資料處理環境:互動式批次。這兩個環境 (或「領域」) 會處理不同類型的查詢,效能特徵也大不相同,因此請務必瞭解何時及如何使用。

互動式環境

這個環境也稱為「同步」或「線上」堆疊,專門用來處理小型要求,並在短時間內完成 (回應資料大小上限為數十 MB,且必須在五分鐘內完成處理)。您可以並行提出多個要求,但不得超過配額限制

端點

互動式環境是由不同 API 端點組成:標準大量

標準端點

標準端點適用於大多數人為驅動的使用情況,也是程式碼編輯器和 Earth Engine 應用程式的運作基礎。具體來說,這個端點最適合用於延遲時間敏感型應用程式,這類應用程式涉及少量並行的非程式輔助要求。

高用量端點

高用量端點的設計宗旨,是比標準端點能處理更多並行要求。主要差異如下:

  • 延遲時間較長:高用量端點的每個要求平均延遲時間較長。
  • 減少快取:減少快取中繼結果,因此複雜查詢可能需要更多運算時間。
  • 最適合自動化的小型查詢:高用量端點擅長處理大量程式輔助要求,但最適合不需要彙整的簡單查詢 (例如從預先建構的圖片擷取圖塊)。

如需有效率地快取複雜分析,建議使用標準 API 端點。高用量端點經過最佳化,可處理高處理量、低運算量的作業。使用高用量端點時,複雜查詢通常需要比一般線上端點更多的 EECU 時間

使用高用量端點

Python 用戶端

初始化 earthengine 程式庫時,請傳遞 opt_url 參數並設為 https://earthengine-highvolume.googleapis.com。如常,請務必傳遞適當的憑證,並指定 Cloud 專案。例如:

ee.Initialize(
    credentials=credentials,
    project='my-project',
    opt_url='https://earthengine-highvolume.googleapis.com'
)

JavaScript 用戶端

使用 ee.initialize() 初始化 earthengine 程式庫時,請將 https://earthengine-highvolume.googleapis.com 做為第一個參數傳遞。

REST API

將 REST 要求導向 https://earthengine-highvolume.googleapis.com (而非 https://earthengine.googleapis.com,如「REST API 快速入門」所示)。

批次環境

這個環境也稱為「非同步」或「離線」堆疊,經過最佳化後,可平行處理大量資料,但延遲時間較長。要求會以工作形式提交至批次處理端點,通常是透過呼叫資料匯入匯出函式 (例如 Export.*ee.batch.*) 從 Earth Engine 用戶端程式庫提交。每個批次工作的最長生命週期為十天。每個專案最多可支援 3, 000 個待處理工作,但每位使用者可同時執行的工作數量有限。

工作生命週期

工作會提交至佇列,並依優先順序 (最高優先順序優先) 和提交時間 (最早提交優先) 排序。工作指派給批次處理器後,就會從 SUBMITTED (已加入佇列) 狀態變更為 RUNNING 狀態。每個處理器負責協調不同數量的批次工作站,以執行運算並產生工作結果。工作的工作站數量取決於 EE 服務平行處理工作的能力,使用者無法設定。

使用雲端專案時,只要具備專案層級的列出工作權限,就能查看工作。如果專案已註冊付費的 Earth Engine 存取權,工作會依專案排入佇列;如果專案註冊的是免費 (研究) 存取權,工作會為每位使用者獨立排程,但專案使用者仍可查看。

如果工作建立必要的構件 (Earth Engine 資產、Google Cloud Storage 中的檔案等),即表示工作順利完成。

工作管理

您可以使用下列介面查看及取消工作:

工作失敗

如果工作因重試無法修正的原因而失敗 (例如資料無效),工作會標示為 FAILED,且不會再次執行。

如果工作因間歇性原因 (例如執行運算時逾時) 而失敗,Earth Engine 會自動嘗試重試,並填入 retries 欄位。工作最多可失敗五次,最終失敗會導致整個工作標示為 FAILED

工作 ID

每項工作都有一個英數 ID,格式為 3DNU363IM57LNU4SDTMB6I33。您可以透過工作管理介面查看或取得這些資訊。如果您是以程式輔助方式啟動工作,可以從 ee.data.newTaskId 取得工作 ID。要求協助偵錯匯出或擷取工作時,請提供這項工作 ID 做為可複製的字串 (而非螢幕截圖)。

工作狀態清單

工作可具有下列 state 值:

  • UNSUBMITTED,仍待用戶端處理
  • READY,在伺服器上排入佇列
  • 目前正在執行「RUNNING
  • COMPLETED,已順利完成
  • FAILED,未順利完成
  • CANCEL_REQUESTED,仍在執行中,但已要求取消 (即無法保證工作會取消)
  • CANCELLED,業主已取消

工作優先順序

工作優先順序是一種機制,可控制佇列中的工作順序。 無論提交時間為何,系統都會先排定優先順序較高的工作,再排定其他優先順序較低的工作。預設工作優先順序為 100。

只有已註冊付費 Earth Engine 存取權的專案使用者,才能為匯出工作設定其他優先順序 (較高或較低)。變更匯出工作的優先順序,不會影響系統排定匯出工作相對於匯入工作的時間,因為這兩種工作是分開排定的。

範例:使用工作優先順序

請參考下列工作清單,其中工作 1 到 5 是以預設優先順序依序提交。由於優先順序相同,因此系統會依提交順序執行作業。此外,由於這個專案有兩個批次處理位置,因此會同時執行兩個作業 (提交的第一個和第二個作業)。

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

提交新工作「MyHighPriorityTask1」不會影響正在執行的工作:

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

其中一項執行中的工作完成後,系統會執行優先順序最高的待處理工作 (在本例中,就是高優先順序工作):

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