メインコンテンツまでスキップ

リネージ システムテーブル リファレンス

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

注記

どちらのリネージテーブルも、すべての読み取り/書き込みイベントのサブセットを表しており、常にリネージをキャプチャできるとは限りません。 レコードは、リネージが推論できる場合にのみ出力されます。

テーブル リネージテーブル

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

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

Table リネージ スキーマ

テーブル リネージ システムテーブルは、次のスキーマを使用します。

列名

データ型

説明

account_id

string

DatabricksアカウントのID。

7af234db-66d7-4db3-bbf0-956098224879

metastore_id

string

Unity Catalogメタストアの ID。

5a31ba44-bbf4-4174-bf33-e1fa078e6765

source_table_full_name

string

ソース・テーブルを識別するための 3 つの部分からなる名前。

catalog.schema.table

source_table_catalog

string

ソース・テーブルのカタログ。

catalog

source_table_schema

string

ソーステーブルのスキーマ。

schema

source_table_name

string

ソース・テーブルの名前。

table

source_path

string

ソース テーブルのクラウド ストレージ内の場所、またはクラウド ストレージから直接読み取っている場合はパス。

s3://mybucket/table1

source_type

string

ソースのタイプ。 値は TABLEPATHVIEW、または STREAMING_TABLEです。

TABLE

target_table_full_name

string

ターゲット・テーブルを識別するための 3 部構成の名前。

catalog.schema.table

target_table_catalog

string

ターゲット・テーブルのカタログ。

catalog

target_table_schema

string

ターゲットテーブルのスキーマ。

schema

target_table_name

string

ターゲット テーブルの名前。

table

target_path

string

ターゲット テーブルのクラウド ストレージ内の場所。

s3://mybucket/table1

target_type

string

ターゲットのタイプ。 値は TABLEPATHVIEW、または STREAMING TABLEです。

TABLE

created_by

string

このリネージを生成したユーザーです。 これは、 Databricks ユーザー名、 Databricks サービスプリンシパル ID、「System-User」、またはユーザー情報を取得できない場合は NULL にすることができます。

crampton.rods@email.com

event_time

タイムスタンプ

リネージが生成されたときのタイムスタンプ。 タイムゾーン情報は、 +00:00 UTC を表す値の終わりに記録されます。

2025-04-20T19:47:21.194+00:00

event_date

日付

リネージが生成された日付。 これはパーティション分割された列です。

2025-04-20

record_id

string

リネージレコードの一意の ID。 この値は自動生成され、どのテーブルとも結合できません。

3c5c8eed-87bb-3aa6-8a86-80d00d48299e

event_id

string

1 つのリネージ イベントの一意の ID。 複数の行が同じイベントによって生成された場合、同じ event_id を共有することができます。この値は自動生成され、どのテーブルとも結合できません。

ca123ff3-f3f8-332b-a832-0154a6327353

statement_id

string

リネージ イベントを生成したクエリ文の一意の ID。 これは、 クエリ履歴システムテーブルと結合するための外部キーです。この値は、クエリが SQLウェアハウスから実行される場合にのみ設定されます。

1234526f-a6ac-475c-8601-e8637f8ee039

entity_metadata

struct

リネージ イベントを担当するエンティティに関するメタデータ。

エンティティ メタデータを参照してください

注記

entity_typeentity_run_id、およびentity_id列は廃止されました。リネージレコードに関与するエンティティの全体像を把握するには、 entity_metadata 列を使用します。

コラムリネージテーブル

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

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

Column リネージ スキーマ

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

列名

データ型

説明

account_id

string

DatabricksアカウントのID。

7af234db-66d7-4db3-bbf0-956098224879

metastore_id

string

Unity Catalogメタストアの ID。

5a31ba44-bbf4-4174-bf33-e1fa078e6765

workspace_id

string

ワークスペースのID

123456789012345

source_table_full_name

string

ソース・テーブルを識別するための 3 つの部分からなる名前。

catalog.schema.table

source_table_catalog

string

ソース・テーブルのカタログ。

catalog

source_table_schema

string

ソーステーブルのスキーマ。

schema

source_table_name

string

ソース・テーブルの名前。

table

source_path

string

ソース テーブルのクラウド ストレージ内の場所、またはクラウド ストレージから直接読み取っている場合はパス。

s3://mybucket/table1

source_type

string

ソースのタイプ。 値は TABLEPATHVIEW、または STREAMING_TABLEです。

TABLE

source_column_name

string

ソース列の名前。

date

target_table_full_name

string

ターゲット・テーブルを識別するための 3 部構成の名前。

catalog.schema.table

target_table_catalog

string

ターゲット・テーブルのカタログ。

catalog

target_table_schema

string

ターゲットテーブルのスキーマ。

schema

target_table_name

string

ターゲット テーブルの名前。

table

target_path

string

ターゲット テーブルのクラウド ストレージ内の場所。

s3://mybucket/table1

target_type

string

ターゲットのタイプ。 値は TABLEPATHVIEW、または STREAMING TABLEです。

TABLE

target_column_name

string

ターゲットカラムの名前。

date

created_by

string

このリネージを生成したユーザーです。 これは、 Databricks ユーザー名、 Databricks サービスプリンシパル ID、「System-User」、またはユーザー情報を取得できない場合は NULL にすることができます。

crampton.rods@email.com

event_time

タイムスタンプ

リネージが生成されたときのタイムスタンプ。 タイムゾーン情報は、 +00:00 UTC を表す値の終わりに記録されます。

2025-04-20T19:47:21.194+00:00

event_date

日付

リネージが生成された日付。 これはパーティション分割された列です。

2025-04-20

record_id

string

リネージレコードの一意の ID。 この値は自動生成され、どのテーブルとも結合できません。

3c5c8eed-87bb-3aa6-8a86-80d00d48299e

event_id

string

1 つのリネージ イベントの一意の ID。 複数の行が同じイベントによって生成された場合、同じ event_id を共有することができます。この値は自動生成され、どのテーブルとも結合できません。

ca123ff3-f3f8-332b-a832-0154a6327353

statement_id

string

リネージ イベントを生成したクエリ文の一意の ID。 これは、 クエリ履歴システムテーブルと結合するための外部キーです。この値は、クエリが SQLウェアハウスから実行される場合にのみ設定されます。

1234526f-a6ac-475c-8601-e8637f8ee039

entity_metadata

struct

リネージ イベントを担当するエンティティに関するメタデータ。

エンティティ メタデータを参照してください

注記

entity_typeentity_run_id、およびentity_id列は廃止されました。リネージレコードに関与するエンティティの全体像を把握するには、 entity_metadata 列を使用します。

Reading リネージ システムテーブル

  • イベントが読み取りか書き込みかを判断するには、ソース・タイプとターゲット・タイプを表示します。
    • 読取り専用: ソース・タイプはnullではありませんが、ターゲット・タイプはnullです。
    • 書込み専用: ターゲット・タイプはnullではありませんが、ソース・タイプはnullです。
    • 読み取りと書き込み: ソースの種類とターゲットの種類が null ではありません。

エンティティ メタデータ参照

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

JSON
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"

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

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

entity_metadata のすべての値が nullの場合は、イベントに Databricks エンティティが関与していないことを意味します。たとえば、JDBC クエリの結果や、ユーザーが Databricks UI の [ サンプル データ ] タブをクリックした結果である可能性があります。

リネージュシステムテーブルの例

リネージがシステムテーブルに記録される方法の例として、クエリの例と、クエリが作成するリネージレコードを以下に示します。

SQL
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

注記

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

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

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

SQL
SELECT * FROM delta.`s3://mybucket/table1`;

パスで参照される外部テーブルのリネージレコードをクエリしようとする場合は、source_table_full_nametarget_table_full_nameの代わりに source_path または target_path を使用してクエリをフィルタリングする必要があります。たとえば、次のクエリは、外部テーブルのすべてのリネージレコードをプルします。

SQL
SELECT *
FROM system.access.table_lineage
WHERE
source_path = "s3://mybucket/table1" OR
target_path = "s3://mybucket/table1";

例: 外部テーブル名に基づくリネージレコードの取得

リネージを探すために手動でクラウドストレージのパスを取得したくない場合は、以下の機能を使ってテーブル名でリネージデータを取得することができます。 また、列リネージをクエリする場合は、関数で system.access.table_lineagesystem.access.column_lineage に置き換えることもできます。

Python
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)
)

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

Python
display(getLineageForTable("table_name"))