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 offre 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 des tables et l’enregistrement des 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 permettant d’interagir avec le lac de données. Pour utiliser cette classe, importez-la et créez une 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 les autorisations de lac de données Microsoft Sentinel.
Methods
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’une instance a été créée à 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 disponibles / espaces de travail Microsoft Sentinel.
data_provider.list_databases()
Returns:
-
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épertorie toutes les tables d’une base de données donnée.
data_provider.list_tables([database_name],[database_id])
Parameters:
-
database_name(str, facultatif) : nom de la base de données (espace de travail) à partir duquel répertorier les tables. SI la base de données des tables système n’est pas spécifiée. -
database_id(str, facultatif) : identificateur unique de la base de données si les noms d’espace de travail ne sont pas uniques.
Returns:
-
list[str]: liste des noms de tables dans la base de données spécifiée.
Examples:
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 la database_id 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
Chargez un DataFrame à partir d’une table dans Lake.
data_provider.read_table({table}, [database_name], [database_id])
Parameters:
-
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.
Returns:
-
DataFrame: DataFrame contenant les données de la table spécifiée.
Example:
df = data_provider.read_table("EntraGroups", "Workspace001")
save_as_table
Écrivez un DataFrame en tant que table managée. Vous pouvez écrire dans le niveau lake à l’aide du _SPRK suffixe de votre nom de table ou du niveau Analytique à l’aide du _SPRK_CL suffixe.
data_provider.save_as_table({DataFrame}, {table_name}, [database_name], [database_id], [write_options])
Parameters:
-
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, optionnel, uniquement niveau analytique) : L’identifiant unique de la base de données dans le niveau analytique si les noms des espaces 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) - partitionBy : liste des colonnes à partitionner par exemple : {'mode' : 'append', 'partitionBy' : ['date']}
Returns:
-
str: ID d’exécution de l’opération d’écriture.
Note
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 Data Lake. Il n’est pas pris en charge pour les tables du niveau Analytique ou pour les tables dans les bases de données autres que la base de données des tables système dans le niveau Data Lake.
Examples:
Créez une table personnalisée dans le niveau Data Lake dans l’espace System tables de travail.
data_provider.save_as_table(dataframe, "CustomTable1_SPRK", "System tables")
Ajoutez à une table dans la base de données des tables système (espace de travail) dans le niveau Data Lake.
write_options = {
'mode': 'append'
}
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 ou remplacez 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 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 Lake à l’aide du _SPRK suffixe dans votre nom de 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 les journaux Azure Monitor.
data_provider.delete_table({table_name}, [database_name], [database_id])
Parameters:
-
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.
Returns:
-
dict: dictionnaire contenant le résultat de l’opération de suppression.
Example:
data_provider.delete_table("customtable_SPRK", "System tables")