Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La MicrosoftSentinelProvider clase proporciona una manera de interactuar con el lago de datos de Microsoft Sentinel, lo que le 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 en el lago de datos Microsoft Sentinel y manipularlos.
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órela 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 obtener más información sobre los permisos, consulte Microsoft Sentinel permisos de data lake.
Métodos
La MicrosoftSentinelProvider clase proporciona varios métodos para interactuar con el lago de datos Microsoft Sentinel.
Cada método que se muestra a continuación supone que la MicrosoftSentinelProvider clase se ha importado y que se ha creado una instancia mediante la sesión de la spark siguiente manera:
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
list_databases
Enumere todas las bases de datos disponibles o Microsoft Sentinel áreas de trabajo.
data_provider.list_databases()
Valores devueltos:
-
list[str]: lista de nombres de base de datos (áreas de trabajo) disponibles en el lago de datos Microsoft Sentinel.
list_tables
Enumere todas las tablas de una base de datos determinada.
data_provider.list_tables([database_name],[database_id])
Parámetros:
-
database_name(str, opcional): nombre de la base de datos (área de trabajo) desde la que se van a enumerar las tablas. Si no se especifica, se usa la base de datos de tablas del sistema. -
database_id(str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.
Valores devueltos:
-
list[str]: una lista de nombres de tabla en la base de datos especificada.
Ejemplos:
Enumere 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 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
Carga de un dataframe desde una tabla en Lake.
data_provider.read_table({table}, [database_name], [database_id])
Parámetros:
-
table_name(str): nombre de la tabla que se va a leer. -
database_name(str, opcional): nombre de la base de datos (área de trabajo) que contiene la tabla. Valores predeterminados deSystem tables. -
database_id(str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.
Valores devueltos:
-
DataFrame: dataframe que contiene los datos de la tabla especificada.
Ejemplo:
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 .
Nota:
Para el nivel de análisis, save_as_table solo admite append el modo .
overwrite el modo solo se admite en el nivel de lago.
data_provider.save_as_table({DataFrame}, {table_name}, [database_name], [database_id], [write_options])
Parámetros:
-
DataFrame(DataFrame): dataframe que se va a escribir como 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 se va a guardar la tabla. Valores predeterminados deSystem tables. -
database_id(str, opcional, solo nivel de análisis): identificador único de la base de datos en el nivel de análisis si los nombres del área de trabajo no son únicos. -
write_options(dict, opcional): opciones para escribir la tabla. Opciones admitidas: - modo:appendooverwrite(valor predeterminado:append)overwriteel modo solo se admite en el nivel de lago. - partitionBy: lista de columnas que se van a particionar por ejemplo: {'mode': 'append', 'partitionBy': ['date']}
Valores devueltos:
-
str: identificador de ejecución de la operación de escritura.
Nota:
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 bases de datos distintas de la base de datos de tablas del sistema en el nivel de lago de datos.
Ejemplos:
Cree una nueva tabla personalizada en el nivel de lago de datos del System tables área de trabajo.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", "System tables")
Sobrescriba una tabla en la base de datos de tablas del sistema (área de trabajo) en el nivel de lago de datos.
write_options = {
'mode': 'overwrite'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", write_options=write_options)
Cree una nueva tabla personalizada en el nivel de análisis.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace")
Anexe 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)
Anexar 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 obtener más información, vea Agregar o eliminar tablas y columnas en Azure Supervisar registros.
data_provider.delete_table({table_name}, [database_name], [database_id])
Parámetros:
-
table_name(str): nombre de la tabla que se va a eliminar. -
database_name(str, opcional): nombre de la base de datos (área de trabajo) que contiene la tabla. Valores predeterminados deSystem tables. -
database_id(str, opcional): identificador único de la base de datos si los nombres del área de trabajo no son únicos.
Valores devueltos:
-
dict: diccionario que contiene el resultado de la operación de eliminación.
Ejemplo:
data_provider.delete_table("customtable_SPRK", "System tables")