次の方法で共有


Microsoft Sentinel プロバイダー クラス

MicrosoftSentinelProvider クラスは、Microsoft Sentinel データ レイクと対話する方法を提供し、データベースの一覧表示、テーブルの読み取り、データの保存などの操作を実行できます。 このクラスは、Jupyter ノートブックの Spark セッションを操作するように設計されており、Microsoft Sentinel データ レイクに格納されているデータにアクセスして操作するメソッドを提供します。

このクラスは、 sentinel.datalake モジュールの一部であり、データ レイクと対話するメソッドを提供します。 このクラスを使用するには、それをインポートし、 spark セッションを使用してクラスのインスタンスを作成します。

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

データの読み取りと書き込みなどの操作を実行するために必要なアクセス許可が必要です。 アクセス許可の詳細については、「 Microsoft Sentinel Data Lake のアクセス許可」を参照してください。

Methods

MicrosoftSentinelProvider クラスには、Microsoft Sentinel データ レイクと対話するためのメソッドがいくつか用意されています。 以下に示す各メソッドは、 MicrosoftSentinelProvider クラスがインポートされ、次のように spark セッションを使用してインスタンスが作成されていることを前提としています。

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

list_databases

使用可能なすべてのデータベース/Microsoft Sentinel ワークスペースを一覧表示します。

data_provider.list_databases()    

Returns:

  • list[str]: Microsoft Sentinel データ レイクで使用できるデータベース名 (ワークスペース) の一覧。

list_tables

特定のデータベース内のすべてのテーブルを一覧表示します。

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

Parameters:

  • database_name (str、省略可能): テーブルを一覧表示するデータベース (ワークスペース) の名前。 IF が指定されていない場合は、システム テーブル データベースが使用されます。
  • database_id (str、省略可能): ワークスペース名が一意でない場合のデータベースの一意識別子。

Returns:

  • list[str]: 指定したデータベース内のテーブル名の一覧。

Examples:

システム テーブル データベース内のすべてのテーブルを一覧表示します。

data_provider.list_tables() 

特定のデータベース内のすべてのテーブルを一覧表示します。 ワークスペース名が一意でない場合は、データベースの database_id を指定します。

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

read_table

Lake のテーブルから DataFrame を読み込みます。

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

Parameters:

  • table_name (str): 読み取るテーブルの名前。
  • database_name (str、省略可能): テーブルを含むデータベース (ワークスペース) の名前。 既定値は System tables です。
  • database_id (str、省略可能): ワークスペース名が一意でない場合のデータベースの一意識別子。

Returns:

  • DataFrame: 指定したテーブルのデータを格納している DataFrame。

Example:

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

save_as_table

DataFrame をマネージド テーブルとして書き込みます。 テーブル名に _SPRK サフィックスを使用してレイク層に書き込むか、 _SPRK_CL サフィックスを使用して分析層に書き込むことができます。

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

Parameters:

  • DataFrame (DataFrame): テーブルとして書き込むデータフレーム。
  • table_name (str): 作成または上書きするテーブルの名前。
  • database_name (str、省略可能): テーブルを保存するデータベース (ワークスペース) の名前。 既定値は System tables です。
  • database_id (STR、任意、分析層のみ):ワークスペース名が一意でない場合の分析層におけるデータベースの一意識別子。
  • write_options (dict、省略可能): テーブルを書き込むためのオプション。 サポートされているオプション: - mode: append または overwrite (既定値: append) - partitionBy: パーティション分割する列の一覧 (例: {'mode': 'append', 'partitionBy': ['date']}

Returns:

  • str: 書き込み操作の実行 ID。

Note

パーティション分割オプションは、データ レイク層のシステム テーブル データベース (ワークスペース) のカスタム テーブルにのみ適用されます。 分析層のテーブルや、データ レイク層のシステム テーブル データベース以外のデータベースのテーブルではサポートされていません。

Examples:

System tables ワークスペースのデータ レイク層に新しいカスタム テーブルを作成します。

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

データ レイク層のシステム テーブル データベース (ワークスペース) のテーブルに追加します。

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

分析層に新しいカスタム テーブルを作成します。

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

分析層の既存のカスタム テーブルに追加または上書きします。

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

TimeGenerated列のパーティション分割を使用して、システム テーブル データベースに追加します。

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

delete_table

レイク層からテーブルを削除します。 テーブル名に _SPRK サフィックスを使用して、レイク層からテーブルを削除できます。 この関数を使用して分析層からテーブルを削除することはできません。 分析レベルでカスタム テーブルを削除するには、Log Analytics API 関数を使用します。 詳細については、「 Azure Monitor ログのテーブルと列を追加または削除する」を参照してください。

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

Parameters:

  • table_name (str): 削除するテーブルの名前。
  • database_name (str、省略可能): テーブルを含むデータベース (ワークスペース) の名前。 既定値は System tables です。
  • database_id (str、省略可能): ワークスペース名が一意でない場合のデータベースの一意識別子。

Returns:

  • dict: 削除操作の結果を含むディクショナリ。

Example:

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