Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта страница содержит ссылку на две системные таблицы происхождения. Эти системные таблицы создаются на основе функции происхождения данных каталога 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"))