Earth Engine bietet verschiedene Umgebungen für die Datenverarbeitung: interaktiv und Batch. Diese beiden Umgebungen (oder „Reiche“) verarbeiten unterschiedliche Arten von Abfragen und haben sehr unterschiedliche Leistungsmerkmale. Es ist daher wichtig zu wissen, wann und wie sie verwendet werden sollten.
Interaktive Umgebung
Diese Umgebung wird auch als „synchroner“ oder „online“-Stack bezeichnet und ist für die Beantwortung kleiner Anfragen optimiert, die schnell abgeschlossen werden. Antworten sind auf mehrere zehn Megabyte Daten beschränkt und müssen innerhalb von fünf Minuten verarbeitet werden. Es können viele Anfragen parallel gestellt werden, bis die Kontingentlimits erreicht sind.
Endpunkte
Die interaktive Umgebung besteht aus verschiedenen API-Endpunkten: Standard und hohe Auslastung.
Standardendpunkt
Der Standardendpunkt eignet sich für die meisten Anwendungen durch Menschen und wird für den Code-Editor und die Earth Engine-Apps verwendet. Dieser Endpunkt eignet sich insbesondere für latenzempfindliche Anwendungen mit einem geringen Volumen an gleichzeitigen, nicht programmatischen Anfragen.
Endpunkt mit hohem Volumen
Der Endpunkt für hohes Volumen ist auf die parallele Verarbeitung einer größeren Anzahl von Anfragen ausgelegt als der Standardendpunkt. Die Hauptunterschiede sind:
- Höhere Latenz: Der Endpunkt mit hohem Volumen hat eine höhere durchschnittliche Latenz pro Anfrage.
- Weniger Caching: Es wird weniger Zwischenergebnisse im Cache gespeichert. Komplexe Abfragen erfordern daher möglicherweise mehr Rechenzeit.
- Best geeignet für automatisierte, kleine Abfragen: Der High-Volume-Endpunkt eignet sich hervorragend für viele programmatische Anfragen, ist aber am besten für einfache Abfragen geeignet, die keine Aggregation erfordern (z. B. das Abrufen von Kacheln aus vorgefertigten Bildern).
Für komplexe Analysen, bei denen ein effizientes Caching erforderlich ist, ist der Standard-API-Endpunkt möglicherweise vorzuziehen. Der High-Volume-Endpunkt ist für Aufgaben mit hohem Durchsatz und geringer Rechenleistung optimiert. Komplexe Abfragen erfordern bei Verwendung des Endpunkts für hohes Volumen in der Regel mehr EECUs als beim regulären Onlineendpunkt.
Verwendung des Endpunkts für hohes Volumen
Python-Client
Gib beim Initialisieren der earthengine
-Bibliothek einen opt_url
-Parameter an und setze ihn auf https://earthengine-highvolume.googleapis.com
.
Wie immer müssen Sie auch die richtigen Anmeldedaten übergeben und das Cloud-Projekt angeben. Beispiel:
ee.Initialize(
credentials=credentials,
project='my-project',
opt_url='https://earthengine-highvolume.googleapis.com'
)
JavaScript-Client
Wenn Sie die earthengine
-Bibliothek mit ee.initialize()
initialisieren, geben Sie https://earthengine-highvolume.googleapis.com
als ersten Parameter an.
REST API
Richten Sie Ihre REST-Anfragen an https://earthengine-highvolume.googleapis.com
(nicht an https://earthengine.googleapis.com
, wie z. B. in der REST API-Kurzanleitung gezeigt).
Batch-Umgebung
Diese Umgebung wird auch als „asynchroner“ oder „offline“-Stack bezeichnet und ist für die parallele Verarbeitung großer Datenmengen mit hoher Latenz optimiert. Anfragen werden als Aufgaben an Endpunkte für die Batchverarbeitung gesendet, in der Regel durch Aufrufen von Funktionen zum import oder Exportieren von Daten (z.B. Export.*
und ee.batch.*
) aus den Earth Engine-Clientbibliotheken. Jede Batch-Aufgabe hat eine maximale Lebensdauer von zehn Tagen. Jedes Projekt unterstützt bis zu 3.000 ausstehende Aufgaben, aber jeder einzelne Nutzer ist auf eine kleine Anzahl von gleichzeitig ausgeführten Aufgaben beschränkt.
Aufgabenlebenszyklus
Aufgaben werden in eine Warteschlange eingespeist und nach Priorität (höchste zuerst) und Einreichungszeit (früheste zuerst) sortiert. Aufgaben ändern den Status von SUBMITTED
(in der Warteschlange) in RUNNING
, wenn sie einem Batch-Prozessor zugewiesen werden. Jeder Prozessor ist für die Koordination einer variablen Anzahl von Batch-Workern verantwortlich, um die Berechnung auszuführen und die Ergebnisse der Aufgabe zu generieren.
Die Anzahl der Worker für eine Aufgabe wird durch die Fähigkeit des EE-Dienstes bestimmt, den Job zu parallelisieren. Sie kann nicht vom Nutzer konfiguriert werden.
Bei der Verwendung eines Cloud-Projekts sind Aufgaben für alle Nutzer sichtbar, die auf Projektebene die Berechtigung zum Auflisten von Aufgaben haben. Wenn das Projekt für den kostenpflichtigen Earth Engine-Zugriff registriert ist, werden Aufgaben in einer projektweiten Warteschlange organisiert. Wenn das Projekt für den kostenlosen (Forschungs-)Zugriff registriert ist, werden Aufgaben unabhängig für jede Person geplant, sind aber für alle Nutzer des Projekts sichtbar.
Aufgaben werden erfolgreich abgeschlossen, wenn die erforderlichen Artefakte (Earth Engine-Assets, Dateien in Google Cloud Storage usw.) erstellt werden.
Aufgabenverwaltung
Aufgaben können über die folgenden Oberflächen aufgerufen und abgebrochen werden:
- Auf der Seite „Aufgaben“ in der Cloud Console
- Ermöglicht die Aufgabenverwaltung auf Cloud-Projektebene. Dies ist die Hauptoberfläche für die Verwaltung von Aufgaben.
- Task-Manager-Seite
- Auf dieser Benutzeroberfläche werden Aufgaben auf Nutzer- und Projektebene angezeigt. Außerdem ist eine Filterung nach Aufgabennamen möglich.
- Tab „Aufgaben“ im Code-Editor
- Ermöglicht das Überwachen von Aufgaben neben einem Code-Editor-Script.
ListOperations
-Endpunkt undtask
-Befehl- Am besten geeignet, um Aufgaben programmatisch aufzurufen und zu verwalten.
Taskfehler
Wenn eine Aufgabe aus einem Grund fehlschlägt, der sich nicht durch einen erneuten Versuch beheben lässt (z.B. ungültige Daten), wird sie als FAILED
markiert und nicht noch einmal ausgeführt.
Wenn eine Aufgabe aus einem Grund fehlschlägt, der sporadisch auftreten kann (z.B. Zeitüberschreitung bei der Ausführung einer Berechnung), wird in Earth Engine automatisch versucht, sie noch einmal auszuführen und das Feld retries
zu füllen. Aufgaben können bis zu fünfmal fehlschlagen. Nach dem letzten Fehler wird die gesamte Aufgabe als FAILED
markiert.
Aufgaben-ID
Jede Aufgabe hat eine alphanumerische ID vom Typ 3DNU363IM57LNU4SDTMB6I33
. Sie können sie über die Oberflächen der Aufgabenverwaltung aufrufen oder abrufen. Wenn Sie Aufgaben programmatisch starten, erhalten Sie die Aufgaben-ID von ee.data.newTaskId
. Wenn Sie Hilfe bei der Fehlerbehebung bei einer Export- oder Datenaufnahmeaufgabe benötigen, geben Sie diese Aufgaben-ID als kopierbaren String (kein Screenshot) an.
Liste der Aufgabenstatus
Aufgaben können die folgenden state
-Werte haben:
UNSUBMITTED
, noch ausstehend beim KundenREADY
, in der Warteschlange auf dem ServerRUNNING
, aktuell ausgeführtCOMPLETED
, abgeschlossenFAILED
, fehlgeschlagenCANCEL_REQUESTED
, wird noch ausgeführt, aber es wurde eine Stornierung angefordert.Es kann also nicht garantiert werden, dass die Aufgabe storniert wird.CANCELLED
, vom Inhaber abgebrochen
Aufgabenpriorität
Die Aufgabenpriorität ist ein Mechanismus zur Steuerung der Reihenfolge der Aufgaben in der Warteschlange. Aufgaben mit höherer Priorität werden vor anderen ausstehenden Aufgaben mit niedrigerer Priorität geplant, unabhängig von deren Einreichungszeit. Die Standardaufgabe hat die Priorität 100.
Die Möglichkeit, Exportaufgaben andere Prioritäten (höher oder niedriger) zuzuweisen, ist nur für Nutzer von Projekten verfügbar, die für den kostenpflichtigen Earth Engine-Zugriff registriert sind. Die Änderung der Priorität einer Exportaufgabe hat keine Auswirkungen auf die Planung im Vergleich zu Importaufgaben, da die beiden Aufgabentypen separat geplant werden.
Beispiel: Aufgabenprioritäten verwenden
Sehen Sie sich die folgende Aufgabenliste an, in der die Aufgaben 1–5 in ihrer natürlichen Reihenfolge mit der Standardpriorität eingereicht werden. Sie werden in der Reihenfolge ausgeführt, in der sie eingereicht wurden, da die Prioritäten alle gleich sind. Da für dieses Projekt zwei Slots für die Batchverarbeitung verfügbar sind, werden zwei gleichzeitig ausgeführt (die erste und die zweite eingereichte).
Task name State Priority
---------------------------------------
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Das Einreichen einer neuen Aufgabe, MyHighPriorityTask1
, hat keine Auswirkungen auf die laufenden Aufgaben:
Task name State Priority
---------------------------------------
MyHighPriorityTask READY 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 RUNNING 100
MyDefaultTask1 RUNNING 100
Nachdem eine der laufenden Aufgaben abgeschlossen ist, wird die ausstehende Aufgabe mit der höchsten Priorität ausgeführt (in diesem Fall die Aufgabe mit hoher Priorität):
Task name State Priority
-----------------------------------------
MyHighPriorityTask RUNNING 500
MyDefaultTask5 READY 100
MyDefaultTask4 READY 100
MyDefaultTask3 READY 100
MyDefaultTask2 COMPLETED 100
MyDefaultTask1 RUNNING 100