Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La MicrosoftSentinelProvider classe fournit un moyen d’interagir avec le lac de données Microsoft Sentinel, ce qui vous permet d’effectuer des opérations telles que la liste des bases de données, la lecture de tables et l’enregistrement de données. Cette classe est conçue pour fonctionner avec les sessions Spark dans les notebooks Jupyter et fournit des méthodes pour accéder aux données stockées dans le lac de données Microsoft Sentinel et les manipuler.
Cette classe fait partie du sentinel.datalake module et fournit des méthodes pour interagir avec le lac de données. Pour utiliser cette classe, importez-la et créez un instance de la classe à l’aide de la spark session.
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
Vous devez disposer des autorisations nécessaires pour effectuer des opérations telles que la lecture et l’écriture de données. Pour plus d’informations sur les autorisations, consultez Microsoft Sentinel autorisations de lac de données.
Méthodes
La MicrosoftSentinelProvider classe fournit plusieurs méthodes pour interagir avec le lac de données Microsoft Sentinel.
Chaque méthode répertoriée ci-dessous suppose que la MicrosoftSentinelProvider classe a été importée et qu’un instance a été créé à l’aide de la spark session comme suit :
from sentinel_lake.providers import MicrosoftSentinelProvider
data_provider = MicrosoftSentinelProvider(spark)
list_databases
Répertorier toutes les bases de données/Microsoft Sentinel espaces de travail disponibles.
data_provider.list_databases()
Renvoie :
-
list[str]: liste des noms de base de données (espaces de travail) disponibles dans le lac de données Microsoft Sentinel.
list_tables
Répertorier toutes les tables d’une base de données donnée.
data_provider.list_tables([database_name],[database_id])
Paramètres :
-
database_name(str, facultatif) : nom de la base de données (espace de travail) à partir de laquelle répertorier les tables. SI ce n’est pas spécifié, la base de données des tables système est utilisée. -
database_id(str, facultatif) : identificateur unique de la base de données si les noms d’espace de travail ne sont pas uniques.
Renvoie :
-
list[str]: liste des noms de table dans la base de données spécifiée.
Exemples :
Répertorier toutes les tables de la base de données des tables système :
data_provider.list_tables()
Répertorier toutes les tables d’une base de données spécifique. Spécifiez le database_id de la base de données si les noms de votre espace de travail ne sont pas uniques :
data_provider.list_tables("workspace1", database_id="ab1111112222ab333333")
read_table
Charger un DataFrame à partir d’une table dans Lake.
data_provider.read_table({table}, [database_name], [database_id])
Paramètres :
-
table_name(str) : nom de la table à lire. -
database_name(str, facultatif) : nom de la base de données (espace de travail) contenant la table. La valeur par défaut estSystem tables. -
database_id(str, facultatif) : identificateur unique de la base de données si les noms d’espace de travail ne sont pas uniques.
Renvoie :
-
DataFrame: DataFrame contenant les données de la table spécifiée.
Exemple :
df = data_provider.read_table("EntraGroups", "Workspace001")
save_as_table
Écrire un DataFrame en tant que table managée. Vous pouvez écrire dans le niveau lac en utilisant le suffixe dans le _SPRK nom de votre table, ou dans le niveau analytique à l’aide du _SPRK_CL suffixe.
Remarque
Pour le niveau analytique, save_as_table prend uniquement en charge append le mode.
overwrite le mode n’est pris en charge que dans le niveau lac.
data_provider.save_as_table({DataFrame}, {table_name}, [database_name], [database_id], [write_options])
Paramètres :
-
DataFrame(DataFrame) : DataFrame à écrire en tant que table. -
table_name(str) : nom de la table à créer ou remplacer. -
database_name(str, facultatif) : nom de la base de données (espace de travail) dans laquelle enregistrer la table. La valeur par défaut estSystem tables. -
database_id(str, facultatif, niveau analytique uniquement) : identificateur unique de la base de données dans le niveau analytique si les noms d’espace de travail ne sont pas uniques. -
write_options(dict, facultatif) : options d’écriture de la table. Options prises en charge : - mode :appendouoverwrite(par défaut :append)overwritele mode est uniquement pris en charge dans le niveau lac. - partitionBy : liste des colonnes à partitionner par exemple : {'mode' : 'append', 'partitionBy' : ['date']}
Renvoie :
-
str: ID d’exécution de l’opération d’écriture.
Remarque
L’option de partitionnement s’applique uniquement aux tables personnalisées dans la base de données des tables système (espace de travail) dans le niveau du lac de données. Il n’est pas pris en charge pour les tables du niveau Analytique ou pour les tables des bases de données autres que la base de données des tables système dans le niveau Data Lake.
Exemples :
Créez une table personnalisée dans le niveau data lake de l’espace System tables de travail.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", "System tables")
Remplacez une table dans la base de données des tables système (espace de travail) dans le niveau du lac de données.
write_options = {
'mode': 'overwrite'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", write_options=write_options)
Créez une table personnalisée dans le niveau analytique.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace")
Ajoutez à une table personnalisée existante dans le niveau analytique.
write_options = {
'mode': 'append'
}
data_provider.save_as_table(dataframe, "CustomTable1_SPRK_CL", "analyticstierworkspace", write_options)
Ajoutez à la base de données des tables système avec le partitionnement sur la TimeGenerated colonne.
data_loader.save_as_table(dataframe, "table1", write_options: {'mode': 'append', 'partitionBy': ['TimeGenerated']})
delete_table
Supprime la table du niveau lac. Vous pouvez supprimer la table du niveau lac en utilisant le suffixe dans le _SPRK nom de votre table. Vous ne pouvez pas supprimer une table du niveau analytique à l’aide de cette fonction. Pour supprimer une table personnalisée dans le niveau analytique, utilisez les fonctions de l’API Log Analytics. Pour plus d’informations, consultez Ajouter ou supprimer des tables et des colonnes dans Azure Monitor Logs.
data_provider.delete_table({table_name}, [database_name], [database_id])
Paramètres :
-
table_name(str) : nom de la table à supprimer. -
database_name(str, facultatif) : nom de la base de données (espace de travail) contenant la table. La valeur par défaut estSystem tables. -
database_id(str, facultatif) : identificateur unique de la base de données si les noms d’espace de travail ne sont pas uniques.
Renvoie :
-
dict: dictionnaire contenant le résultat de l’opération de suppression.
Exemple :
data_provider.delete_table("customtable_SPRK", "System tables")