تتضمّن Earth Engine بيئتين مختلفتين لمعالجة البيانات: تفاعلية ومجمّعة. يتعامل هذان البيئتان (أو "المجالان") مع أنواع مختلفة من طلبات البحث، كما أنّ لهما خصائص أداء مختلفة تمامًا، لذا من المهم معرفة متى وكيف يتم استخدام كل منهما.
بيئة تفاعلية
يُطلق على هذا النوع أيضًا اسم "المجموعة المتزامنة" أو "المجموعة المباشرة"، وهو بيئة محسّنة للردّ على الطلبات الصغيرة التي يتم إكمالها بسرعة (تقتصر الردود على عشرات الميجابايت من البيانات ويجب إكمال معالجتها في غضون خمس دقائق). يمكن إجراء العديد من الطلبات بالتوازي بما لا يتجاوز حدود الحصة.
نقاط النهاية
تتألف البيئة التفاعلية من نقاط نهاية مختلفة لواجهة برمجة التطبيقات: عادية وعالية الحجم.
نقطة النهاية العادية
نقطة النهاية العادية مناسبة لمعظم الاستخدامات التي تتم بواسطة الإنسان، وهي التي تشغّل "أداة تعديل الرموز" و"تطبيقات Earth Engine". على وجه التحديد، تكون نقطة النهاية هذه الأنسب للتطبيقات التي تتطلّب سرعة استجابة عالية والتي تتضمّن عددًا قليلاً من الطلبات المتزامنة غير الآلية.
نقطة نهاية ذات عدد كبير من الطلبات
تم تصميم نقطة النهاية ذات معدل النقل العالي للتعامل مع عدد أكبر من الطلبات بالتوازي مقارنةً بنقطة النهاية العادية. تشمل الاختلافات الرئيسية ما يلي:
- وقت استجابة أطول: يسجّل نقطة النهاية ذات الحجم الكبير وقت استجابة متوسطًا أطول لكل طلب.
- تخزين مؤقت أقل: يوفّر هذا الوضع تخزينًا مؤقتًا أقل للنتائج الوسيطة، لذا قد تتطلّب طلبات البحث المعقّدة وقتًا أطول للمعالجة.
- الأفضل للطلبات الصغيرة المبرمَجة: يتفوّق نقطة النهاية ذات الحجم الكبير في التعامل مع العديد من الطلبات المبرمَجة، ولكنّها الأنسب للطلبات البسيطة التي لا تتطلّب تجميعًا (مثل استرداد مربّعات من صور مُنشأة مسبقًا).
بالنسبة إلى عمليات التحليل المعقّدة التي تتطلّب تخزينًا مؤقتًا فعالاً، قد يكون من الأفضل استخدام نقطة نهاية واجهة برمجة التطبيقات العادية. تم تحسين نقطة النهاية التي تعالج عددًا كبيرًا من الطلبات لتنفيذ المهام التي تتطلّب معدّل نقل بيانات مرتفعًا ومستوى منخفضًا من الحوسبة. تتطلّب الاستعلامات المعقّدة عادةً وقتًا أطول لوحدة 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
للمَعلمة الأولى.
REST API
وجِّه طلبات REST إلى
https://earthengine-highvolume.googleapis.com
(بدلاً من https://earthengine.googleapis.com،
كما هو موضّح في
دليل البدء السريع لواجهة REST API،
على سبيل المثال).
بيئة الدفعات
يُطلق على هذه البيئة أيضًا اسم الحزمة "غير المتزامنة" أو "غير المتصلة بالإنترنت"، وهي محسّنة للمعالجة المتوازية لكميات كبيرة من البيانات مع تأخير كبير. يتم إرسال الطلبات كمهام إلى نقاط نهاية المعالجة المجمّعة، وذلك عادةً من خلال استدعاء وظائف استيراد أو تصدير البيانات (مثل Export.* وee.batch.*) من مكتبات برامج Earth Engine. تبلغ مدة بقاء كل مهمة مجمّعة
عشرة أيام كحد أقصى. يتيح كل مشروع ما يصل إلى 3, 000 مهمة معلّقة، ولكن يقتصر عدد المهام التي يمكن تشغيلها في الوقت نفسه على عدد صغير لكل مستخدم.
مراحل نشاط المهمة
يتم إرسال المهام إلى قائمة انتظار وترتيبها حسب الأولوية (الأعلى أولاً) ووقت الإرسال (الأقدم أولاً). تتغيّر حالة المهام من SUBMITTED (في قائمة الانتظار) إلى RUNNING عند تعيينها إلى معالج دفعي. يكون كل معالج مسؤولاً عن تنسيق عدد مختلف من عاملين في الدفعات لتنفيذ العمليات الحسابية وإنتاج نتائج المهمة.
يتم تحديد عدد العاملين في مهمة معيّنة حسب قدرة خدمة "التنفيذ الخارجي" على تنفيذ المهمة بالتوازي، ولا يمكن للمستخدم ضبط هذا العدد.
عند استخدام مشروع على السحابة الإلكترونية، يمكن لأي شخص لديه إذن على مستوى المشروع الاطّلاع على المهام. إذا كان المشروع مسجّلاً للاستفادة من ميزة Earth Engine المدفوعة، يتم تنظيم المهام في قائمة انتظار على مستوى المشروع. أما إذا كان المشروع مسجّلاً للاستفادة من ميزة Earth Engine غير المدفوعة (البحثية)، يتم تحديد مواعيد المهام بشكل مستقل لكل مستخدم على حدة، ولكن تظل المهام مرئية لجميع مستخدمي المشروع.
تكتمل المهام بنجاح عندما تنشئ العناصر الضرورية (مثل عناصر Earth Engine والملفات في Google Cloud Storage وما إلى ذلك).
إدارة المهام
يمكن الاطّلاع على المهام وإلغاؤها باستخدام الواجهات التالية:
- صفحة "المهام" في Cloud Console
- تتيح هذه السياسة إدارة المهام على مستوى مشروع Google Cloud. من الآن فصاعدًا، ستكون هذه هي واجهة المستخدم الرئيسية لإدارة المهام.
- صفحة "إدارة المهام"
- تعرض هذه الواجهة المهام على مستوى المستخدم والمشروع، وتتيح الفلترة حسب اسم المهمة.
- علامة التبويب "المهام" في "أداة تعديل الرموز"
- يسمح بمراقبة المهام إلى جانب نص برمجي لأداة تعديل الرموز.
- نقطة النهاية
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