Earth Engine имеет разные среды обработки данных: интерактивную и пакетную . Эти две среды (или «области») обрабатывают разные типы запросов и имеют очень разные характеристики производительности, поэтому важно понимать, когда и как использовать каждую из них.
Интерактивная среда
Эта среда, также называемая «синхронным» или «онлайновым» стеком, оптимизирована для ответа на небольшие запросы, которые быстро завершаются (ответы ограничены десятками мегабайт данных и должны завершиться в течение пяти минут). Многие запросы могут выполняться параллельно в пределах квоты .
Конечные точки
Интерактивная среда состоит из различных конечных точек 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-клиент
При инициализации библиотеки earthengine
с помощью ee.initialize()
передайте https://earthengine-highvolume.googleapis.com
в качестве первого параметра.
ОТДЫХ API
Направляйте свои запросы REST на https://earthengine-highvolume.googleapis.com
(вместо https://earthengine.googleapis.com
, как показано, например, в Кратком руководстве по REST API ).
Пакетная среда
Эта среда, также называемая «асинхронным» или «автономным» стеком, оптимизирована для параллельной обработки больших объемов данных с высокой задержкой. Запросы передаются как задачи конечным точкам пакетной обработки, обычно путем вызова функций импорта или экспорта данных (например, Export.*
и ee.batch.*
) из клиентских библиотек Earth Engine. Максимальное время существования каждой пакетной задачи составляет десять дней. Каждый проект поддерживает до 3000 ожидающих задач , но каждый отдельный пользователь ограничен небольшим количеством одновременно выполняемых задач .
Жизненный цикл задачи
Задачи помещаются в очередь и сортируются по приоритету (сначала самый высокий) и времени отправки (сначала самый ранний). Задачи переходят из состояния SUBMITTED
(в очереди) в состояние RUNNING
, когда они назначаются пакетному процессору . Каждый процессор отвечает за управление различным количеством пакетных рабочих процессов для выполнения вычислений и получения результатов задачи. Количество рабочих для задачи определяется способностью службы EE распараллеливать задание и не настраивается пользователем.
При использовании облачного проекта задачи видны всем, у кого есть разрешение на уровне проекта на составление списка задач. Если проект зарегистрирован для платного доступа Earth Engine, задачи организуются в очередь для всего проекта; если проект зарегистрирован для неоплачиваемого (исследовательского) доступа, задачи планируются независимо для каждого человека, но по-прежнему видны всем пользователям проекта.
Задачи выполняются успешно, когда создаются необходимые артефакты (ресурсы Earth Engine, файлы в Google Cloud Storage и т. д.).
Управление задачами
Задачи можно просмотреть и отменить с помощью следующих интерфейсов:
- Страница задач в Cloud Console
- Обеспечивает управление задачами на уровне облачного проекта. В дальнейшем это основной пользовательский интерфейс для управления задачами.
- Страница диспетчера задач
- Этот интерфейс показывает задачи на уровне пользователя и проекта и поддерживает фильтрацию по имени задачи.
- Вкладка «Задачи редактора кода»
- Позволяет отслеживать задачи вместе со сценарием редактора кода.
- Конечная точка
ListOperations
и командаtask
- Лучше всего подходит для программного просмотра и управления задачами.
Сбои задач
Если задача завершается неудачно по причине, которую невозможно устранить повторной попыткой (например, недопустимые данные), задача будет помечена как FAILED
и больше не будет запускаться.
Если задача завершается сбоем по причине, которая может быть прерывистой (например, истекло время ожидания при выполнении вычислений), Earth Engine автоматически попытается повторить ее и заполнит поле retries
. Задачи могут завершиться неудачей до пяти раз, а окончательный сбой приведет к тому, что вся задача будет помечена как FAILED
.
Идентификатор задачи
Каждая задача имеет буквенно-цифровой идентификатор вида 3DNU363IM57LNU4SDTMB6I33
. Их можно просмотреть или получить через наши интерфейсы управления задачами . Если вы запускаете задачи программно, вы получаете идентификатор задачи из ee.data.newTaskId
. При запросе помощи в отладке задачи экспорта или приема укажите этот идентификатор задачи в виде копируемой строки (а не снимка экрана).
Список состояний задачи
Задачи могут иметь следующие значения 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
Earth Engine имеет разные среды обработки данных: интерактивную и пакетную . Эти две среды (или «области») обрабатывают разные типы запросов и имеют очень разные характеристики производительности, поэтому важно понимать, когда и как использовать каждую из них.
Интерактивная среда
Эта среда, также называемая «синхронным» или «онлайновым» стеком, оптимизирована для ответа на небольшие запросы, которые быстро завершаются (ответы ограничены десятками мегабайт данных и должны завершиться в течение пяти минут). Многие запросы могут выполняться параллельно в пределах квоты .
Конечные точки
Интерактивная среда состоит из различных конечных точек 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-клиент
При инициализации библиотеки earthengine
с помощью ee.initialize()
передайте https://earthengine-highvolume.googleapis.com
в качестве первого параметра.
ОТДЫХ API
Направляйте свои запросы REST на https://earthengine-highvolume.googleapis.com
(вместо https://earthengine.googleapis.com
, как показано, например, в Кратком руководстве по REST API ).
Пакетная среда
Эта среда, также называемая «асинхронным» или «автономным» стеком, оптимизирована для параллельной обработки больших объемов данных с высокой задержкой. Запросы передаются как задачи конечным точкам пакетной обработки, обычно путем вызова функций импорта или экспорта данных (например, Export.*
и ee.batch.*
) из клиентских библиотек Earth Engine. Максимальное время существования каждой пакетной задачи составляет десять дней. Каждый проект поддерживает до 3000 ожидающих задач , но каждый отдельный пользователь ограничен небольшим количеством одновременно выполняемых задач .
Жизненный цикл задачи
Задачи помещаются в очередь и сортируются по приоритету (сначала самый высокий) и времени отправки (сначала самый ранний). Задачи переходят из состояния SUBMITTED
(в очереди) в состояние RUNNING
, когда они назначаются пакетному процессору . Каждый процессор отвечает за управление различным количеством пакетных рабочих процессов для выполнения вычислений и получения результатов задачи. Количество рабочих для задачи определяется способностью службы EE распараллеливать задание и не настраивается пользователем.
При использовании облачного проекта задачи видны всем, у кого есть разрешение на уровне проекта на составление списка задач. Если проект зарегистрирован для платного доступа Earth Engine, задачи организуются в очередь для всего проекта; если проект зарегистрирован для неоплачиваемого (исследовательского) доступа, задачи планируются независимо для каждого человека, но по-прежнему видны всем пользователям проекта.
Задачи выполняются успешно, когда создаются необходимые артефакты (ресурсы Earth Engine, файлы в Google Cloud Storage и т. д.).
Управление задачами
Задачи можно просмотреть и отменить с помощью следующих интерфейсов:
- Страница задач в Cloud Console
- Обеспечивает управление задачами на уровне облачного проекта. В дальнейшем это основной пользовательский интерфейс для управления задачами.
- Страница диспетчера задач
- Этот интерфейс показывает задачи на уровне пользователя и проекта и поддерживает фильтрацию по имени задачи.
- Вкладка «Задачи редактора кода»
- Позволяет отслеживать задачи вместе со сценарием редактора кода.
- Конечная точка
ListOperations
и командаtask
- Лучше всего подходит для программного просмотра и управления задачами.
Сбои задач
Если задача завершается неудачно по причине, которую невозможно устранить повторной попыткой (например, недопустимые данные), задача будет помечена как FAILED
и больше не будет запускаться.
Если задача завершается сбоем по причине, которая может быть прерывистой (например, истекло время ожидания при выполнении вычислений), Earth Engine автоматически попытается повторить ее и заполнит поле retries
. Задачи могут завершиться неудачей до пяти раз, а окончательный сбой приведет к тому, что вся задача будет помечена как FAILED
.
Идентификатор задачи
Каждая задача имеет буквенно-цифровой идентификатор вида 3DNU363IM57LNU4SDTMB6I33
. Их можно просмотреть или получить через наши интерфейсы управления задачами . Если вы запускаете задачи программно, вы получаете идентификатор задачи из ee.data.newTaskId
. При запросе помощи в отладке задачи экспорта или приема укажите этот идентификатор задачи в виде копируемой строки (а не снимка экрана).
Список состояний задачи
Задачи могут иметь следующие значения 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