Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta página incluye una referencia para las dos tablas del sistema de linaje. Estas tablas del sistema se basan en la característica de linaje de datos de Unity Catalog, lo que le permite consultar mediante programación los datos de linaje para impulsar la toma de decisiones e informes. Para acceder a las tablas, los esquemas deben estar habilitados dentro del catálogo system
. Para obtener más información, consulte Tablas del sistema de acceso.
Nota:
Ambas tablas de linaje representan un subconjunto de todos los eventos de lectura y escritura, ya que no siempre es posible capturar linaje. Los registros solo se emiten cuando se puede deducir el linaje.
Tabla de linaje de tabla
La tabla del sistema de linaje de tabla incluye un registro para cada evento de lectura o escritura en una tabla o ruta de acceso de Unity Catalog. Esto incluye, pero no se limita a, ejecuciones de trabajos, ejecuciones de cuadernos y paneles de control actualizados con el evento de lectura o escritura.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.access.table_lineage
.
Esquema de linaje de tabla
La tabla del sistema de linaje utiliza el esquema siguiente.
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
cadena | Identificador de la cuenta de Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
metastore_id |
cadena | Id. del metastore de Unity Catalog. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
source_table_full_name |
cadena | Nombre de tres partes para identificar la tabla de origen. | catalog.schema.table |
source_table_catalog |
cadena | Catálogo de la tabla de origen. | catalog |
source_table_schema |
cadena | Esquema de la tabla de origen. | schema |
source_table_name |
cadena | El nombre de la tabla de origen. | table |
source_path |
cadena | Ubicación en el almacenamiento en la nube de la tabla de origen o la ruta de acceso si se lee directamente desde el almacenamiento en la nube. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
source_type |
cadena | Tipo del origen. El valor es TABLE , PATH , VIEW o STREAMING_TABLE . |
TABLE |
target_table_full_name |
cadena | Nombre de tres partes para identificar la tabla de destino. | catalog.schema.table |
target_table_catalog |
cadena | Catálogo de la tabla de destino. | catalog |
target_table_schema |
cadena | Esquema de la tabla de destino. | schema |
target_table_name |
cadena | Nombre de la tabla de destino. | table |
target_path |
cadena | Ubicación en el almacenamiento en la nube de la tabla de destino. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
target_type |
cadena | Tipo del destino. El valor es TABLE , PATH , VIEW o STREAMING TABLE . |
TABLE |
created_by |
cadena | El usuario que generó este linaje. Puede ser un nombre de usuario de Azure Databricks, un id. de entidad de servicio de Azure Databricks, "Usuario del sistema" o NULL si no se puede capturar la información del usuario. |
crampton.rods@email.com |
event_time |
marca de tiempo | Marca de tiempo cuando se generó el linaje. La información de zona horaria se registra al final del valor con +00:00 , que representa la hora UTC. |
2025-04-20T19:47:21.194+00:00 |
event_date |
fecha | Fecha en la que se generó el linaje. Se trata de una columna con particiones. | 2025-04-20 |
record_id |
cadena | Identificador único del registro de linaje. Este valor se genera automáticamente y no se puede combinar con ninguna tabla. | 3c5c8eed-87bb-3aa6-8a86-80d00d48299e |
event_id |
cadena | Identificador único de un único evento de linaje. Varias filas pueden compartir lo mismo event_id si se generaron mediante el mismo evento. Este valor se genera automáticamente y no se puede combinar con ninguna tabla. |
ca123ff3-f3f8-332b-a832-0154a6327353 |
statement_id |
cadena | Identificador único de una instrucción de consulta que generó el evento de linaje. Se trata de una clave externa que se va a combinar con la tabla del sistema del historial de consultas. Este valor solo se establece cuando la consulta se ejecuta desde una instancia de SQL Warehouse. | 1234526f-a6ac-475c-8601-e8637f8ee039 |
entity_metadata |
Estructura | Metadatos sobre la entidad responsable del evento de linaje. | Consulte Metadatos de entidad. |
Nota:
Las columnas entity_type
, entity_run_id
y entity_id
han quedado en desuso. Para obtener una imagen completa de las entidades implicadas en el registro de linaje, use la entity_metadata
columna .
Tabla de linaje de columnas
La tabla de linaje de columnas no incluye eventos que no tienen un origen. Por ejemplo, si inserta en una columna usando valores explícitos, no se capturará. Si lee una columna, se captura si escribe o no la salida.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.access.column_lineage
.
Esquema de linaje de columna
La tabla del sistema de linaje de columnas usa el esquema siguiente:
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
cadena | Identificador de la cuenta de Azure Databricks. | 7af234db-66d7-4db3-bbf0-956098224879 |
metastore_id |
cadena | Id. del metastore de Unity Catalog. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
workspace_id |
cadena | Id. del área de trabajo | 123456789012345 |
source_table_full_name |
cadena | Nombre de tres partes para identificar la tabla de origen. | catalog.schema.table |
source_table_catalog |
cadena | Catálogo de la tabla de origen. | catalog |
source_table_schema |
cadena | Esquema de la tabla de origen. | schema |
source_table_name |
cadena | El nombre de la tabla de origen. | table |
source_path |
cadena | Ubicación en el almacenamiento en la nube de la tabla de origen o la ruta de acceso si se lee directamente desde el almacenamiento en la nube. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
source_type |
cadena | Tipo del origen. El valor es TABLE , PATH , VIEW o STREAMING_TABLE . |
TABLE |
source_column_name |
cadena | El nombre de la columna de origen. | date |
target_table_full_name |
cadena | Nombre de tres partes para identificar la tabla de destino. | catalog.schema.table |
target_table_catalog |
cadena | Catálogo de la tabla de destino. | catalog |
target_table_schema |
cadena | Esquema de la tabla de destino. | schema |
target_table_name |
cadena | Nombre de la tabla de destino. | table |
target_path |
cadena | Ubicación en el almacenamiento en la nube de la tabla de destino. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
target_type |
cadena | Tipo del destino. El valor es TABLE , PATH , VIEW o STREAMING TABLE . |
TABLE |
target_column_name |
cadena | El nombre de la columna de destino. | date |
created_by |
cadena | El usuario que generó este linaje. Puede ser un nombre de usuario de Azure Databricks, un id. de entidad de servicio de Azure Databricks, "Usuario del sistema" o NULL si no se puede capturar la información del usuario. |
crampton.rods@email.com |
event_time |
marca de tiempo | Marca de tiempo cuando se generó el linaje. La información de zona horaria se registra al final del valor con +00:00 , que representa la hora UTC. |
2025-04-20T19:47:21.194+00:00 |
event_date |
fecha | Fecha en la que se generó el linaje. Se trata de una columna con particiones. | 2025-04-20 |
record_id |
cadena | Identificador único del registro de linaje. Este valor se genera automáticamente y no se puede combinar con ninguna tabla. | 3c5c8eed-87bb-3aa6-8a86-80d00d48299e |
event_id |
cadena | Identificador único de un único evento de linaje. Varias filas pueden compartir lo mismo event_id si se generaron mediante el mismo evento. Este valor se genera automáticamente y no se puede combinar con ninguna tabla. |
ca123ff3-f3f8-332b-a832-0154a6327353 |
statement_id |
cadena | Identificador único de una instrucción de consulta que generó el evento de linaje. Se trata de una clave externa que se va a combinar con la tabla del sistema del historial de consultas. Este valor solo se establece cuando la consulta se ejecuta desde una instancia de SQL Warehouse. | 1234526f-a6ac-475c-8601-e8637f8ee039 |
entity_metadata |
Estructura | Metadatos sobre la entidad responsable del evento de linaje. | Consulte Metadatos de entidad. |
Nota:
Las columnas entity_type
, entity_run_id
y entity_id
han quedado en desuso. Para obtener una imagen completa de las entidades implicadas en el registro de linaje, use la entity_metadata
columna .
Leer las tablas del sistema de linaje
- Para determinar si el evento era de lectura o escritura, puede ver el tipo de origen y el tipo de destino.
- Solo lectura: el tipo de origen no es null, pero el tipo de destino es null.
- Solo escritura: el tipo de destino no es null, pero el tipo de origen es null.
- Lectura y escritura: el tipo de origen y el tipo de destino no son null.
Referencia de metadatos de entidad
La entity_metadata
estructura tiene el esquema siguiente:
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 registra eventos de linaje de las canalizaciones declarativas de Lakeflow, cuadernos, trabajos, consultas SQL de Databricks y paneles. No se admiten eventos de otras entidades.
Se pueden rellenar varios valores en función del tipo de evento. Por ejemplo, un trabajo que ejecuta una tarea de cuaderno rellenaría tanto job_info
como notebook_id
.
Si todos los valores de entity_metadata
son null
, significa que ninguna entidad de Azure Databricks estaba implicada en el evento . Por ejemplo, podría ser el resultado de una consulta JDBC o de un usuario haciendo clic en la pestaña Datos de ejemplo de la interfaz de usuario de Azure Databricks.
Ejemplo de tabla del sistema de linaje
Como ejemplo de cómo se registra el linaje en las tablas del sistema, a continuación se muestra una consulta de ejemplo seguida de los registros de linaje que crea la consulta:
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);
El registro en system.access.table_lineage
tendría el siguiente aspecto:
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 |
El registro en system.access.column_lineage
tendría el siguiente aspecto:
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 |
Nota:
No todas las columnas de linaje se muestran en el ejemplo anterior. Para obtener el esquema completo, consulte el esquema de linaje anterior.
Resolución de problemas de consultas a tablas externas
Cuando se hace referencia a una tabla externa utilizando su ruta de almacenamiento en la nube, el registro de linaje asociado solo incluye el nombre de la ruta y no el nombre de la tabla. Por ejemplo, el registro de linaje de esta consulta incluiría el nombre de la ruta y no el nombre de la tabla:
SELECT * FROM delta.`abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1`;
Si está intentando consultar los registros de linaje de una tabla externa a la que hace referencia la ruta de acceso, debe filtrar la consulta mediante source_path
o target_path
en lugar de source_table_full_name
o target_table_full_name
. Por ejemplo, la siguiente consulta extrae todos los registros de linaje de una tabla externa:
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";
Ejemplo: Recuperar registros de linaje basándose en el nombre de una tabla externa
Si no desea recuperar manualmente la ruta de acceso de almacenamiento en la nube para buscar linaje, puede usar la siguiente función para obtener datos de linaje mediante el nombre de la tabla. También puede sustituir system.access.table_lineage
con system.access.column_lineage
en la función si desea consultar el linaje de las columnas.
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)
)
A continuación, utilice el siguiente comando para llamar a la función y mostrar los registros de linaje de la tabla externa:
display(getLineageForTable("table_name"))