次の方法で共有


系列システム テーブル参照

このページには、2 つの系列システム テーブルの参照が含まれています。 これらのシステム テーブルは、Unity Catalog の データ系列機能に基づいて構築されており、プログラムによって系列データを照会して意思決定とレポートを促進できます。 テーブルにアクセスするには、 system カタログでスキーマを有効にする必要があります。 詳細については、「 システム テーブルへのアクセス」を参照してください。

どちらの系列テーブルも、常に系列を取得できるわけではないため、すべての読み取り/書き込みイベントのサブセットを表します。 レコードは、系列を推論できる場合にのみ生成されます。 系列の制限に記載されているデータ系列の 制限は、 系列システム テーブルにも適用されます。

テーブル系列テーブル

テーブル系列システム テーブルには、Unity Catalog テーブルまたはパスの読み取り/書き込みイベントごとに 1 つのレコードが含まれています。 これには、ジョブの実行、ノートブックの実行、読み取りまたは書き込みイベントで更新されたダッシュボードが含まれますが、これらに限定されません。

テーブル パス: このシステム テーブルは system.access.table_lineage にあります。

テーブル系列スキーマ

テーブル系列システム テーブルでは、次のスキーマを使用します。

列名 データ型 説明
account_id ひも Azure Databricks アカウントの ID。 7af234db-66d7-4db3-bbf0-956098224879
metastore_id ひも Unity Catalog メタストアの ID。 5a31ba44-bbf4-4174-bf33-e1fa078e6765
source_table_full_name ひも ソース テーブルを識別する 3 部構成の名前。 catalog.schema.table
source_table_catalog ひも ソース テーブルのカタログ。 catalog
source_table_schema ひも ソース テーブルのスキーマ。 schema
source_table_name ひも ソース テーブルの名前です。 table
source_path ひも ソース テーブルのクラウド ストレージ内の場所。クラウド ストレージから直接読み取る場合はパス。 abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type ひも ソースの種類。 値は TABLEPATHVIEW、または STREAMING_TABLE です。 TABLE
target_table_full_name ひも ターゲット テーブルを識別する 3 部構成の名前。 catalog.schema.table
target_table_catalog ひも ターゲット テーブルのカタログ。 catalog
target_table_schema ひも ターゲット テーブルのスキーマ。 schema
target_table_name ひも ターゲット テーブルのファイル名。 table
target_path ひも ターゲット テーブルのクラウド ストレージ内の場所。 abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type ひも 対象の型です。 値は TABLEPATHVIEW、または STREAMING TABLE です。 TABLE
created_by ひも この系列を生成したユーザー。 これは、Azure Databricks ユーザー名、Azure Databricks サービス プリンシパル ID、"System-User"、またはユーザー情報をキャプチャできない場合は NULL を使用できます。 crampton.rods@email.com
event_time タイムスタンプ(時刻印) 系列が生成された日時のタイムスタンプ。 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 2025-04-20T19:47:21.194+00:00
event_date 日付 系列が生成された日付。 これはパーティション分割された列です。 2025-04-20
record_id ひも 系列レコードのユニークID。 この値は自動生成され、どのテーブルとも結合できません。 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id ひも 1 つの系列イベントの一意の ID。 複数の行が同じイベントによって生成された場合、同じ event_id を共有できます。 この値は自動生成され、どのテーブルとも結合できません。 ca123ff3-f3f8-332b-a832-0154a6327353
statement_id ひも 系列イベントを生成したクエリ ステートメントの一意の ID。 これは、 クエリ履歴システム テーブルと結合するための外部キーです。 この値は、クエリが SQL ウェアハウスから実行される場合にのみ設定されます。 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struct 系列イベントを担当するエンティティに関するメタデータ。 エンティティ メタデータを参照する

entity_typeentity_run_id、および entity_id は非推奨になりました。 系列レコードに関係するエンティティの完全な図については、 entity_metadata 列を使用します。

列系列テーブル

列系列テーブルには、ソースのないイベントは含まれません。 たとえば、明示的な値を使用して列に挿入した場合はキャプチャされません。 列を読み取ると、出力を書き込むかどうかに関係なくキャプチャされます。

テーブル パス: このシステム テーブルは system.access.column_lineage にあります。

列系列スキーマ

列系列システム テーブルでは、次のスキーマが使用されます。

列名 データ型 説明
account_id ひも Azure Databricks アカウントの ID。 7af234db-66d7-4db3-bbf0-956098224879
metastore_id ひも Unity Catalog メタストアの ID。 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id ひも ワークスペースの ID。 123456789012345
source_table_full_name ひも ソース テーブルを識別する 3 部構成の名前。 catalog.schema.table
source_table_catalog ひも ソース テーブルのカタログ。 catalog
source_table_schema ひも ソース テーブルのスキーマ。 schema
source_table_name ひも ソース テーブルの名前です。 table
source_path ひも ソース テーブルのクラウド ストレージ内の場所。クラウド ストレージから直接読み取る場合はパス。 abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type ひも ソースの種類。 値は TABLEPATHVIEW、または STREAMING_TABLE です。 TABLE
source_column_name ひも 変換元列の名前です。 date
target_table_full_name ひも ターゲット テーブルを識別する 3 部構成の名前。 catalog.schema.table
target_table_catalog ひも ターゲット テーブルのカタログ。 catalog
target_table_schema ひも ターゲット テーブルのスキーマ。 schema
target_table_name ひも ターゲット テーブルのファイル名。 table
target_path ひも ターゲット テーブルのクラウド ストレージ内の場所。 abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type ひも 対象の型です。 値は TABLEPATHVIEW、または STREAMING TABLE です。 TABLE
target_column_name ひも ターゲット列の名前。 date
created_by ひも この系列を生成したユーザー。 これは、Azure Databricks ユーザー名、Azure Databricks サービス プリンシパル ID、"System-User"、またはユーザー情報をキャプチャできない場合は NULL を使用できます。 crampton.rods@email.com
event_time タイムスタンプ(時刻印) 系列が生成された日時のタイムスタンプ。 タイムゾーン情報は、UTC を表す +00:00 とともに値の末尾に記録されます。 2025-04-20T19:47:21.194+00:00
event_date 日付 系列が生成された日付。 これはパーティション分割された列です。 2025-04-20
record_id ひも 系列レコードのユニークID。 この値は自動生成され、どのテーブルとも結合できません。 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id ひも 1 つの系列イベントの一意の ID。 複数の行が同じイベントによって生成された場合、同じ event_id を共有できます。 この値は自動生成され、どのテーブルとも結合できません。 ca123ff3-f3f8-332b-a832-0154a6327353
statement_id ひも 系列イベントを生成したクエリ ステートメントの一意の ID。 これは、 クエリ履歴システム テーブルと結合するための外部キーです。 この値は、クエリが SQL ウェアハウスから実行される場合にのみ設定されます。 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struct 系列イベントを担当するエンティティに関するメタデータ。 エンティティ メタデータを参照する

entity_typeentity_run_id、および entity_id は非推奨になりました。 系列レコードに関係するエンティティの完全な図については、 entity_metadata 列を使用します。

系列システム テーブルの読み取り

  • イベントが読み取りまたは書き込みのいずれであったかを確認するには、ソースの種類とターゲットの種類を表示できます。
    • 読み取り専用: ソースの種類は null ではありませんが、ターゲットの種類は null です。
    • 書き込み専用: ターゲットの種類は null ではありませんが、ソースの種類は null です。
    • 読み取りおよび書き込み: ソースの種類とターゲットの種類がいずれも null ではありません。

エンティティ メタデータ リファレンス

entity_metadata構造体には、次のスキーマがあります。

job_info:
  job_id: "string"
  job_run_id: "string"
dashboard_id: "string"
legacy_dashboard_id: "string"
notebook_id: "string"
sql_query_id: "string"
dlt_pipeline_info:
  dlt_pipeline_id: "string"
  dlt_update_id: "string"

Azure Databricks は、Lakeflow 宣言パイプライン、ノートブック、ジョブ、Databricks SQL クエリ、ダッシュボードからの系列イベントを記録します。 他のエンティティからのイベントはサポートされていません。

イベントの種類に応じて、複数の値を設定できます。 たとえば、ノートブック タスクを実行しているジョブでは、 job_infonotebook_idの両方が設定されます。

entity_metadata内のすべての値がnullされている場合は、Azure Databricks エンティティがイベントに関与しなかったことになります。 たとえば、JDBC クエリの結果、またはユーザーが Azure Databricks UI の [サンプル データ] タブをクリックした場合などです。

系列システム テーブルの例

系列をシステム テーブルに記録する方法の例として、クエリの例と、クエリによって作成される系列レコードを次に示します。

CREATE OR REPLACE TABLE car_features
AS SELECT *,  in1+in2 as premium_feature_set
FROM car_features_exterior
JOIN car_features_interior
USING(id, model);

system.access.table_lineage のレコードは次のようになります。

entity_type entity_id source_table_name target_table_name created_by event_time
NOTEBOOK 27080565267 car_features_exterior car_features crampton@email.com 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features crampton@email.com 2023-01-25T16:19:58.908+0000

system.access.column_lineage のレコードは次のようになります。

entity_type entity_id source_table_name target_table_name source_column_name target_column_name event_time
NOTEBOOK 27080565267 car_features_interior car_features in1 premium_feature_set 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features in2 premium_feature_set 2023-01-25T16:19:58.908+0000

上記の例では、すべての系列列が示されているわけではありません。 完全なスキーマについては、上記の系列スキーマを参照してください。

外部テーブル クエリのトラブルシューティング

クラウド ストレージ パスを使用して外部テーブルを参照する場合、関連付けられている系列レコードには、テーブル名ではなくパス名のみが含まれます。 たとえば、このクエリの系列レコードには、テーブル名ではなくパス名が含まれます:

SELECT * FROM delta.`abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1`;

パスによって参照される外部テーブルの系列レコードに対してクエリを実行する場合は、source_pathまたはtarget_pathではなく、source_table_full_nameまたはtarget_table_full_nameを使用してクエリをフィルター処理する必要があります。 たとえば、次のクエリでは、外部テーブルのすべての系列レコードがプルされます:

SELECT *
FROM system.access.table_lineage
WHERE
  source_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1" OR
  target_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1";

例: 外部テーブル名に基づいて系列レコードを取得する

系列を検索するためにクラウド ストレージ パスを手動で取得しない場合は、次の関数を使用して、テーブル名を使用して系列データを取得できます。 列の系列のクエリを実行したい場合は、関数内で system.access.table_lineagesystem.access.column_lineage に置換えることもできます。

def getLineageForTable(table_name):
  table_path = spark.sql(f"describe detail {table_name}").select("location").head()[0]

  df = spark.read.table("system.access.table_lineage")
  return df.where(
    (df.source_table_full_name == table_name)
    | (df.target_table_full_name == table_name)
    | (df.source_path == table_path)
    | (df.target_path == table_path)
  )

次に、次のコマンドを使用して関数を呼び出し、外部テーブルの系列レコードを表示します:

display(getLineageForTable("table_name"))