فئة موفر Microsoft Sentinel

MicrosoftSentinelProvider توفر الفئة طريقة للتفاعل مع مستودع بيانات Microsoft Sentinel، مما يسمح لك بإجراء عمليات مثل سرد قواعد البيانات وقراءة الجداول وحفظ البيانات. تم تصميم هذه الفئة للعمل مع جلسات Spark في دفاتر ملاحظات Jupyter وتوفر طرقا للوصول إلى البيانات المخزنة في مستودع البيانات Microsoft Sentinel ومعالجتها.

تعد هذه الفئة جزءا من الوحدة النمطية sentinel.datalake وتوفر أساليب للتفاعل مع مستودع البيانات. لاستخدام هذه الفئة، قم باستيرادها وإنشاء مثيل للفئة باستخدام spark جلسة العمل.

from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)      

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

اساليب

MicrosoftSentinelProvider توفر الفئة عدة طرق للتفاعل مع مستودع بيانات Microsoft Sentinel. يفترض كل أسلوب مدرج أدناه أنه MicrosoftSentinelProvider تم استيراد الفئة وتم إنشاء مثيل باستخدام spark جلسة العمل كما يلي:

from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark) 

list_databases

سرد جميع قواعد البيانات المتوفرة / Microsoft Sentinel مساحات العمل.

data_provider.list_databases()    

ارجاع:

  • list[str]: قائمة بأسماء قواعد البيانات (مساحات العمل) المتوفرة في مستودع بيانات Microsoft Sentinel.

list_tables

سرد كافة الجداول في قاعدة بيانات معينة.

data_provider.list_tables([database_name],[database_id])
   

معلمات:

  • database_name (str، اختياري): اسم قاعدة البيانات (مساحة العمل) لسرد الجداول منها. IF لم يتم تحديد قاعدة بيانات جداول النظام المستخدمة.
  • database_id (str، اختياري): المعرف الفريد لقاعدة البيانات إذا لم تكن أسماء مساحة العمل فريدة.

ارجاع:

  • list[str]: قائمة بأسماء الجداول في قاعدة البيانات المحددة.

أمثلة:

سرد كافة الجداول في قاعدة بيانات جداول النظام:

data_provider.list_tables() 

سرد كافة الجداول في قاعدة بيانات معينة. database_id حدد قاعدة البيانات إذا لم تكن أسماء مساحة العمل فريدة:

data_provider.list_tables("workspace1", database_id="ab1111112222ab333333")

read_table

تحميل DataFrame من جدول في Lake.

data_provider.read_table({table}, [database_name], [database_id])

معلمات:

  • table_name (str): اسم الجدول المراد قراءته.
  • database_name (str، اختياري): اسم قاعدة البيانات (مساحة العمل) التي تحتوي على الجدول. الإعدادات الافتراضية إلى System tables.
  • database_id (str، اختياري): المعرف الفريد لقاعدة البيانات إذا لم تكن أسماء مساحة العمل فريدة.

ارجاع:

  • DataFrame: DataFrame يحتوي على البيانات من الجدول المحدد.

على سبيل المثال:

df = data_provider.read_table("EntraGroups", "Workspace001")

save_as_table

اكتب DataFrame كجدول مدار. يمكنك الكتابة إلى طبقة المستودع باستخدام اللاحقة _SPRK في اسم الجدول، أو إلى طبقة التحليلات باستخدام اللاحقة _SPRK_CL .

ملاحظة

بالنسبة إلى مستوى التحليلات، save_as_table يدعم append الوضع فقط. overwrite الوضع مدعوم فقط في طبقة المستودع.

data_provider.save_as_table({DataFrame}, {table_name}, [database_name], [database_id], [write_options])

معلمات:

  • DataFrame (DataFrame): DataFrame للكتابة كجدول.
  • table_name (str): اسم الجدول المراد إنشاؤه أو الكتابة فوقه.
  • database_name (str، اختياري): اسم قاعدة البيانات (مساحة العمل) لحفظ الجدول فيها. الإعدادات الافتراضية إلى System tables.
  • database_id (str، اختياري، طبقة التحليلات فقط): المعرف الفريد لقاعدة البيانات في طبقة التحليلات إذا لم تكن أسماء مساحات العمل فريدة.
  • write_options (إملاء، اختياري): خيارات لكتابة الجدول. الخيارات المدعومة: - الوضع: append أو overwrite (الافتراضي: append) overwrite يتم دعم الوضع فقط في طبقة المستودع. - partitionBy: قائمة الأعمدة المراد تقسيمها حسب المثال: {'mode': 'append'، 'partitionBy': ['date']}

ارجاع:

  • str: معرف تشغيل عملية الكتابة.

ملاحظة

ينطبق خيار التقسيم فقط على الجداول المخصصة في قاعدة بيانات جداول النظام (مساحة العمل) في طبقة مستودع البيانات. وهو غير مدعوم للجداول في طبقة التحليلات أو للجداول في قواعد بيانات أخرى غير قاعدة بيانات جداول النظام في طبقة مستودع البيانات.

أمثلة:

إنشاء جدول مخصص جديد في طبقة مستودع البيانات في System tables مساحة العمل.

data_provider.save_as_table(dataframe, "CustomTable1_SPRK", "System tables")

الكتابة فوق جدول في قاعدة بيانات جداول النظام (مساحة العمل) في طبقة مستودع البيانات.

write_options = {
    'mode': 'overwrite'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", write_options=write_options)

إنشاء جدول مخصص جديد في طبقة التحليلات.

data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace")

إلحاق بجدول مخصص موجود في طبقة التحليلات.

write_options = {
    'mode': 'append'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace", write_options)

إلحاق بقاعدة بيانات جداول النظام مع التقسيم على TimeGenerated العمود.

data_loader.save_as_table(dataframe, "table1", write_options: {'mode': 'append', 'partitionBy': ['TimeGenerated']})

delete_table

حذف الجدول من طبقة المستودع. يمكنك حذف الجدول من طبقة المستودع باستخدام اللاحقة _SPRK في اسم الجدول الخاص بك. لا يمكنك حذف جدول من طبقة التحليلات باستخدام هذه الدالة. لحذف جدول مخصص في طبقة التحليلات، استخدم وظائف Log Analytics API. لمزيد من المعلومات، راجع إضافة جداول وأعمدة أو حذفها في سجلات Azure Monitor.

data_provider.delete_table({table_name}, [database_name], [database_id])

معلمات:

  • table_name (str): اسم الجدول المراد حذفه.
  • database_name (str، اختياري): اسم قاعدة البيانات (مساحة العمل) التي تحتوي على الجدول. الإعدادات الافتراضية إلى System tables.
  • database_id (str، اختياري): المعرف الفريد لقاعدة البيانات إذا لم تكن أسماء مساحة العمل فريدة.

ارجاع:

  • dict: قاموس يحتوي على نتيجة عملية الحذف.

على سبيل المثال:

data_provider.delete_table("customtable_SPRK", "System tables")