Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A MicrosoftSentinelProvider classe fornece uma forma de interagir com o Microsoft Sentinel data lake, permitindo-lhe realizar operações como listar bases de dados, ler tabelas e guardar dados. Esta classe foi concebida para funcionar com as sessões do Spark nos blocos de notas do Jupyter e fornece métodos para aceder e manipular dados armazenados no data lake Microsoft Sentinel.
Esta classe faz parte do sentinel.datalake módulo e fornece métodos para interagir com o data lake. Para utilizar esta classe, importe-a e crie uma instância da classe com a spark sessão.
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Tem de ter as permissões necessárias para realizar operações como ler e escrever dados. Para obter mais informações sobre permissões, veja Microsoft Sentinel permissões do data lake.
Métodos
A MicrosoftSentinelProvider classe fornece vários métodos para interagir com o Microsoft Sentinel data lake.
Cada método listado abaixo pressupõe que a MicrosoftSentinelProvider classe foi importada e que foi criada uma instância com a sessão da spark seguinte forma:
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
list_databases
Listar todas as bases de dados/Microsoft Sentinel áreas de trabalho disponíveis.
data_provider.list_databases()
Devolve:
-
list[str]: uma lista de nomes de bases de dados (áreas de trabalho) disponíveis no Microsoft Sentinel data lake.
list_tables
Listar todas as tabelas numa determinada base de dados.
data_provider.list_tables([database_name],[database_id])
Parâmetros:
-
database_name(str, opcional): o nome da base de dados (área de trabalho) a partir da lista de tabelas. Se não for especificada, é utilizada a base de dados de tabelas do sistema. -
database_id(str, opcional): o identificador exclusivo da base de dados se os nomes das áreas de trabalho não forem exclusivos.
Devolve:
-
list[str]: uma lista de nomes de tabelas na base de dados especificada.
Exemplos:
Listar todas as tabelas na base de dados de tabelas do sistema:
data_provider.list_tables()
Listar todas as tabelas numa base de dados específica. Especifique o database_id da base de dados se os nomes da área de trabalho não forem exclusivos:
data_provider.list_tables("workspace1", database_id="ab1111112222ab333333")
read_table
Carregar um DataFrame a partir de uma tabela no Lake.
data_provider.read_table({table}, [database_name], [database_id])
Parâmetros:
-
table_name(str): o nome da tabela a ler. -
database_name(str, opcional): o nome da base de dados (área de trabalho) que contém a tabela. A predefinição éSystem tables. -
database_id(str, opcional): o identificador exclusivo da base de dados se os nomes das áreas de trabalho não forem exclusivos.
Devolve:
-
DataFrame: Um DataFrame que contém os dados da tabela especificada.
Exemplo:
df = data_provider.read_table("EntraGroups", "Workspace001")
save_as_table
Escreva um DataFrame como uma tabela gerida. Pode escrever na camada lake com o _SPRK sufixo no nome da tabela ou na camada de análise com o _SPRK_CL sufixo.
Nota
Para o escalão de análise, save_as_table suporta append apenas o modo.
overwrite O modo só é suportado na camada lake.
data_provider.save_as_table({DataFrame}, {table_name}, [database_name], [database_id], [write_options])
Parâmetros:
-
DataFrame(DataFrame): o DataFrame para escrever como uma tabela. -
table_name(str): o nome da tabela a criar ou substituir. -
database_name(str, opcional): o nome da base de dados (área de trabalho) na qual guardar a tabela. A predefinição éSystem tables. -
database_id(apenas str, opcional, camada de análise): o identificador exclusivo da base de dados na camada de análise se os nomes das áreas de trabalho não forem exclusivos. -
write_options(dict, opcional): opções para escrever a tabela. Opções suportadas: - modo:appendouoverwrite(predefinição:append)overwriteo modo só é suportado na camada lake. - partitionBy: list of columns to partition by Example: {'mode': 'append', 'partitionBy': ['date']}
Devolve:
-
str: o ID de execução da operação de escrita.
Nota
A opção de criação de partições aplica-se apenas a tabelas personalizadas na base de dados de tabelas do sistema (área de trabalho) na camada do data lake. Não é suportada para tabelas na camada de análise ou para tabelas em bases de dados diferentes da base de dados de tabelas do sistema na camada do data lake.
Exemplos:
Crie uma nova tabela personalizada na camada do data lake na área System tables de trabalho.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", "System tables")
Substitua uma tabela na base de dados de tabelas do sistema (área de trabalho) na camada do data lake.
write_options = {
'mode': 'overwrite'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", write_options=write_options)
Crie uma nova tabela personalizada no escalão de análise.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace")
Acrescente a uma tabela personalizada existente na camada de análise.
write_options = {
'mode': 'append'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace", write_options)
Acrescente à base de dados de tabelas do sistema com a criação de partições na TimeGenerated coluna.
data_loader.save_as_table(dataframe, "table1", write_options: {'mode': 'append', 'partitionBy': ['TimeGenerated']})
delete_table
Elimina a tabela da camada lake. Pode eliminar a tabela da camada lake com o _SPRK sufixo no nome da tabela. Não pode eliminar uma tabela da camada de análise com esta função. Para eliminar uma tabela personalizada na camada de análise, utilize as funções da API do Log Analytics. Para obter mais informações, consulte Adicionar ou eliminar tabelas e colunas no Azure Monitorizar Registos.
data_provider.delete_table({table_name}, [database_name], [database_id])
Parâmetros:
-
table_name(str): o nome da tabela a eliminar. -
database_name(str, opcional): o nome da base de dados (área de trabalho) que contém a tabela. A predefinição éSystem tables. -
database_id(str, opcional): o identificador exclusivo da base de dados se os nomes das áreas de trabalho não forem exclusivos.
Devolve:
-
dict: um dicionário que contém o resultado da operação de eliminação.
Exemplo:
data_provider.delete_table("customtable_SPRK", "System tables")