تمرين - تصفية البيانات باستخدام عامل التشغيل where

مكتمل

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

استخدم عامل التشغيل where

حتى هذه النقطة، قامت جميع عوامل التشغيل التي استخدمتها بإرجاع أعمدة محددة. الآن، دعنا نلقِ نظرة على صفوف معينة من البيانات.

يقوم عامل التشغيل where بتصفية النتائج التي تلبي شرطاً معيناً. في المثال الأول، ستقارن عمود عدد صحيح بقيمة دنيا باستخدام عامل التشغيل الرقميالأكبر من(>). على وجه التحديد، تريد فقط أن ترى العواصف التي تضررت الخاصية، لذلك سوف تنظر إلى صفوف البيانات حيث يكون الضرر الذي لحق بالخاصية أكبر من الصفر.

  1. قم بتشغيل الاستعلام التالي:

    تشغيل الاستعلام

    StormEvents
    | where DamageProperty > 0
    | project State, EventType, DamageProperty
    | take 10
    
  2. يجب أن تحصل على نتائج تشبه الصورة التالية:

    Screenshot of query results of a where operator with a numerical operator of greater than zero.

  3. لاحظ أن جميع الصفوف التي تم إرجاعها لها، في الواقع، قيم DamageProperty أكبر من الصفر.

  4. وكذلك، يمكنك تصفية مكان وقوع الحدث قبل أكثر من عدد معين من الأيام. على سبيل المثال، تشغيل الاستعلام التالي، حيث365dيعني 365 يوما:

    تشغيل الاستعلام

    StormEvents
    | where DamageProperty > 0
    | where StartTime > ago(365d)
    | project State, EventType, DamageProperty
    
  5. لاحظ أن هذا الاستعلام لن يُفسر أي نتائج. ولأن البيانات من عام 2007، لا توجد سجلات من العام الماضي.

التصفية باستخدام قيمة السلسلة

من الواضح أن أنواعا قليلة من العواصف تسببت في أضرار في جميع أنحاء الولايات المتحدة. دعونا نحصر ذلك في العواصف التي حدثت في مكان معين، مثل ولاية فلوريدا.

  1. شغّل الاستعلام التالي، الذي يستخدم عامل تشغيل ثان where بقيمة السلسلة "FLORIDA":

    تشغيل الاستعلام

    StormEvents
    | where DamageCrops > 0
    | where State == "FLORIDA"
    | project State, EventType, DamageCrops
    
  2. يجب أن تحصل على نتائج تشبه الصورة التالية:

    Screenshot of query results for two where operators.

  3. لاحظ أن جميع السجلات التي تم إرجاعها من هذا الاستعلام مأخوذة من فلوريدا وأن تلف المحاصيل فيها أكبر من الصفر.

التصفية من خلال استخدام عامل التشغيلhas

يسمى أحد أنواع الأحداث في نتائج الاستعلام الأخير الرياح الرعدية. دعونا نرَ ما إذا كان هناك أي أنواع أخرى من الرياح تسببت في أضرار في الممتلكات في فلوريدا. سنبحث في مطابقة سلسلةwindباستخدام عامل التشغيلhas. عامل التشغيلhasهو بحث عدم تحسس حالة الأحرف ويتطابق معالمصطلحبالكامل.

  1. قم بتشغيل الاستعلام التالي:

    تشغيل الاستعلام

    StormEvents
    | where DamageProperty > 0
    | where State == "FLORIDA"
    | where EventType has "wind"
    | project StartTime, EventType, DamageProperty
    
  2. يجب أن تحصل على نتائج تشبه الصورة التالية:

    Screenshot of query results for where and has operators.

  3. لاحظ في النتائج أن أحداثا مثل الأعاصير لم تعد تظهر، ولكن تظهر أنواع أحداثالرياح الرعديةووالرياح القوية.

containsعامل التشغيل مشابه لـhas، ولكنه يطابق أي سلسلة فرعية. على سبيل المثال، الاستعلام التالي سيرجع النتائج مثلتجميد الضبابوصقيع/ تجميد.

StormEvents | where EventType contains "free"

has عامل التشغيل أكثر أداء من contains عامل التشغيل، لذلك يجب عليك استخدام has أينما كان لديك خيار بين الاثنين.

تصفية على القيمdatetime

دعونا نلقي نظرة عن كثب على الضرر الذي حدث في النصف الأول من السنة التقويمية. قد يكون من المفيد قصر بحثك على الأحداث ضمن نطاق زمني محدد. تحتوي بعض الواجهات مع Kusto Query Language على منتقي وقت منسدلة، لكن البعض الآخر يتطلب منك دمج عامل تشغيل تصفية التاريخ في الاستعلام نفسه.

نظرا لأن النطاقات الزمنية يحدها نقيضان، فمن الأكثر فاعلية إنشاء استعلام حيث تختار قيمة بين هاتين المرات.

بناء الجملة الخاص بإنشاء هذا النطاق الزمني هو كما يلي:

whereالوقتbetween(datetime(القيمة)..datetime(القيمة))

  1. دعونا ندمج هذا النطاق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
    
  2. يجب أن تحصل على نتائج تشبه الصورة التالية:

    Screenshot of query results for where operators that include a time range.

  3. لاحظ أن جميع التواريخ في غضون النصف الأول من السنة، الأشهر من واحد إلى ستة. قد تلاحظ أيضا أنه على الرغم من تحديد أحداث من ولاية فلوريدا، لا تظهر الولاية ك عمود إخراج، لأنه لم يتم تحديدها في project عامل التشغيل.