Môi trường xử lý

Earth Engine có nhiều môi trường để xử lý dữ liệu: tương táctập hợp. Hai môi trường này (hoặc "phạm vi") xử lý nhiều loại truy vấn và có các đặc điểm hiệu suất rất khác nhau, vì vậy, điều quan trọng là bạn phải hiểu thời điểm và cách sử dụng từng môi trường.

Môi trường tương tác

Còn được gọi là ngăn xếp "đồng bộ" hoặc "trực tuyến", môi trường này được tối ưu hoá để trả lời các yêu cầu nhỏ và hoàn tất nhanh chóng (phản hồi được giới hạn ở hàng chục megabyte dữ liệu và phải hoàn tất quá trình xử lý trong vòng 5 phút). Bạn có thể thực hiện nhiều yêu cầu song song lên đến giới hạn hạn mức.

Điểm cuối

Môi trường tương tác bao gồm nhiều điểm cuối API: tiêu chuẩnlượng lớn.

Điểm cuối tiêu chuẩn

Điểm cuối tiêu chuẩn phù hợp với hầu hết các trường hợp sử dụng do con người thực hiện và là nền tảng cho Trình chỉnh sửa mã và Ứng dụng Earth Engine. Cụ thể, điểm cuối này phù hợp nhất với các ứng dụng nhạy cảm với độ trễ, liên quan đến số lượng yêu cầu không đồng thời, không theo phương thức lập trình thấp.

Điểm cuối có khối lượng lớn

Điểm cuối có khối lượng lớn được thiết kế để xử lý song song nhiều yêu cầu hơn so với điểm cuối tiêu chuẩn. Sau đây là một số điểm khác biệt chính:

  • Độ trễ cao hơn: Điểm cuối có lưu lượng lớn có độ trễ trung bình cao hơn trên mỗi yêu cầu.
  • Lưu ít vào bộ nhớ đệm hơn: Phương thức này lưu ít kết quả trung gian vào bộ nhớ đệm hơn, vì vậy, các truy vấn phức tạp có thể cần nhiều thời gian tính toán hơn.
  • Phù hợp nhất với các truy vấn nhỏ, tự động: Điểm cuối có khối lượng lớn rất hiệu quả trong việc xử lý nhiều yêu cầu có lập trình, nhưng phù hợp nhất với các truy vấn đơn giản không yêu cầu tổng hợp (chẳng hạn như tìm nạp thẻ thông tin từ hình ảnh tạo sẵn).

Đối với các hoạt động phân tích phức tạp cần lưu vào bộ nhớ đệm hiệu quả, bạn nên sử dụng điểm cuối API tiêu chuẩn. Điểm cuối có khối lượng lớn được tối ưu hoá cho các tác vụ có lưu lượng cao, tính toán thấp. Các truy vấn phức tạp thường yêu cầu nhiều thời gian EECU hơn khi sử dụng điểm cuối có khối lượng lớn so với điểm cuối trực tuyến thông thường.

Sử dụng điểm cuối có lưu lượng lớn

Ứng dụng Python

Khi khởi chạy thư viện earthengine, hãy truyền tham số opt_url và đặt tham số này thành https://earthengine-highvolume.googleapis.com. Như mọi khi, hãy nhớ truyền vào thông tin xác thực thích hợp và chỉ định dự án trên Cloud. Ví dụ:

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

Ứng dụng JavaScript

Khi khởi chạy thư viện earthengine bằng ee.initialize(), hãy truyền https://earthengine-highvolume.googleapis.com cho tham số đầu tiên.

API REST

Chuyển hướng các yêu cầu REST đến https://earthengine-highvolume.googleapis.com (thay vì https://earthengine.googleapis.com, chẳng hạn như trong phần Bắt đầu nhanh với API REST).

Môi trường xử lý hàng loạt

Còn được gọi là ngăn xếp "không đồng bộ" hoặc "ngoại tuyến", môi trường này được tối ưu hoá để xử lý song song với độ trễ cao đối với một lượng lớn dữ liệu. Các yêu cầu được gửi dưới dạng tác vụ đến các điểm cuối xử lý hàng loạt, thường là bằng cách gọi các hàm import hoặc xuất dữ liệu (ví dụ: Export.*ee.batch.*) từ thư viện ứng dụng Earth Engine. Mỗi tác vụ theo lô có thời gian tồn tại tối đa là 10 ngày. Mỗi dự án hỗ trợ tối đa 3.000 tác vụ đang chờ xử lý, nhưng mỗi người dùng cá nhân chỉ được giới hạn ở một số ít tác vụ chạy đồng thời.

Vòng đời tác vụ

Các tác vụ được gửi vào hàng đợi và sắp xếp theo mức độ ưu tiên (cao nhất trước) và thời gian gửi (sớm nhất trước). Các tác vụ thay đổi từ trạng thái SUBMITTED (đã đưa vào hàng đợi) thành trạng thái RUNNING khi được chỉ định cho một trình xử lý hàng loạt. Mỗi bộ xử lý chịu trách nhiệm điều phối một số lượng worker theo lô để chạy phép tính và tạo ra kết quả của tác vụ. Số lượng worker cho một tác vụ được xác định theo khả năng của dịch vụ EE trong việc chạy song song công việc và không phải do người dùng định cấu hình.

Khi sử dụng dự án trên Google Cloud, bất kỳ ai có quyền liệt kê tác vụ ở cấp dự án đều có thể xem các tác vụ. Nếu dự án được đăng ký để sử dụng Earth Engine có tính phí, thì các tác vụ sẽ được sắp xếp trong hàng đợi trên toàn dự án; nếu dự án được đăng ký để sử dụng Earth Engine không tính phí (dùng cho mục đích nghiên cứu), thì các tác vụ sẽ được lên lịch độc lập cho từng cá nhân nhưng vẫn hiển thị với người dùng của dự án.

Các tác vụ hoàn tất thành công khi tạo các cấu phần phần mềm cần thiết (tài sản Earth Engine, tệp trong Google Cloud Storage, v.v.).

Quản lý công việc

Bạn có thể xem và huỷ các tác vụ bằng các giao diện sau:

Lỗi tác vụ

Nếu một tác vụ không thành công vì lý do không thể khắc phục bằng cách thử lại (ví dụ: dữ liệu không hợp lệ), thì tác vụ đó sẽ được đánh dấu là FAILED và sẽ không chạy lại.

Nếu một tác vụ không thành công vì lý do có thể là không liên tục (ví dụ: hết thời gian khi chạy một phép tính), Earth Engine sẽ tự động thử lại tác vụ đó và điền vào trường retries. Các tác vụ có thể không thành công tối đa 5 lần và lỗi cuối cùng sẽ khiến toàn bộ tác vụ bị đánh dấu là FAILED.

Mã việc cần làm

Mỗi tác vụ có một mã nhận dạng gồm chữ và số ở dạng 3DNU363IM57LNU4SDTMB6I33. Bạn có thể xem hoặc lấy các thông tin này thông qua giao diện quản lý tác vụ. Nếu bắt đầu các tác vụ theo phương thức lập trình, bạn sẽ nhận được mã tác vụ từ ee.data.newTaskId. Khi yêu cầu trợ giúp gỡ lỗi cho một tác vụ xuất hoặc nhập, hãy cung cấp mã tác vụ này dưới dạng một chuỗi có thể sao chép (không phải ảnh chụp màn hình).

Danh sách trạng thái tác vụ

Tác vụ có thể có các giá trị state sau:

  • UNSUBMITTED, vẫn đang chờ xử lý trên máy khách
  • READY, được đưa vào hàng đợi trên máy chủ
  • RUNNING, đang chạy
  • COMPLETED, đã hoàn tất thành công
  • FAILED, không hoàn tất được
  • CANCEL_REQUESTED, vẫn đang chạy nhưng đã được yêu cầu huỷ (tức là không đảm bảo rằng tác vụ sẽ bị huỷ)
  • CANCELLED, do chủ sở hữu huỷ

Mức độ ưu tiên của tác vụ

Mức độ ưu tiên của tác vụ là một cơ chế để kiểm soát thứ tự của các tác vụ trong hàng đợi. Các tác vụ có mức độ ưu tiên cao hơn sẽ được lên lịch trước các tác vụ đang chờ xử lý khác có mức độ ưu tiên thấp hơn, bất kể thời gian gửi. Mức độ ưu tiên mặc định của tác vụ là 100.

Chỉ những người dùng các dự án đã đăng ký quyền truy cập có tính phí vào Earth Engine mới có thể đặt các mức độ ưu tiên khác (cao hơn hoặc thấp hơn) cho các tác vụ xuất. Việc thay đổi mức độ ưu tiên của một tác vụ xuất sẽ không ảnh hưởng đến cách lên lịch tác vụ đó so với bất kỳ tác vụ nhập nào, vì hai loại tác vụ này được lên lịch riêng biệt.

Ví dụ: sử dụng mức độ ưu tiên của tác vụ

Hãy xem xét danh sách công việc sau đây, trong đó các công việc từ 1 đến 5 được gửi theo thứ tự tự nhiên với mức độ ưu tiên mặc định. Các công việc này chạy theo thứ tự được gửi, vì các mức độ ưu tiên đều giống nhau và vì có hai khung xử lý hàng loạt cho dự án này, nên hai công việc sẽ chạy đồng thời (công việc đầu tiên và công việc thứ hai được gửi).

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

Việc gửi một tác vụ mới, MyHighPriorityTask1, sẽ không ảnh hưởng đến các tác vụ đang chạy:

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

Sau khi một trong các tác vụ đang chạy hoàn tất, tác vụ đang chờ xử lý có mức độ ưu tiên cao nhất sẽ chạy (trong trường hợp này là tác vụ có mức độ ưu tiên cao):

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