أنواع استعلامات KQL
لقد تعرفت على بنية استعلام KQL في الوحدة السابقة. الآن، دعونا نتعمق أكثر في الأجزاء والأنواع المختلفة من استعلامات KQL.
توفر هذه الوحدة نظرة عامة على عبارات الاستعلام ووظائفه. في KQL، تتكون جميع الاستعلامات من عبارة استعلام واحدة أو أكثر. تؤثر هذه العبارات فقط على الاستعلام المحدد الذي يتم استخدامها فيه، ما لم يتم تخزينها بشكل صريح للاستخدام في المستقبل. الأنواع الأكثر شيوعا من عبارات الاستعلام هي عبارات التعبير الجدولي وعبارات السماح. بالإضافة إلى مكتبتها الواسعة من الوظائف المضمنة، يسمح KQL بالوظائف المعرفة من قبل المستخدم التي يمكن تخزينها أو تعريفها للاستخدام في استعلام واحد.
عبارات التعبير الجدولي
تستخدم معظم الاستعلامات عبارة تعبير جدولي واحدة على الأقل، ما يعني أن كل من الإدخال والإخراج يتكون من جداول أو مجموعات بيانات جدولية. تحتوي هذه العبارات عادة على عوامل تشغيل، يبدأ كل منها بإدخال جدولي ويعيد إخراج جدولي.
هناك مجموعة واسعة من عوامل التشغيل التي توفرها KQL، تتراوح بين عوامل التشغيل البسيطة (مثل count
و sort
و where
) إلى عوامل التشغيل الأكثر تعقيدا (مثل parse
و join
و render
).
على سبيل المثال، يحتوي الاستعلام التالي على أربع عبارات تعبير جدولي:
StormEvents // tabular expression statement 1
| where EventType == "Flood" // tabular expression statement 2
| sort by DamageProperty asc // tabular expression statement 3
| take 10 // tabular expression statement 4
عبارات Let
let
تحدد العبارة ربطا بين اسم وتعبير. يمكنك استخدام عبارات let لتقسيم استعلام طويل إلى أجزاء صغيرة مسماة يسهل فهمها.
على سبيل المثال، استخدمنا let
العبارات في الاستعلام التالي لتعريف القيم العددية:
let n = 10; // number
let place = "VIRGINIA"; // string
let cutoff = ago(12345d); // datetime
StormEvents
| where StartTime > cutoff and State == place
| take n
الدوال المدمجة
الدالات المضمنة هي دالات ذات تعليمات برمجية مضمنة محددة بواسطة KQL لا يمكن تعديلها. يحتوي KQL على مكتبة غنية من الوظائف المتاحة للاستخدام، والتي يمكنك العثور عليها في وثائق KQL الرسمية. وتتراوح الدالات بين الفرز البسيط والمطابقة والدالات الإحصائية والجيوفضائية المعقدة.
على سبيل المثال، الدالة التالية strcat()
تسلسل وسيطات السلسلة:
print str = strcat("hello", " ", "world")
الوظائف المعرفة بواسطة المستخدم
الدالات المعرفة من قبل المستخدم هي، كما يوحي اسمها، المعرفة من قبل المستخدم. يمكننا تقسيم الدالات المعرفة من قبل المستخدم إلى نوعين:
الوظائف المخزنة: الدالات المعرفة من قبل المستخدم المخزنة وكيانات مخطط قاعدة البيانات المدارة، على غرار الجداول. تستخدم المنتجات المختلفة طرقا مختلفة لتخزين الوظائف.
على سبيل المثال، يخزن الاستعلام التالي في Azure Data Explorer دالة تأخذ معلمة:
.create function with (docstring = 'Demo function with parameter', folder='Demo') MyFunction2(myLimit: long) {StormEvents | take myLimit}
في بيئات أخرى، مثل Azure Monitor وMicrosoft Sentinel، يمكنك حفظ الاستعلامات من خلال واجهة المستخدم.
دالات معرفة بواسطة الاستعلام: دالات معرفة من قبل المستخدم يتم تعريفها واستخدامها ضمن نطاق استعلام واحد. يتم تعريف هذه الدالات من خلال عبارة let.
على سبيل المثال، يحدد الاستعلام التالي الدالة f ثم يستخدمها:
let f=(a: string, b: string) { strcat(a, " (la la la) ", b) }; print f("hello", "world")