تنزيل البيانات من 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 وستعرض لك حالة التنزيلات الجارية حاليًا.
في الزاوية العلوية اليسرى، يمكنك رؤية الاشتراكات النشطة حاليًا.
ابقِ هذه اللوحة مفتوحة حيث ستستخدمها لمراقبة تقدم التنزيل في التمرين التالي.
مراجعة تكوين 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 للاشتراك في وسيط مختلف
- كيفية عرض البيانات التي تم تنزيلها على نظامك المحلي