انتقل إلى المحتوى

تنزيل البيانات من WIS2 باستخدام wis2downloader

نتائج التعلم!

بنهاية هذه الجلسة العملية، ستكون قادرًا على:

  • استخدام "wis2downloader" للاشتراك في إشعارات بيانات WIS2 وتنزيل البيانات على نظامك المحلي
  • عرض حالة التنزيلات في لوحة معلومات Grafana
  • تعلم كيفية تكوين wis2downloader للاشتراك في وسيط غير افتراضي

المقدمة

في هذه الجلسة، ستتعلم كيفية إعداد اشتراك في WIS2 Broker وتنزيل البيانات تلقائيًا إلى نظامك المحلي باستخدام خدمة "wis2downloader" المضمنة في wis2box.

حول wis2downloader

يتوفر wis2downloader أيضًا كخدمة مستقلة يمكن تشغيلها على نظام مختلف عن النظام الذي ينشر إشعارات WIS2. راجع wis2downloader لمزيد من المعلومات حول استخدام wis2downloader كخدمة مستقلة.

إذا كنت ترغب في تطوير خدمتك الخاصة للاشتراك في إشعارات WIS2 وتنزيل البيانات، يمكنك استخدام كود المصدر الخاص بـ wis2downloader كمرجع.

التحضير

قبل البدء، يرجى تسجيل الدخول إلى جهاز الطالب الافتراضي الخاص بك والتأكد من أن مثيل wis2box الخاص بك يعمل بشكل صحيح.

أساسيات wis2downloader

يتم تضمين wis2downloader كحاوية منفصلة في wis2box كما هو محدد في ملفات Docker Compose. يتم تكوين حاوية Prometheus في wis2box لجمع المقاييس من حاوية wis2downloader، ويمكن عرض هذه المقاييس من خلال لوحة معلومات في Grafana.

عرض لوحة معلومات wis2downloader في Grafana

افتح متصفح الويب وانتقل إلى لوحة معلومات Grafana لمثيل wis2box الخاص بك عن طريق الذهاب إلى http://YOUR-HOST:3000.

انقر على "لوحات المعلومات" في القائمة الجانبية، ثم اختر لوحة معلومات wis2downloader.

يجب أن ترى لوحة المعلومات التالية:

wis2downloader dashboard

تعتمد هذه اللوحة على المقاييس التي تنشرها خدمة wis2downloader وستعرض لك حالة التنزيلات الجارية حاليًا.

في الزاوية العلوية اليسرى، يمكنك رؤية الاشتراكات النشطة حاليًا.

ابقِ هذه اللوحة مفتوحة حيث ستستخدمها لمراقبة تقدم التنزيل في التمرين التالي.

مراجعة تكوين wis2downloader

يمكن تكوين خدمة wis2downloader في wis2box باستخدام متغيرات البيئة المحددة في ملف wis2box.env.

تُستخدم متغيرات البيئة التالية بواسطة wis2downloader:

- DOWNLOAD_BROKER_HOST: اسم المضيف الخاص بـ MQTT broker للاتصال به. القيمة الافتراضية هي globalbroker.meteo.fr
- DOWNLOAD_BROKER_PORT: المنفذ الخاص بـ MQTT broker للاتصال به. القيمة الافتراضية هي 443 (HTTPS للويب سوكيت)
- DOWNLOAD_BROKER_USERNAME: اسم المستخدم للاتصال بـ MQTT broker. القيمة الافتراضية هي everyone
- DOWNLOAD_BROKER_PASSWORD: كلمة المرور للاتصال بـ MQTT broker. القيمة الافتراضية هي everyone
- DOWNLOAD_BROKER_TRANSPORT: websockets أو tcp، آلية النقل للاتصال بـ MQTT broker. القيمة الافتراضية هي websockets
- DOWNLOAD_RETENTION_PERIOD_HOURS: فترة الاحتفاظ بالبيانات التي تم تنزيلها بالساعات. القيمة الافتراضية هي 24
- DOWNLOAD_WORKERS: عدد عمال التنزيل المستخدمين. القيمة الافتراضية هي 8. تحدد عدد التنزيلات المتوازية.
- DOWNLOAD_MIN_FREE_SPACE_GB: الحد الأدنى من المساحة الحرة بالجيجابايت للحفاظ عليها على وحدة التخزين التي تستضيف التنزيلات. القيمة الافتراضية هي 1.

لمراجعة التكوين الحالي لـ wis2downloader، يمكنك استخدام الأمر التالي:

cat ~/wis2box/wis2box.env | grep DOWNLOAD

مراجعة تكوين wis2downloader

ما هو MQTT broker الافتراضي الذي يتصل به wis2downloader؟

ما هي فترة الاحتفاظ الافتراضية للبيانات التي تم تنزيلها؟

انقر للكشف عن الإجابة

MQTT broker الافتراضي الذي يتصل به wis2downloader هو globalbroker.meteo.fr.

فترة الاحتفاظ الافتراضية للبيانات التي تم تنزيلها هي 24 ساعة.

تحديث تكوين wis2downloader

لتحديث تكوين wis2downloader، يمكنك تحرير ملف wis2box.env. لتطبيق التغييرات، يمكنك إعادة تشغيل أمر البدء الخاص بـ wis2box-stack:

python3 wis2box-ctl.py start

وسترى خدمة wis2downloader تعيد التشغيل بالتكوين الجديد.

يمكنك الاحتفاظ بالتكوين الافتراضي للتمرين التالي.

واجهة سطر الأوامر الخاصة بـ wis2downloader

للوصول إلى واجهة سطر الأوامر الخاصة بـ wis2downloader داخل wis2box، يمكنك تسجيل الدخول إلى حاوية wis2downloader باستخدام الأمر التالي:

python3 wis2box-ctl.py login wis2downloader

استخدم الأمر التالي لعرض قائمة الاشتراكات النشطة حاليًا:

wis2downloader list-subscriptions

سيعيد هذا الأمر قائمة فارغة، حيث لم يتم إعداد أي اشتراكات بعد.

تنزيل بيانات GTS باستخدام WIS2 Global Broker

إذا احتفظت بالتكوين الافتراضي لـ wis2downloader، فإنه متصل حاليًا بـ WIS2 Global Broker المستضاف بواسطة Météo-France.

إعداد الاشتراك

استخدم الأمر التالي cache/a/wis2/de-dwd-gts-to-wis2/# للاشتراك في البيانات المنشورة بواسطة بوابة GTS-to-WIS2 المستضافة بواسطة DWD، والمتاحة من خلال Global Caches:

wis2downloader add-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

ثم اخرج من حاوية wis2downloader بكتابة exit:

exit

التحقق من البيانات التي تم تنزيلها

تحقق من لوحة معلومات wis2downloader في Grafana لرؤية الاشتراك الجديد المضاف. انتظر بضع دقائق ويجب أن ترى التنزيلات تبدأ. انتقل إلى التمرين التالي بمجرد تأكيد بدء التنزيلات.

تقوم خدمة wis2downloader في wis2box بتنزيل البيانات في دليل 'downloads' في الدليل الذي حددته كـ WIS2BOX_HOST_DATADIR في ملف wis2box.env. لعرض محتويات دليل التنزيلات، استخدم الأمر التالي:

ls -R ~/wis2box-data/downloads

لاحظ أن البيانات التي تم تنزيلها يتم تخزينها في أدلة مسماة بناءً على الموضوع الذي تم نشر إشعار WIS2 عليه.

عرض البيانات التي تم تنزيلها

ما هي الأدلة التي تراها في دليل التنزيلات؟

هل يمكنك رؤية أي ملفات تم تنزيلها في هذه الأدلة؟

انقر للكشف عن الإجابة

يجب أن ترى بنية دليل تبدأ بـ cache/a/wis2/de-dwd-gts-to-wis2/ تحتها ستجد المزيد من الأدلة المسماة بناءً على رؤوس نشرات GTS للبيانات التي تم تنزيلها.

بناءً على وقت بدء الاشتراك، قد ترى أو لا ترى أي ملفات تم تنزيلها في هذا الدليل حتى الآن. إذا لم ترَ أي ملفات بعد، انتظر بضع دقائق أخرى وتحقق مرة أخرى.

دعنا ننظف الاشتراك والبيانات التي تم تنزيلها قبل الانتقال إلى التمرين التالي.

سجل الدخول مرة أخرى إلى حاوية wis2downloader:

python3 wis2box-ctl.py login wis2downloader

وقم بإزالة الاشتراك الذي قمت به من wis2downloader باستخدام الأمر التالي:

wis2downloader remove-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

قم بإزالة البيانات التي تم تنزيلها باستخدام الأمر التالي:

rm -rf /wis2box-data/downloads/cache/*

واخرج من حاوية wis2downloader بكتابة exit:

exit

تحقق من لوحة معلومات wis2downloader في Grafana لرؤية الاشتراك الذي تمت إزالته. يجب أن ترى التنزيلات تتوقف.

حول بوابات GTS-to-WIS2

هناك حاليًا بوابتان GTS-to-WIS2 تنشران البيانات من خلال WIS2 Global Broker وGlobal Caches:

  • DWD (ألمانيا): centre-id=de-dwd-gts-to-wis2
  • JMA (اليابان): centre-id=jp-jma-gts-to-wis2

إذا قمت في التمرين السابق باستبدال de-dwd-gts-to-wis2 بـ jp-jma-gts-to-wis2، ستتلقى الإشعارات والبيانات المنشورة بواسطة بوابة JMA GTS-to-WIS2.

المواضيع الأصلية مقابل مواضيع التخزين المؤقت

عند الاشتراك في موضوع يبدأ بـ origin/، ستتلقى إشعارات تحتوي على عنوان URL قانوني يشير إلى خادم بيانات يوفره مركز WIS الذي ينشر البيانات.

عند الاشتراك في موضوع يبدأ بـ cache/، ستتلقى إشعارات متعددة لنفس البيانات، واحدة لكل Global Cache. ستحتوي كل إشعار على عنوان URL قانوني يشير إلى خادم البيانات الخاص بـ Global Cache المعني. سيقوم wis2downloader بتنزيل البيانات من أول عنوان URL قانوني يمكنه الوصول إليه.

تنزيل بيانات تجريبية من WIS2 Training Broker

في هذا التمرين، ستشترك في WIS2 Training Broker الذي ينشر بيانات تجريبية لأغراض التدريب.

تغيير تكوين wis2downloader

يوضح هذا كيفية الاشتراك في وسيط ليس الوسيط الافتراضي وسيسمح لك بتنزيل بعض البيانات المنشورة من WIS2 Training Broker.

حرر ملف wis2box.env وقم بتغيير DOWNLOAD_BROKER_HOST إلى wis2training-broker.wis2dev.io، وDOWNLOAD_BROKER_PORT إلى 1883، وDOWNLOAD_BROKER_TRANSPORT إلى tcp:

# downloader settings
DOWNLOAD_BROKER_HOST=wis2training-broker.wis2dev.io
DOWNLOAD_BROKER_PORT=1883
DOWNLOAD_BROKER_USERNAME=everyone
DOWNLOAD_BROKER_PASSWORD=everyone
# download transport mechanism (tcp or websockets)
DOWNLOAD_BROKER_TRANSPORT=tcp

ثم قم بتشغيل أمر 'start' مرة أخرى لتطبيق التغييرات:

python3 wis2box-ctl.py start

تحقق من سجلات wis2downloader لمعرفة ما إذا كان الاتصال بالوسيط الجديد ناجحًا:

docker logs wis2downloader

يجب أن ترى رسالة السجل التالية:

...
INFO - Connecting...
INFO - Host: wis2training-broker.wis2dev.io, port: 1883
INFO - Connected successfully

إعداد اشتراكات جديدة

الآن سنقوم بإعداد اشتراك جديد للموضوع لتنزيل بيانات مسار الأعاصير من WIS2 Training Broker.

سجل الدخول إلى حاوية wis2downloader:

python3 wis2box-ctl.py login wis2downloader

ونفذ الأمر التالي (انسخه والصقه لتجنب الأخطاء الإملائية):

wis2downloader add-subscription --topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory

اخرج من حاوية wis2downloader بكتابة exit.

التحقق من البيانات التي تم تنزيلها

انتظر حتى ترى التنزيلات تبدأ في لوحة معلومات wis2downloader في Grafana.

تحقق من تنزيل البيانات عن طريق التحقق من سجلات wis2downloader مرة أخرى باستخدام:

docker logs wis2downloader

يجب أن ترى رسالة سجل مشابهة لما يلي:

[...] INFO - Message received under topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory
[...] INFO - Downloaded A_JSXX05ECEP020000_C_ECMP_...

تحقق من محتويات دليل التنزيلات مرة أخرى:

ls -R ~/wis2box-data/downloads

يجب أن ترى دليلًا جديدًا باسم origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory يحتوي على البيانات التي تم تنزيلها.

مراجعة البيانات التي تم تنزيلها

ما هو تنسيق الملفات للبيانات التي تم تنزيلها؟

انقر للكشف عن الإجابة

البيانات التي تم تنزيلها بتنسيق BUFR كما هو موضح بامتداد الملف .bufr.

بعد ذلك، حاول إضافة اشتراكين آخرين لتنزيل بيانات شذوذ درجة حرارة السطح الشهرية وبيانات التنبؤ العالمي من المواضيع التالية:

  • origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/global
  • origin/a/wis2/int-wis2-training/data/core/climate/experimental/anomalies/monthly/surface-temperature

انتظر حتى ترى التنزيلات تبدأ في لوحة معلومات wis2downloader في Grafana.

تحقق من محتويات دليل التنزيلات مرة أخرى:

ls -R ~/wis2box-data/downloads

يجب أن ترى الأدلة الجديدة المقابلة للمواضيع التي اشتركت فيها، تحتوي على البيانات التي تم تنزيلها.

الخاتمة

تهانينا!

في هذه الجلسة العملية، تعلمت كيفية:

  • استخدام 'wis2downloader' للاشتراك في WIS2 Broker وتنزيل البيانات إلى نظامك المحلي
  • عرض حالة التنزيلات في لوحة معلومات Grafana
  • كيفية تغيير التكوين الافتراضي لـ wis2downloader للاشتراك في وسيط مختلف
  • كيفية عرض البيانات التي تم تنزيلها على نظامك المحلي