providerklasse Microsoft Sentinel

De MicrosoftSentinelProvider klasse biedt een manier om te communiceren met de Microsoft Sentinel data lake, zodat u bewerkingen kunt uitvoeren zoals het weergeven van databases, het lezen van tabellen en het opslaan van gegevens. Deze klasse is ontworpen om te werken met de Spark-sessies in Jupyter-notebooks en biedt methoden voor toegang tot en manipulatie van gegevens die zijn opgeslagen in de Microsoft Sentinel Data Lake.

Deze klasse maakt deel uit van de sentinel.datalake module en biedt methoden voor interactie met de data lake. Als u deze klasse wilt gebruiken, importeert u deze en maakt u een exemplaar van de klasse met behulp van de spark sessie.

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

U moet over de benodigde machtigingen beschikken om bewerkingen uit te voeren, zoals het lezen en schrijven van gegevens. Zie Microsoft Sentinel data lake-machtigingen voor meer informatie over machtigingen.

Methoden

De MicrosoftSentinelProvider klasse biedt verschillende methoden voor interactie met de Microsoft Sentinel data lake. Bij elke onderstaande methode wordt ervan uitgegaan dat de MicrosoftSentinelProvider klasse is geïmporteerd en dat er als volgt een exemplaar is gemaakt met behulp van de spark sessie:

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

list_databases

Alle beschikbare databases/Microsoft Sentinel werkruimten weergeven.

data_provider.list_databases()    

Retourneert:

  • list[str]: Een lijst met databasenamen (werkruimten) die beschikbaar zijn in de Microsoft Sentinel data lake.

list_tables

Alle tabellen in een bepaalde database weergeven.

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

Parameters:

  • database_name (str, optioneel): de naam van de database (werkruimte) waaruit tabellen moeten worden weergegeven. ALS niet is opgegeven, wordt de database met systeemtabellen gebruikt.
  • database_id (str, optioneel): de unieke id van de database als werkruimtenamen niet uniek zijn.

Retourneert:

  • list[str]: Een lijst met tabelnamen in de opgegeven database.

Voorbeelden:

Alle tabellen in de database met systeemtabellen weergeven:

data_provider.list_tables() 

Alle tabellen in een specifieke database weergeven. Geef de database_id van de database op als uw werkruimtenamen niet uniek zijn:

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

read_table

Laad een DataFrame uit een tabel in Lake.

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

Parameters:

  • table_name (str): de naam van de te lezen tabel.
  • database_name (str, optioneel): de naam van de database (werkruimte) die de tabel bevat. De standaardinstelling is System tables.
  • database_id (str, optioneel): de unieke id van de database als werkruimtenamen niet uniek zijn.

Retourneert:

  • DataFrame: Een DataFrame met de gegevens uit de opgegeven tabel.

Voorbeeld:

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

save_as_table

Een DataFrame schrijven als een beheerde tabel. U kunt naar de lake-laag schrijven met behulp van het _SPRK achtervoegsel in de tabelnaam of naar de analyselaag met behulp van het _SPRK_CL achtervoegsel.

Opmerking

Voor de analyselaag save_as_table ondersteunt append alleen de modus. overwrite de modus wordt alleen ondersteund in de lake-laag.

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

Parameters:

  • DataFrame (DataFrame): het DataFrame dat als een tabel moet worden geschreven.
  • table_name (str): de naam van de tabel die moet worden gemaakt of overschreven.
  • database_name (str, optioneel): de naam van de database (werkruimte) waarin de tabel moet worden opgeslagen. De standaardinstelling is System tables.
  • database_id (str, optioneel, alleen analyselaag): de unieke id van de database in de analyselaag als werkruimtenamen niet uniek zijn.
  • write_options (dict, optioneel): opties voor het schrijven van de tabel. Ondersteunde opties: - modus: append of overwrite (standaard): appendoverwrite de modus wordt alleen ondersteund in de lake-laag. - partitionBy: lijst met kolommen om te partitioneren op voorbeeld: {'mode': 'append', 'partitionBy': ['date']}

Retourneert:

  • str: de uitvoerings-id van de schrijfbewerking.

Opmerking

De optie partitioneren is alleen van toepassing op aangepaste tabellen in de database van systeemtabellen (werkruimte) in de data lake-laag. Het wordt niet ondersteund voor tabellen in de analyselaag of voor tabellen in andere databases dan de database met systeemtabellen in de data lake-laag.

Voorbeelden:

Maak een nieuwe aangepaste tabel in de data lake-laag in de System tables werkruimte.

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

Overschrijf een tabel in de database met systeemtabellen (werkruimte) in de data lake-laag.

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

Maak een nieuwe aangepaste tabel in de analyselaag.

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

Voeg toe aan een bestaande aangepaste tabel in de analyselaag.

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

Voeg toe aan de database met systeemtabellen met partitionering op de TimeGenerated kolom.

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

delete_table

Hiermee verwijdert u de tabel uit de lake-laag. U kunt de tabel uit de lake-laag verwijderen met behulp van het _SPRK achtervoegsel in de tabelnaam. U kunt een tabel niet verwijderen uit de analyselaag met behulp van deze functie. Als u een aangepaste tabel in de analyselaag wilt verwijderen, gebruikt u de Api-functies van Log Analytics. Zie Tabellen en kolommen toevoegen of verwijderen in Azure Logboeken bewaken voor meer informatie.

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

Parameters:

  • table_name (str): de naam van de tabel die u wilt verwijderen.
  • database_name (str, optioneel): de naam van de database (werkruimte) die de tabel bevat. De standaardinstelling is System tables.
  • database_id (str, optioneel): de unieke id van de database als werkruimtenamen niet uniek zijn.

Retourneert:

  • dict: een woordenlijst met het resultaat van de verwijderingsbewerking.

Voorbeeld:

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