- HTTP request
- Path parameters
- Request body
- Response body
- Authorization scopes
- IAM Permissions
- RootCriteria
- SearchDirection
- SearchFilters
- EntitySet
- Interval
- SearchLimits
- LineageLink
- LineageProcess
- DependencyInfo
- Try it!
Retrieves a streaming response of lineage links connected to the requested assets by performing a breadth-first search in the given direction. Links represent the data flow between source (upstream) and target (downstream) assets in transformation pipelines. Links are stored in the same project as the Lineage Events that create them. This method retrieves links from all valid locations provided in the request. This method supports Column-Level Lineage (CLL) along with wildcard support to retrieve all CLL for an Entity FQN.
Following permissions are required to retrieve links: * datalineage.events.get permission for the project where the link is stored for entity-level lineage. * datalineage.events.getFields permission for the project where the link is stored for column-level lineage.
This method also returns processes that created the links if explicitly requested by setting maxProcessPerLink is non-zero and full process details are requested via links.processes.process in the FieldMask.
Permission required to retrieve processes: * datalineage.processes.get permission for the project where the process is stored.
HTTP request
POST https://datalineage.googleapis.com/v1/{parent}:searchLineageStreaming Path parameters
| Parameters | |
|---|---|
parent |
Required. The project and location to initiate the search from. It takes the form |
Request body
The request body contains data with the following structure:
| JSON representation |
|---|
{ "locations": [ string ], "rootCriteria": { object ( |
| Fields | |
|---|---|
locations[] |
Required. The locations to search in. This list should contain the location from the |
rootCriteria |
Required. Criteria for the root of the search. |
direction |
Required. Direction of the search. |
filters |
Optional. Filters for the search. |
limits |
Optional. Limits for the search. |
Response body
Response message for locations.searchLineageStreaming.
If successful, the response body contains data with the following structure:
| JSON representation |
|---|
{
"links": [
{
object ( |
| Fields | |
|---|---|
links[] |
Output only. The lineage links that match the search criteria. Can be empty if no links match. |
unreachable[] |
Unordered list. Unreachable resources. If non-empty, the result set might be incomplete. Currently, only locations are supported. Format: |
Authorization scopes
Requires one of the following OAuth scopes:
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/datalineage.readonlyhttps://www.googleapis.com/auth/datalineage.read-write
For more information, see the Authentication Overview.
IAM Permissions
Requires the following IAM permission on the parent resource:
datalineage.locations.searchLinks
For more information, see the IAM documentation.
RootCriteria
Criteria for the root of the search.
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field criteria. Criteria for the root of the search. criteria can be only one of the following: |
|
entities |
Optional. The entities to initiate the search from. Entities can be specified by FQN only, or by FQN and field. To search by FQN and all available fields for that FQN, use the wildcard |
SearchDirection
Direction of the search.
| Enums | |
|---|---|
SEARCH_DIRECTION_UNSPECIFIED |
Direction is unspecified. |
DOWNSTREAM |
Retrieve links that lead from the specified asset to downstream assets. |
UPSTREAM |
Retrieve links that lead from upstream assets to the specified asset. |
SearchFilters
Filters for the search.
| JSON representation |
|---|
{ "dependencyTypes": [ enum ( |
| Fields | |
|---|---|
dependencyTypes[] |
Optional. Types of dependencies between entities to retrieve. If unspecified, all dependency types are returned. |
entitySet |
Optional. Entity set restriction. If unspecified, the method returns all entities. |
timeRange |
Optional. Time interval to search for lineage. If unspecified, all lineage is returned. Currently, at most one of |
EntitySet
Entity set restriction.
| Enums | |
|---|---|
ENTITY_SET_UNSPECIFIED |
The entity set is unspecified. Returns all the data. |
ENTITIES |
Returns entities with only FQN specified. For example, entities with the field field set are not returned. |
Interval
Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive).
The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.
| JSON representation |
|---|
{ "startTime": string, "endTime": string } |
| Fields | |
|---|---|
startTime |
Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
endTime |
Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
SearchLimits
Limits for the search results.
| JSON representation |
|---|
{ "maxDepth": integer, "maxResults": integer, "maxProcessPerLink": integer } |
| Fields | |
|---|---|
maxDepth |
Optional. The maximum depth of the search. The default value is 5 and maximum value is 100. |
maxResults |
Optional. The maximum number of links to return in the response. The default value is 1_000 and the maximum value is 10_000. |
maxProcessPerLink |
Optional. The maximum number of processes to return per link. The default value is 0 and the maximum value is 100. If this value is non-zero, the response will contain process names for the links. To retrieve full process details in the response, include |
LineageLink
Lineage link between two entities.
| JSON representation |
|---|
{ "source": { object ( |
| Fields | |
|---|---|
source |
The entity that is the source of this link. |
target |
The entity that is the target of this link. |
processes[] |
Processes metadata associated with the link. |
dependencyInfo[] |
Describes how the target entity is dependent on the source entity. |
depth |
Depth of the current link in the graph starting from 1. |
location |
The location where the LineageEvent that created the link is stored. |
LineageProcess
Process metadata for the link.
| JSON representation |
|---|
{
"process": {
object ( |
| Fields | |
|---|---|
process |
Process that created the link. |
DependencyInfo
Dependency info describes how one entity is dependent on another.
| JSON representation |
|---|
{
"dependencyType": enum ( |
| Fields | |
|---|---|
dependencyType |
The type of dependency. |