處理環境

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

互動式環境

這個環境也稱為「同步」或「線上」堆疊,經過最佳化處理後,可快速回答小型要求 (回應資料量上限為數十 MB,且必須在五分鐘內完成處理)。您可以並行提出多項要求,但請注意配額限制

端點

互動式環境由不同的 API 端點組成:標準高流量

標準端點

標準端點適用於大多數人為導向的用途,也是 Code Editor 和 Earth Engine 應用程式的動力來源。具體來說,這個端點最適合延遲時間敏感的應用程式,也就是涉及大量非程式化並行要求的應用程式。

大量端點

高流量端點的設計目的,是為了處理比標準端點更大量的並行要求。主要差異如下:

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

如果是需要高效快取的複雜分析,建議使用標準 API 端點。高流量端點已針對高處理量、低運算的工作進行最佳化。使用高流量端點時,複雜查詢通常需要的 EECU 時間通常比一般線上端點還要長。

使用大量端點

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

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

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

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

批次環境

這個環境也稱為「非同步」或「離線」堆疊,經過最佳化處理大量資料的延遲平行處理作業。要求會以工作形式提交至批次處理端點,通常會透過呼叫資料import匯出函式 (例如 Export.*ee.batch.*) 的 Earth Engine 用戶端程式庫。每個批次工作最多可保留十天。每個專案最多支援 3000 個待處理工作,但每位使用者只能同時執行少量工作

工作生命週期

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

使用 Cloud 專案時,凡是擁有專案層級工作清單權限的使用者,都能查看工作。如果專案註冊付費 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