Microsoft Sentinel Provider-Klasse

Die MicrosoftSentinelProvider -Klasse bietet eine Möglichkeit, mit dem Microsoft Sentinel Data Lake zu interagieren, sodass Sie Vorgänge wie das Auflisten von Datenbanken, das Lesen von Tabellen und das Speichern von Daten ausführen können. Diese Klasse ist für die Verwendung von Spark-Sitzungen in Jupyter-Notebooks konzipiert und stellt Methoden zum Zugreifen auf und Bearbeiten von Daten bereit, die im Microsoft Sentinel Data Lake gespeichert sind.

Diese Klasse ist Teil des sentinel.datalake Moduls und stellt Methoden für die Interaktion mit dem Data Lake bereit. Um diese Klasse zu verwenden, importieren Sie sie, und erstellen Sie mithilfe spark der Sitzung eine instance der -Klasse.

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

Sie müssen über die erforderlichen Berechtigungen verfügen, um Vorgänge wie das Lesen und Schreiben von Daten ausführen zu können. Weitere Informationen zu Berechtigungen finden Sie unter Microsoft Sentinel Data Lake-Berechtigungen.

Methoden

Die MicrosoftSentinelProvider -Klasse stellt mehrere Methoden für die Interaktion mit dem Microsoft Sentinel Data Lake bereit. Bei jeder unten aufgeführten Methode wird davon ausgegangen, dass die MicrosoftSentinelProvider Klasse importiert und ein instance mithilfe der spark Sitzung wie folgt erstellt wurde:

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

list_databases

Listet alle verfügbaren Datenbanken/Microsoft Sentinel Arbeitsbereiche auf.

data_provider.list_databases()    

Rückgabewerte:

  • list[str]: Eine Liste der Datenbanknamen (Arbeitsbereiche), die im Microsoft Sentinel Data Lake verfügbar sind.

list_tables

Listet alle Tabellen in einer bestimmten Datenbank auf.

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

Parameter:

  • database_name (str, optional): Der Name der Datenbank (Arbeitsbereich), aus der Tabellen aufgelistet werden sollen. WENN nicht angegeben, wird die Systemtabellendatenbank verwendet.
  • database_id (str, optional): Der eindeutige Bezeichner der Datenbank, wenn Arbeitsbereichsnamen nicht eindeutig sind.

Rückgabewerte:

  • list[str]: Eine Liste der Tabellennamen in der angegebenen Datenbank.

Beispiele:

Auflisten aller Tabellen in der Datenbank für Systemtabellen:

data_provider.list_tables() 

Listet alle Tabellen in einer bestimmten Datenbank auf. Geben Sie die database_id der Datenbank an, wenn Ihre Arbeitsbereichsnamen nicht eindeutig sind:

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

read_table

Laden sie einen DataFrame aus einer Tabelle in Lake.

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

Parameter:

  • table_name (str): Der Name der zu lesenden Tabelle.
  • database_name (str, optional): Der Name der Datenbank (Arbeitsbereich), die die Tabelle enthält. Standardwert ist System tables.
  • database_id (str, optional): Der eindeutige Bezeichner der Datenbank, wenn Arbeitsbereichsnamen nicht eindeutig sind.

Rückgabewerte:

  • DataFrame: Ein DataFrame, der die Daten aus der angegebenen Tabelle enthält.

Beispiel:

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

save_as_table

Schreiben sie einen DataFrame als verwaltete Tabelle. Sie können in die Lake-Ebene schreiben, indem Sie das _SPRK Suffix in Ihrem Tabellennamen verwenden, oder auf die Analyseebene mit dem _SPRK_CL Suffix.

Hinweis

Für die Analyseebene save_as_table unterstützt append nur den Modus. overwrite der Modus wird nur auf der Lake-Ebene unterstützt.

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

Parameter:

  • DataFrame (DataFrame): Der DataFrame, der als Tabelle geschrieben werden soll.
  • table_name (str): Der Name der Tabelle, die erstellt oder überschrieben werden soll.
  • database_name (str, optional): Der Name der Datenbank (Arbeitsbereich), in der die Tabelle gespeichert werden soll. Standardwert ist System tables.
  • database_id (str, optional, nur Analyseebene): Der eindeutige Bezeichner der Datenbank auf der Analyseebene, wenn Arbeitsbereichsnamen nicht eindeutig sind.
  • write_options (dict, optional): Optionen zum Schreiben der Tabelle. Unterstützte Optionen: - modus: append oder overwrite (Standard: append) overwrite modus wird nur in der Lake-Ebene unterstützt. - partitionBy: Liste der zu partitionierenden Spalten nach Beispiel: {'mode': 'append', 'partitionBy': ['date']}

Rückgabewerte:

  • str: Die Ausführungs-ID des Schreibvorgangs.

Hinweis

Die Partitionierungsoption gilt nur für benutzerdefinierte Tabellen in der Datenbank für Systemtabellen (Arbeitsbereich) auf der Data Lake-Ebene. Sie wird für Tabellen auf der Analyseebene oder für Tabellen in anderen Datenbanken als der Systemtabellendatenbank auf der Data Lake-Ebene nicht unterstützt.

Beispiele:

Erstellen Sie eine neue benutzerdefinierte Tabelle auf der Data Lake-Ebene im System tables Arbeitsbereich.

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

Überschreiben Sie eine Tabelle in der Datenbank für Systemtabellen (Arbeitsbereich) auf der Data Lake-Ebene.

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

Erstellen Sie eine neue benutzerdefinierte Tabelle auf der Analyseebene.

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

Fügen Sie an eine vorhandene benutzerdefinierte Tabelle auf der Analyseebene an.

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

Fügen Sie an die Datenbank der Systemtabellen an, wobei die TimeGenerated Spalte partitioniert wird.

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

delete_table

Löscht die Tabelle aus der Lake-Ebene. Sie können eine Tabelle aus der Lake-Ebene löschen, indem Sie das _SPRK Suffix im Tabellennamen verwenden. Sie können eine Tabelle mit dieser Funktion nicht aus der Analyseebene löschen. Um eine benutzerdefinierte Tabelle auf der Analyseebene zu löschen, verwenden Sie die Log Analytics-API-Funktionen. Weitere Informationen finden Sie unter Hinzufügen oder Löschen von Tabellen und Spalten in Azure Überwachungsprotokollen.

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

Parameter:

  • table_name (str): Der Name der zu löschenden Tabelle.
  • database_name (str, optional): Der Name der Datenbank (Arbeitsbereich), die die Tabelle enthält. Standardwert ist System tables.
  • database_id (str, optional): Der eindeutige Bezeichner der Datenbank, wenn Arbeitsbereichsnamen nicht eindeutig sind.

Rückgabewerte:

  • dict: Ein Wörterbuch, das das Ergebnis des Löschvorgangs enthält.

Beispiel:

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