تمرين - تصفية البيانات باستخدام عامل التشغيل where
استرجع أنك قمت بتصفية أعمدة معينة داخل أو خارج النتائج المعروضة. في هذه الوحدة، ستتعلم كيف تجيب عن أسئلة بشأن أنواع أحداث الأرصاد الجوية التي وقعت في مناطق أو فترات زمنية مختلفة، وأنواع الأحداث التي تسببت في الضرر.
استخدم عامل التشغيل where
حتى هذه النقطة، قامت جميع عوامل التشغيل التي استخدمتها بإرجاع أعمدة محددة. الآن، دعنا نلقِ نظرة على صفوف معينة من البيانات.
يقوم عامل التشغيل where
بتصفية النتائج التي تلبي شرطاً معيناً. في المثال الأول، ستقارن عمود عدد صحيح بقيمة دنيا باستخدام عامل التشغيل الرقميالأكبر من(>
). على وجه التحديد، تريد فقط أن ترى العواصف التي تضررت الخاصية، لذلك سوف تنظر إلى صفوف البيانات حيث يكون الضرر الذي لحق بالخاصية أكبر من الصفر.
قم بتشغيل الاستعلام التالي:
StormEvents | where DamageProperty > 0 | project State, EventType, DamageProperty | take 10
يجب أن تحصل على نتائج تشبه الصورة التالية:
لاحظ أن جميع الصفوف التي تم إرجاعها لها، في الواقع، قيم DamageProperty أكبر من الصفر.
وكذلك، يمكنك تصفية مكان وقوع الحدث قبل أكثر من عدد معين من الأيام. على سبيل المثال، تشغيل الاستعلام التالي، حيث
365d
يعني 365 يوما:StormEvents | where DamageProperty > 0 | where StartTime > ago(365d) | project State, EventType, DamageProperty
لاحظ أن هذا الاستعلام لن يُفسر أي نتائج. ولأن البيانات من عام 2007، لا توجد سجلات من العام الماضي.
التصفية باستخدام قيمة السلسلة
من الواضح أن أنواعا قليلة من العواصف تسببت في أضرار في جميع أنحاء الولايات المتحدة. دعونا نحصر ذلك في العواصف التي حدثت في مكان معين، مثل ولاية فلوريدا.
شغّل الاستعلام التالي، الذي يستخدم عامل تشغيل ثان
where
بقيمة السلسلة"FLORIDA"
:StormEvents | where DamageCrops > 0 | where State == "FLORIDA" | project State, EventType, DamageCrops
يجب أن تحصل على نتائج تشبه الصورة التالية:
لاحظ أن جميع السجلات التي تم إرجاعها من هذا الاستعلام مأخوذة من فلوريدا وأن تلف المحاصيل فيها أكبر من الصفر.
التصفية من خلال استخدام عامل التشغيلhas
يسمى أحد أنواع الأحداث في نتائج الاستعلام الأخير الرياح الرعدية. دعونا نرَ ما إذا كان هناك أي أنواع أخرى من الرياح تسببت في أضرار في الممتلكات في فلوريدا. سنبحث في مطابقة سلسلةwind
باستخدام عامل التشغيلhas
. عامل التشغيلhas
هو بحث عدم تحسس حالة الأحرف ويتطابق معالمصطلحبالكامل.
قم بتشغيل الاستعلام التالي:
StormEvents | where DamageProperty > 0 | where State == "FLORIDA" | where EventType has "wind" | project StartTime, EventType, DamageProperty
يجب أن تحصل على نتائج تشبه الصورة التالية:
لاحظ في النتائج أن أحداثا مثل الأعاصير لم تعد تظهر، ولكن تظهر أنواع أحداثالرياح الرعديةووالرياح القوية.
contains
عامل التشغيل مشابه لـhas
، ولكنه يطابق أي سلسلة فرعية. على سبيل المثال، الاستعلام التالي سيرجع النتائج مثلتجميد الضبابوصقيع/ تجميد.
StormEvents | where EventType contains "free"
has
عامل التشغيل أكثر أداء من contains
عامل التشغيل، لذلك يجب عليك استخدام has
أينما كان لديك خيار بين الاثنين.
تصفية على القيمdatetime
دعونا نلقي نظرة عن كثب على الضرر الذي حدث في النصف الأول من السنة التقويمية. قد يكون من المفيد قصر بحثك على الأحداث ضمن نطاق زمني محدد. تحتوي بعض الواجهات مع Kusto Query Language على منتقي وقت منسدلة، لكن البعض الآخر يتطلب منك دمج عامل تشغيل تصفية التاريخ في الاستعلام نفسه.
نظرا لأن النطاقات الزمنية يحدها نقيضان، فمن الأكثر فاعلية إنشاء استعلام حيث تختار قيمة بين هاتين المرات.
بناء الجملة الخاص بإنشاء هذا النطاق الزمني هو كما يلي:
where
الوقتbetween
(datetime(
القيمة)..datetime(
القيمة))
دعونا ندمج هذا النطاق
datetime
في نوع من الاستعلام الذي رأيته بالفعل. قم بتشغيل الاستعلام التالي:StormEvents | where StartTime between (datetime(2007-01-01)..datetime(2007-06-01)) | where DamageProperty > 0 | where State == "FLORIDA" | project StartTime, EventType, DamageProperty | take 50
يجب أن تحصل على نتائج تشبه الصورة التالية:
لاحظ أن جميع التواريخ في غضون النصف الأول من السنة، الأشهر من واحد إلى ستة. قد تلاحظ أيضا أنه على الرغم من تحديد أحداث من ولاية فلوريدا، لا تظهر الولاية ك عمود إخراج، لأنه لم يتم تحديدها في
project
عامل التشغيل.