Udostępnij przez


Klasa dostawcy Microsoft Sentinel

Klasa MicrosoftSentinelProvider umożliwia interakcję z usługą Data Lake usługi Microsoft Sentinel, umożliwiając wykonywanie operacji, takich jak wyświetlanie listy baz danych, odczytywanie tabel i zapisywanie danych. Ta klasa jest przeznaczona do pracy z sesjami platformy Spark w notesach Jupyter i udostępnia metody uzyskiwania dostępu do danych przechowywanych w usłudze Microsoft Sentinel i manipulowania nimi w usłudze Data Lake usługi Microsoft Sentinel.

Ta klasa jest częścią modułu sentinel.datalake i udostępnia metody interakcji z usługą Data Lake. Aby użyć tej klasy, zaimportuj ją i utwórz wystąpienie klasy przy użyciu spark sesji.

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

Musisz mieć niezbędne uprawnienia do wykonywania operacji, takich jak odczytywanie i zapisywanie danych. Aby uzyskać więcej informacji na temat uprawnień, zobacz Uprawnienia usługi Data Lake usługi Microsoft Sentinel.

Methods

Klasa MicrosoftSentinelProvider udostępnia kilka metod interakcji z usługą Data Lake usługi Microsoft Sentinel. Każda metoda wymieniona poniżej zakłada, że MicrosoftSentinelProvider klasa została zaimportowana, a wystąpienie zostało utworzone przy użyciu spark sesji w następujący sposób:

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

list_databases

Wyświetl listę wszystkich dostępnych baz danych/obszarów roboczych usługi Microsoft Sentinel.

data_provider.list_databases()    

Returns:

  • list[str]: lista nazw baz danych (obszarów roboczych) dostępnych w usłudze Data Lake usługi Microsoft Sentinel.

list_tables

Wyświetl listę wszystkich tabel w danej bazie danych.

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

Parameters:

  • database_name (str, opcjonalnie): nazwa bazy danych (obszaru roboczego) do wyświetlenia listy tabel. JEŚLI nie określono bazy danych tabel systemowych, jest używana.
  • database_id (str, opcjonalnie): unikatowy identyfikator bazy danych, jeśli nazwy obszarów roboczych nie są unikatowe.

Returns:

  • list[str]: lista nazw tabel w określonej bazie danych.

Examples:

Wyświetl listę wszystkich tabel w bazie danych tabel systemowych:

data_provider.list_tables() 

Wyświetl listę wszystkich tabel w określonej bazie danych. database_id Określ bazę danych, jeśli nazwy obszarów roboczych nie są unikatowe:

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

read_table

Ładowanie ramki danych z tabeli w usłudze Lake.

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

Parameters:

  • table_name (str): nazwa tabeli do odczytania.
  • database_name (str, opcjonalnie): nazwa bazy danych (obszaru roboczego) zawierającej tabelę. Wartość domyślna to System tables.
  • database_id (str, opcjonalnie): unikatowy identyfikator bazy danych, jeśli nazwy obszarów roboczych nie są unikatowe.

Returns:

  • DataFrame: Ramka danych zawierająca dane z określonej tabeli.

Example:

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

save_as_table

Pisanie ramki danych jako tabeli zarządzanej. Możesz zapisać w warstwie lake przy użyciu sufiksu _SPRK w nazwie tabeli lub warstwy analizy przy użyciu sufiksu _SPRK_CL .

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

Parameters:

  • DataFrame (Ramka danych): ramka danych do zapisu jako tabela.
  • table_name (str): nazwa tabeli do utworzenia lub zastąpienia.
  • database_name (str, opcjonalnie): nazwa bazy danych (obszaru roboczego) do zapisania tabeli. Wartość domyślna to System tables.
  • database_id (str, opcjonalny, tylko poziom analityczny): Unikalny identyfikator bazy danych w warstwie analityki, jeśli nazwy przestrzeni roboczej nie są unikalne.
  • write_options (dict, opcjonalnie): Opcje pisania tabeli. Obsługiwane opcje: — tryb: lub append (wartość domyślna: overwriteappend) — partitionBy: lista kolumn do partycji według przykładu: {'mode': 'append', 'partitionBy': ['date']}

Returns:

  • str: identyfikator przebiegu operacji zapisu.

Note

Opcja partycjonowania dotyczy tylko tabel niestandardowych w bazie danych tabel systemowych (obszarze roboczym) w warstwie data lake. Nie jest obsługiwana w przypadku tabel w warstwie analizy ani tabel w bazach danych innych niż baza danych tabel systemowych w warstwie data lake.

Examples:

Utwórz nową tabelę niestandardową w warstwie data lake w obszarze roboczym System tables .

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

Dołącz do tabeli w bazie danych tabel systemowych (obszarze roboczym) w warstwie data lake.

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

Utwórz nową tabelę niestandardową w warstwie analizy.

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

Dołącz lub zastąp istniejącą tabelę niestandardową w warstwie analizy.

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

Dołącz do bazy danych tabel systemowych z partycjonowaniem w kolumnie TimeGenerated .

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

delete_table

Usuwa tabelę z warstwy lake. Tabelę z warstwy lake można usunąć przy użyciu sufiksu _SPRK w nazwie tabeli. Nie można usunąć tabeli z warstwy analizy przy użyciu tej funkcji. Aby usunąć tabelę niestandardową w warstwie analizy, użyj funkcji interfejsu API usługi Log Analytics. Aby uzyskać więcej informacji, zobacz Dodawanie lub usuwanie tabel i kolumn w dziennikach usługi Azure Monitor.

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

Parameters:

  • table_name (str): nazwa tabeli do usunięcia.
  • database_name (str, opcjonalnie): nazwa bazy danych (obszaru roboczego) zawierającej tabelę. Wartość domyślna to System tables.
  • database_id (str, opcjonalnie): unikatowy identyfikator bazy danych, jeśli nazwy obszarów roboczych nie są unikatowe.

Returns:

  • dict: słownik zawierający wynik operacji usuwania.

Example:

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