L'API searchLineageStreaming vous permet de rechercher la traçabilité des données multiniveaux et interrégionales, et de recevoir un graphique unifié sous forme de flux en temps réel. Vous pouvez créer des outils qui parcourent des architectures de données vastes, profondes ou multiprojets sans expiration des requêtes. Pour en savoir plus, consultez À propos de la recherche de traçabilité multirégionale.
Capacités clés
L'API searchLineageStreaming inclut les fonctionnalités suivantes :
Recherche en largeur : parcourt le graphique de traçabilité couche par couche en amont ou en aval d'un ensemble défini d'entités racines, en calculant avec précision la profondeur de chaque élément connecté.
Réponse en streaming : fournit des réponses fragmentées en temps réel contenant des sous-graphes et des liens de traçabilité à mesure que le système de backend les découvre. Contrairement aux API de recherche de traçabilité standards qui peuvent expirer sur des graphiques multiprojets volumineux, le streaming évite les délais avant expiration des requêtes sur des graphiques larges ou profonds.
Parcours multi-emplacement et multiprojet : bien que vous ne spécifiez qu'un seul projet de facturation dans le chemin d'accès de la requête, l'API découvre et parcourt automatiquement les liens de traçabilité dans plusieurs projets et emplacements géographiques Google Cloud , à condition que vous disposiez des autorisations requises.
Traçabilité précise au niveau des colonnes : permet de rechercher des dépendances au niveau des colonnes entre les éléments.
Recherches avec des caractères génériques : vous permet de récupérer l'intégralité de la traçabilité au niveau des colonnes pour une entité spécifique en ajoutant le suffixe
*au nom complet (FQN).Insights sur les pipelines : récupère éventuellement les métadonnées sur les pipelines de transformation (processus) qui ont créé les liens de traçabilité.
Avant de commencer
Avant d'envoyer des requêtes à l'API, assurez-vous de remplir les conditions préalables suivantes concernant la sécurité et l'environnement :
Rôles requis
Pour obtenir les autorisations nécessaires pour rechercher des liens de traçabilité des données, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de traçabilité des données (roles/datalineage.viewer) sur les projets dans lesquels les liens et les processus de traçabilité sont stockés.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour rechercher des liens de traçabilité des données. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour rechercher des liens de traçabilité des données :
-
Rechercher la traçabilité au niveau de l'entité :
datalineage.events.getsur le projet où le lien est stocké -
Rechercher la traçabilité au niveau des colonnes :
datalineage.events.getFieldssur le projet où le lien est stocké -
Récupérer les détails complets du processus de pipeline :
datalineage.processes.getsur le projet où le processus est stocké
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Définition du champ d'application des ressources
Lorsque vous configurez votre requête API, vous devez faire la distinction entre la ressource utilisée pour la facturation administrative et les emplacements réels analysés par l'API :
Chemin d'accès parent de facturation : le chemin d'accès
parentdans la requête d'URL doit utiliser le formatprojects/project/locations/location. Cette paire projet-emplacement spécifique est utilisée exclusivement pour évaluer les quotas de facturation et les limites de débit de l'API.Zones géographiques ciblées : définissez explicitement les régions que vous souhaitez que le backend analyse dans le tableau
locationsdu corps de la requête.
Configuration de l'authentification
Initialisez une variable d'environnement avec un jeton d'accès Google Cloud pour authentifier vos commandes curl :
export ACCESS_TOKEN=$(gcloud auth print-access-token)
Exemples d'utilisation
Les exemples suivants utilisent le point de terminaison datalineage.googleapis.com.
Rechercher une traçabilité multiniveau et multiprojet
Pour exécuter une recherche de traçabilité approfondie qui parcourt plusieurs profondeurs du graphique et analyse différents projets Google Cloud , définissez les variables suivantes :
Définissez
limits.maxDepthsur la profondeur de parcours cible (accepte les valeurs de1à100).Renseignez le tableau
locationsavec les régions cibles que vous souhaitez que le backend croise (par exemple,["us", "us-east1"]).
C#
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour C#.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Java.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Node.js.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Python.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration pour Ruby décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Ruby.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Pour rechercher la traçabilité des données, utilisez la méthode searchLineageStreaming.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Google Cloud utilisé pour la facturation administrative et l'évaluation des quotas.LOCATION_ID: emplacement Google Cloud , par exempleus-central1.SOURCE_PROJECT_ID: ID du projet Google Cloud dans lequel se trouve la table source.DATASET_ID: ID de l'ensemble de données BigQuery.TABLE_ID: ID de la table BigQuery.
Méthode HTTP et URL :
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
Corps JSON de la requête :
{
"parent": "projects/PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID",
"us-east1",
"us-central1"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:SOURCE_PROJECT_ID.DATASET_ID.TABLE_ID"
}
]
}
},
"direction": "DOWNSTREAM",
"limits": {
"maxDepth": 10,
"maxResults": 5000
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"links": [
{
"source": {
"fullyQualifiedName": "bigquery:project-prod.dataset.source_table"
},
"target": {
"fullyQualifiedName": "bigquery:project-prod.dataset.target_table"
},
"depth": 1,
"location": "us"
}
]
}
Rechercher plusieurs emplacements géographiques
Vous pouvez limiter ou étendre l'analyse de votre graphique de traçabilité en modifiant les régions géographiques transmises dans le champ de tableau répété locations.
C#
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour C#.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Java.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Python.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration pour Ruby décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Ruby.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Google Cloud utilisé pour la facturation administrative et l'évaluation des quotas.LOCATION_ID: emplacement Google Cloud , par exempleus-central1.SOURCE_PROJECT_ID: ID du projet Google Cloud dans lequel se trouve la table source.DATASET_ID: ID de l'ensemble de données BigQuery.TABLE_ID: ID de la table BigQuery.
Méthode HTTP et URL :
POST https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
Corps JSON de la requête :
{
"parent": "projects/PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID",
"us-east1",
"us-central1"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:SOURCE_PROJECT_ID.DATASET_ID.TABLE_ID"
}
]
}
},
"direction": "DOWNSTREAM",
"limits": {
"maxDepth": 10,
"maxResults": 5000
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"links": [
{
"source": {
"fullyQualifiedName": "bigquery:project-prod.dataset.source_table"
},
"target": {
"fullyQualifiedName": "bigquery:project-prod.dataset.target_table"
},
"depth": 1,
"location": "us"
}
]
}
Récupérer les noms de processus pour les liens de traçabilité
Par défaut, l'API omet les informations sur le processus (maxProcessPerLink est défini par défaut sur 0). Pour récupérer les noms de ressources des pipelines qui ont créé vos liaisons de données, configurez limits.maxProcessPerLink sur un entier positif non nul.
Exemple :
Java
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de la traçabilité des données à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Data Lineage pour Java.
Pour vous authentifier auprès de la traçabilité des données, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
BILLING_PROJECT_ID: projet Google Cloudutilisé pour la facturation administrative et l'évaluation des quotas. Indiquez un numéro ou un ID de projet.LOCATION_ID: emplacement Google Cloud où la recherche de traçabilité est effectuée.FULLY_QUALIFIED_NAME: nom complet (FQN) de l'entité cible, au formatbigquery:PROJECT_ID.DATASET_ID.TABLE_ID.
Méthode HTTP et URL :
POST https://datalineage.googleapis.com/v1/projects/BILLING_PROJECT_ID/locations/LOCATION_ID:searchLineageStreaming
Corps JSON de la requête :
{
"parent": "projects/BILLING_PROJECT_ID/locations/LOCATION_ID",
"locations": [
"LOCATION_ID"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "FULLY_QUALIFIED_NAME"
}
]
}
},
"direction": "UPSTREAM",
"limits": {
"maxProcessPerLink": 5
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Comportement de la réponse : le flux obtenu renseigne le champ links[].processes avec des messages de processus contenant uniquement leur nom de ressource système absolu (tel que projects/my-project/locations/us/processes/my-process).
Récupérer les détails complets d'un processus à l'aide d'un FieldMask
Si vous avez besoin de métadonnées structurelles complètes sur un pipeline (comme son displayName, son attributes système ou son origin d'exécution) au lieu de simplement son nom de ressource, vous devez utiliser une FieldMask d'API :
Indiquez une valeur non nulle pour
limits.maxProcessPerLink.Ajoutez un paramètre de requête
fieldsau chemin d'URL, en spécifiantlinks.processes.processainsi que d'autres champs obligatoires.
Exemple :
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-X POST "https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming?fields=links.processes.process,links.source,links.target,links.depth" \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.target_table"
}]
}
},
"direction": "UPSTREAM",
"limits": {
"maxProcessPerLink": 5
}
}'
Rechercher la traçabilité au niveau des tables et des colonnes
Vous pouvez rechercher la traçabilité au niveau des tables (au niveau des éléments) et au niveau des colonnes (au niveau des champs) dans une seule requête en fournissant plusieurs entités dans la liste rootCriteria.entities.entities :
Pour la traçabilité au niveau de la table, omettez le tableau
field.Pour la traçabilité au niveau des colonnes, spécifiez une seule colonne dans le tableau
field.
Exemple :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:my-project.dataset.table_a"
},
{
"fullyQualifiedName": "bigquery:my-project.dataset.table_b",
"field": ["email"]
}
]
}
},
"direction": "DOWNSTREAM"
}'
Utiliser des caractères génériques pour la traçabilité au niveau des colonnes
Pour rechercher l'ensemble de la traçabilité au niveau des colonnes disponible pour une table spécifique sans lister chaque colonne individuellement, utilisez le caractère générique * comme valeur unique dans le tableau field.
Exemple :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table",
"field": ["*"]
}]
}
},
"direction": "DOWNSTREAM"
}'
Filtrer les résultats de traçabilité
Vous pouvez affiner les résultats de votre recherche de traçabilité en utilisant le bloc filters dans le corps de la requête.
Filtrer par type de dépendance
Pour limiter les résultats à des types de dépendances spécifiques, tels que des copies directes (EXACT_COPY) ou des transformations telles que le filtrage et le regroupement (OTHER), utilisez le filtre dependencyTypes.
Exemple :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"dependencyTypes": ["EXACT_COPY"]
}
}'
Exclure la traçabilité au niveau des colonnes (recherche dans les tables uniquement)
Pour vous assurer que la recherche ne renvoie que la traçabilité au niveau de la table et exclut complètement la traçabilité au niveau de la colonne, définissez le filtre entitySet sur ENTITIES.
Exemple :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"entitySet": "ENTITIES"
}
}'
Filtrer par période
Vous pouvez limiter les résultats de recherche de traçabilité à un intervalle de temps spécifique.
Par exemple, pour rechercher des données de traçabilité créées après un code temporel spécifique, utilisez la requête suivante :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST https://datalineage.googleapis.com/v1/projects/my-billing-project/locations/us:searchLineageStreaming \
--data '{
"parent": "projects/my-billing-project/locations/us",
"locations": ["us"],
"rootCriteria": {
"entities": {
"entities": [{
"fullyQualifiedName": "bigquery:my-project.dataset.my_table"
}]
}
},
"direction": "DOWNSTREAM",
"filters": {
"timeRange": {
"startTime": "2026-01-01T00:00:00Z"
}
}
}'
Dépannage : gérer les emplacements inaccessibles et les graphiques partiels
Étant donné que l'API de streaming analyse simultanément un ensemble distribué de projets et d'emplacements, certaines régions distantes peuvent être temporairement indisponibles, ne pas communiquer ou être mal configurées pendant l'exécution.
Symptôme : la mise en page du graphique de traçabilité renvoyé semble incomplète ou il manque des sauts régionaux attendus.
Diagnostic : pour protéger l'intégrité des données, le flux
searchLineageStreamingResponserenseigne un champunreachabledédié (chaîne répétée) avec les emplacements problématiques, au formatprojects/PROJECT_NUMBER/locations/LOCATION(par exemple,projects/123456789/locations/us-east1).Bonne pratique : Créez toujours vos applications clientes pour inspecter le champ
unreachableafin de vérifier l'exhaustivité des données avant de traiter le graphique.
Étapes suivantes
En savoir plus sur la recherche de traçabilité multirégionale
En savoir plus sur la traçabilité des données
En savoir plus sur la visualisation de la traçabilité