Справочник по системным таблицам потомственности

Эта страница содержит ссылку на две системные таблицы происхождения. Эти системные таблицы создаются на основе функции происхождения данных каталога Unity, что позволяет программным способом запрашивать данные о происхождении данных, чтобы подпитывать принятие решений и отчеты. Чтобы получить доступ к таблицам, схемы должны быть включены в каталоге system . Дополнительные сведения см. в разделе "Включение системных таблиц".

Note

Обе таблицы происхождения представляют подмножество всех событий чтения и записи, так как не всегда возможно записать происхождение. Записи выводятся только тогда, когда можно установить происхождение. Ограничения происхождения данных, описанные в ограничениях , также применяются к системным таблицам происхождения.

Хранение данных

Системные таблицы происхождения сохраняют последовательное 1-летнее окно данных. События старше одного года удаляются на прокатной основе. Для истории происхождения, превышающей один год, используйте обозреватель каталогов или API происхождения, которые бесконечно сохраняют данные о происхождении, захваченные после 1 сентября 2024 года.

Таблица происхождения таблиц

В системе таблиц lineage содержится запись для каждого события чтения или записи в таблице каталога Unity или пути. Это включает, помимо прочего, выполнение заданий, запуски записных книжек и интерактивные панели, обновленные с помощью события чтения или записи.

Путь к таблице: эта системная таблица расположена по адресу system.access.table_lineage.

Схема линейности таблицы

В таблице системы родословной таблицы используется следующая схема.

Имя столбца Тип данных Description Example
account_id string Идентификатор учетной записи Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id string Идентификатор хранилища метаданных каталога Unity. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id string Идентификатор рабочей области 123456789012345
entity_type string Тип сущности, связанной с записью происхождения, если таковой есть. Значение : NOTEBOOK, JOB, PIPELINEDASHBOARD_V3, DBSQL_DASHBOARD (не рекомендуется), DBSQL_QUERYили NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
JOB
entity_id string Идентификатор сущности, связанной с записью о происхождении, или NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
417306252667357
entity_run_id string Уникальный идентификатор выполнения сущности, связанной с записью происхождения, или NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
688612062233399
source_table_full_name string Трехкомпонентное имя для идентификации исходной таблицы. catalog.schema.table
source_table_catalog string Каталог исходной таблицы. catalog
source_table_schema string Схема исходной таблицы. schema
source_table_name string Имя исходной таблицы. table
source_path string Расположение в облачном хранилище исходной таблицы или путь, если он считывается непосредственно из облачного хранилища. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type string Тип источника. Значение : TABLE, PATH, VIEWMATERIALIZED_VIEW, METRIC_VIEWили STREAMING_TABLE. TABLE
target_table_full_name string Трехкомпонентное имя для идентификации целевой таблицы. catalog.schema.table
target_table_catalog string Каталог целевой таблицы. catalog
target_table_schema string Схема целевой таблицы. schema
target_table_name string Имя целевой таблицы. table
target_path string Расположение в облачном хранилище целевой таблицы. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type string Тип цели. Значение : TABLE, PATH, VIEWMATERIALIZED_VIEW, METRIC_VIEWили STREAMING_TABLE. TABLE
created_by string Пользователь, создавший эту линиейку. Это может быть имя пользователя Azure Databricks, идентификатор служебного принципала Azure Databricks, имя группы Azure Databricks, “System-User” или NULL, если данные пользователя не могут быть записаны. crampton.rods@email.com
event_time timestamp Метка времени генерации родословной. Сведения о часовом поясе записываются в конце значения с +00:00, представляющей UTC. 2025-04-20T19:47:21.194+00:00
event_date date Дата создания родословной. Это секционированный столбец. 2025-04-20
record_id string Уникальный идентификатор записи происхождения. Это значение создается автоматически и не может быть присоединено к любым таблицам. 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id string Уникальный идентификатор для одного родословного события. Несколько строк могут совместно использовать одно и то же event_id , если они были созданы тем же событием. Это значение создается автоматически и не может быть присоединено к любым таблицам. ca123ff3-f3f8-332b-a832-0154a6327353
statement_id string Уникальный идентификатор инструкции запроса, создающей событие происхождения. Это внешний ключ для соединения с системной таблицей журнала запросов. Это значение задается только при выполнении запроса из хранилища SQL. 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struct Метаданные об сущности, ответственной за событие происхождения. Смотрите метаданные сущности
direct_access булевый Указывает, ссылается ли источник непосредственно на целевой объект запроса. Когда trueисточник напрямую подключен к целевому объекту запроса. Если falseисточник является промежуточной зависимостью, обнаруженной путем расширения представления. Например, если запрос считывается из представления, запись наследования для основной таблицы представления фиксируется с помощью direct_access = false. true

Таблица происхождения столбцов

Таблица происхождения столбцов не включает события, у которых нет источника. Например, при вставке в столбец с использованием явных значений он не фиксируется. Если вы считываете столбец, он записывается независимо от того, записываете ли вы выходные данные.

Путь к таблице: эта системная таблица расположена по адресу system.access.column_lineage.

схема происхождения столбцов

В системной таблице родословной столбцов используется следующая схема:

Имя столбца Тип данных Description Example
account_id string Идентификатор учетной записи Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id string Идентификатор хранилища метаданных каталога Unity. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id string Идентификатор рабочей области 123456789012345
entity_type string Тип сущности, связанной с записью происхождения, если таковой есть. Значение : NOTEBOOK, JOB, PIPELINEDASHBOARD_V3, DBSQL_DASHBOARD (не рекомендуется), DBSQL_QUERYили NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
JOB
entity_id string Идентификатор сущности, связанной с записью о происхождении, или NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
417306252667357
entity_run_id string Уникальный идентификатор выполнения сущности, связанной с записью происхождения, или NULL.
Примечание: Дополнительные сведения обо всех сущностях, участвующих в записи происхождения, см. в столбце entity_metadata.
688612062233399
source_table_full_name string Трехкомпонентное имя для идентификации исходной таблицы. catalog.schema.table
source_table_catalog string Каталог исходной таблицы. catalog
source_table_schema string Схема исходной таблицы. schema
source_table_name string Имя исходной таблицы. table
source_path string Расположение в облачном хранилище исходной таблицы или путь, если он считывается непосредственно из облачного хранилища. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type string Тип источника. Значение : TABLE, PATH, VIEWMATERIALIZED_VIEW, METRIC_VIEWили STREAMING_TABLE. TABLE
source_column_name string Имя исходного столбца. date
target_table_full_name string Трехкомпонентное имя для идентификации целевой таблицы. catalog.schema.table
target_table_catalog string Каталог целевой таблицы. catalog
target_table_schema string Схема целевой таблицы. schema
target_table_name string Имя целевой таблицы. table
target_path string Расположение в облачном хранилище целевой таблицы. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type string Тип цели. Значение : TABLE, PATH, VIEWMATERIALIZED_VIEW, METRIC_VIEWили STREAMING_TABLE. TABLE
target_column_name string Имя целевого столбца. date
created_by string Пользователь, создавший эту линиейку. Это может быть имя пользователя Azure Databricks, идентификатор служебного принципала Azure Databricks, имя группы Azure Databricks, “System-User” или NULL, если данные пользователя не могут быть записаны. crampton.rods@email.com
event_time timestamp Метка времени генерации родословной. Сведения о часовом поясе записываются в конце значения с +00:00, представляющей UTC. 2025-04-20T19:47:21.194+00:00
event_date date Дата создания родословной. Это секционированный столбец. 2025-04-20
record_id string Уникальный идентификатор записи происхождения. Это значение создается автоматически и не может быть присоединено к любым таблицам. 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id string Уникальный идентификатор для одного родословного события. Несколько строк могут совместно использовать одно и то же event_id , если они были созданы тем же событием. Это значение создается автоматически и не может быть присоединено к любым таблицам. ca123ff3-f3f8-332b-a832-0154a6327353
statement_id string Уникальный идентификатор инструкции запроса, создающей событие происхождения. Это внешний ключ для соединения с системной таблицей журнала запросов. Это значение задается только при выполнении запроса из хранилища SQL. 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struct Метаданные об сущности, ответственной за событие происхождения. Смотрите метаданные сущности
direct_access булевый Указывает, ссылается ли источник непосредственно на целевой объект запроса. Когда trueисточник напрямую подключен к целевому объекту запроса. Если falseисточник является промежуточной зависимостью, обнаруженной путем расширения представления. Например, если запрос считывается из представления, запись наследования для основной таблицы представления фиксируется с помощью direct_access = false. true

Чтение системных таблиц родословной

  • Чтобы определить, было ли событие чтением или записью, можно просмотреть исходный тип и целевой тип.
    • Только для чтения: исходный тип не имеет значения 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"
genie_space_id: "string"
alert_id: "string"

Azure Databricks записывает события происхождения из Декларативных конвейеров Lakeflow Spark, записных книжек, заданий, запросов Databricks SQL, панелей мониторинга, Genie Spaces и оповещений. События из других сущностей не поддерживаются.

В зависимости от типа события можно заполнить несколько значений. Например, задание, выполняющее задачу в записной книжке, обеспечивает заполнение обоих job_info и notebook_id.

Если все значения в entity_metadata и null равны, это означает, что в событии не участвуют сущности Azure Databricks. Например, это может быть результатом запроса JDBC или действия пользователя, щелкающего на вкладке Sample Data в интерфейсе Azure Databricks.

Пример таблицы системы родословной

В качестве примера того, как записывается происхождение в системных таблицах, представлен пример запроса вместе с записями происхождения, которые создает запрос.

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

Note

Не все столбцы происхождения показаны в приведенном выше примере. Для полной схемы см. приведенную выше схему родословной .

Устранение неполадок с запросами внешней таблицы

При ссылке на внешнюю таблицу с помощью пути к облачному хранилищу связанная запись происхождения содержит только имя пути, а не имя таблицы. Например, запись происхождения для этого запроса будет содержать имя пути, а не имя таблицы:

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_lineage на system.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"))