Microsoft Sentinel Provider, klasa

Klasa MicrosoftSentinelProvider umożliwia interakcję z usługą Microsoft Sentinel data lake, 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 zapewnia metody uzyskiwania dostępu do danych przechowywanych w Microsoft Sentinel data lake oraz manipulowania nimi.

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ć uprawnienia niezbędne do wykonywania operacji, takich jak odczytywanie i zapisywanie danych. Aby uzyskać więcej informacji na temat uprawnień, zobacz Microsoft Sentinel uprawnienia usługi Data Lake.

Metody

Klasa MicrosoftSentinelProvider udostępnia kilka metod interakcji z usługą Microsoft Sentinel data lake. Każda metoda wymieniona poniżej zakłada, że klasa została zaimportowana MicrosoftSentinelProvider , a wystąpienie zostało utworzone przy użyciu sesji w spark 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/Microsoft Sentinel obszarów roboczych.

data_provider.list_databases()    

Zwraca:

  • list[str]: lista nazw baz danych (obszarów roboczych) dostępnych w Microsoft Sentinel data lake.

list_tables

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

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

Parametry:

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

Zwraca:

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

Przykłady:

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])

Parametry:

  • table_name (str): nazwa tabeli do odczytu.
  • 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.

Zwraca:

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

Przykład:

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 w warstwie analizy przy użyciu sufiksu _SPRK_CL .

Uwaga

Warstwa analizy save_as_tableappend obsługuje tylko tryb. overwrite tryb jest obsługiwany tylko w warstwie lake.

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

Parametry:

  • DataFrame (DataFrame): 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), w ramach którego ma zostać zapisana tabela. Wartość domyślna to System tables.
  • database_id (str, opcjonalnie tylko warstwa analizy): unikatowy identyfikator bazy danych w warstwie analizy, jeśli nazwy obszarów roboczych nie są unikatowe.
  • write_options (dict, opcjonalnie): opcje pisania tabeli. Obsługiwane opcje: — tryb: append lub overwrite (domyślnie: append) overwrite tryb jest obsługiwany tylko w warstwie lake. - partitionBy: lista kolumn do partycji według przykładu: {'mode': 'append', 'partitionBy': ['date']}

Zwraca:

  • str: identyfikator uruchomienia operacji zapisu.

Uwaga

Opcja partycjonowania ma zastosowanie tylko do tabel niestandardowych w bazie danych tabel systemowych (obszar roboczy) w warstwie usługi Data Lake. Nie jest ona obsługiwana w przypadku tabel w warstwie analizy ani tabel w bazach danych innych niż baza danych tabel systemowych w warstwie data lake.

Przykłady:

Utwórz nową tabelę niestandardową w warstwie usługi Data Lake w obszarze roboczym System tables .

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

Zastąp tabelę w bazie danych tabel systemowych (obszarze roboczym) w warstwie usługi Data Lake.

write_options = {
    'mode': 'overwrite'
}
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 do istniejącej tabeli niestandardowej 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ąć, używając 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 Azure Monitorowanie dzienników.

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

Parametry:

  • 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.

Zwraca:

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

Przykład:

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