Compartir a través de


Clase Provider de Microsoft Sentinel

La MicrosoftSentinelProvider clase proporciona una manera de interactuar con el lago de datos de Microsoft Sentinel, lo que permite realizar operaciones como enumerar bases de datos, leer tablas y guardar datos. Esta clase está diseñada para trabajar con las sesiones de Spark en cuadernos de Jupyter Notebook y proporciona métodos para acceder a los datos almacenados y manipularlos en el lago de datos de Microsoft Sentinel.

Esta clase forma parte del sentinel.datalake módulo y proporciona métodos para interactuar con el lago de datos. Para usar esta clase, impórtela y cree una instancia de la clase mediante la spark sesión.

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

Debe tener los permisos necesarios para realizar operaciones como leer y escribir datos. Para más información sobre los permisos, consulte Permisos de lago de datos de Microsoft Sentinel.

Methods

La MicrosoftSentinelProvider clase proporciona varios métodos para interactuar con el lago de datos de Microsoft Sentinel. Cada método que se muestra a continuación supone que se ha importado la MicrosoftSentinelProvider clase y se ha creado una instancia con la spark sesión como se indica a continuación:

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

list_databases

Enumere todas las bases de datos disponibles o áreas de trabajo de Microsoft Sentinel.

data_provider.list_databases()    

Returns:

  • list[str]: una lista de nombres de base de datos (áreas de trabajo) disponibles en el lago de datos de Microsoft Sentinel.

list_tables

Enumera todas las tablas de una base de datos determinada.

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

Parameters:

  • database_name (str, opcional): el nombre de la base de datos (área de trabajo) de la que se van a enumerar las tablas. SI no se especifica la base de datos de tablas del sistema se usa.
  • database_id (str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.

Returns:

  • list[str]: una lista de nombres de tabla en la base de datos especificada.

Examples:

Enumerar todas las tablas de la base de datos de tablas del sistema:

data_provider.list_tables() 

Enumera todas las tablas de una base de datos específica. Especifique el database_id valor de de la base de datos si los nombres del área de trabajo no son únicos:

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

read_table

Cargue un DataFrame desde una tabla en Lake.

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

Parameters:

  • table_name (str): nombre de la tabla que se va a leer.
  • database_name (str, opcional): el nombre de la base de datos (área de trabajo) que contiene la tabla. Tiene como valor predeterminado System tables.
  • database_id (str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.

Returns:

  • DataFrame: DataFrame que contiene los datos de la tabla especificada.

Example:

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

save_as_table

Escriba un DataFrame como una tabla administrada. Puede escribir en el nivel de lago mediante el sufijo en el _SPRK nombre de la tabla o en el nivel de análisis mediante el _SPRK_CL sufijo .

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

Parameters:

  • DataFrame (DataFrame): DataFrame que se va a escribir como una tabla.
  • table_name (str): nombre de la tabla que se va a crear o sobrescribir.
  • database_name (str, opcional): nombre de la base de datos (área de trabajo) en la que guardar la tabla. Tiene como valor predeterminado System tables.
  • database_id (STR, opcional, solo nivel analítico): El identificador único de la base de datos en el nivel de analítica si los nombres de espacios de trabajo no son únicos.
  • write_options (dict, opcional): opciones para escribir la tabla. Opciones admitidas: - mode: append or overwrite (default: append) - partitionBy: list of columns to partition by Example: {'mode': 'append', 'partitionBy': ['date']}

Returns:

  • str: identificador de ejecución de la operación de escritura.

Note

La opción de creación de particiones solo se aplica a las tablas personalizadas de la base de datos de tablas del sistema (área de trabajo) en el nivel de lago de datos. No se admite para las tablas del nivel de análisis ni para las tablas de las bases de datos que no sean la base de datos de tablas del sistema en el nivel de lago de datos.

Examples:

Cree una nueva tabla personalizada en el nivel de lago de datos del área de System tables trabajo.

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

Anexe a una tabla de la base de datos de tablas del sistema (área de trabajo) en el nivel de lago de datos.

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

Cree una tabla personalizada en el nivel de análisis.

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

Anexe o sobrescriba a una tabla personalizada existente en el nivel de análisis.

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

Anexe a la base de datos de tablas del sistema con particiones en la TimeGenerated columna.

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

delete_table

Elimina la tabla del nivel de lago. Puede eliminar la tabla del nivel de lago mediante el sufijo en el _SPRK nombre de la tabla. No se puede eliminar una tabla del nivel de análisis mediante esta función. Para eliminar una tabla personalizada en el nivel de análisis, use las funciones de la API de Log Analytics. Para más información, consulte Incorporación o eliminación de tablas y columnas en registros de Azure Monitor.

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

Parameters:

  • table_name (str): nombre de la tabla que se va a eliminar.
  • database_name (str, opcional): el nombre de la base de datos (área de trabajo) que contiene la tabla. Tiene como valor predeterminado System tables.
  • database_id (str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.

Returns:

  • dict: diccionario que contiene el resultado de la operación de eliminación.

Example:

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