Vous pouvez activer ou désactiver de manière sélective l'ingestion de traçabilité pour des intégrations spécifiques au niveau du projet, du dossier ou de l'organisation.
Pour en savoir plus sur les intégrations et les scénarios de configuration compatibles, consultez Contrôler l'ingestion de la traçabilité des données.
Prérequis
Pour contrôler l'ingestion de la traçabilité, vous devez utiliser l'API Data Lineage. Assurez-vous d'avoir configuré un projet client pour la facturation et les quotas, car l'API Data Lineage est une API basée sur le client.
Rôles et autorisations
Pour obtenir les autorisations nécessaires pour configurer et contrôler l'ingestion de la traçabilité des données, demandez à votre administrateur de vous accorder les rôles IAM (Identity and Access Management) suivants :
Pour obtenir les autorisations nécessaires pour configurer et contrôler l'ingestion de la traçabilité des données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Configurer et gérer la traçabilité des données : Administrateur de la traçabilité des données (
roles/datalineage.admin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour configurer et contrôler l'ingestion de la traçabilité des données. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour configurer et contrôler l'ingestion de la traçabilité des données :
-
Obtenir et mettre à jour les configurations de lignée :
-
datalineage.configs.get -
datalineage.configs.update
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activez l'API
datalineage.googleapis.comdans votre projet client. Pour en savoir plus, consultez Activer la traçabilité des données.Définissez le projet client. Pour les exemples suivants, utilisez l'en-tête
X-Goog-User-Project. Pour en savoir plus, consultez Paramètres système.
Obtenir la configuration actuelle
Pour vérifier si l'ingestion de la traçabilité est activée pour une ressource ou pour obtenir la valeur etag avant de modifier la configuration, récupérez la configuration actuelle.
C#
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# du guide de démarrage rapide de Knowledge Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Knowledge Catalog pour C#.
Pour vous authentifier auprès de Knowledge Catalog, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de Knowledge Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Knowledge Catalog pour Go.
Pour vous authentifier auprès de Knowledge Catalog, 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 du guide de démarrage rapide de Knowledge Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Knowledge Catalog pour Java.
Pour vous authentifier auprès de Knowledge Catalog, 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 du guide de démarrage rapide de Knowledge Catalog à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Knowledge Catalog pour Python.
Pour vous authentifier auprès de Knowledge Catalog, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
gcloud
Pour afficher la configuration actuelle de la traçabilité, utilisez la commande gcloud datalineage config describe. Vous pouvez récupérer la configuration d'un projet, d'un dossier ou d'une organisation.
L'exemple suivant montre comment obtenir la configuration du projet actuel :
gcloud datalineage config describe
Par exemple, pour obtenir la configuration d'un projet spécifique, utilisez l'indicateur --project :
gcloud datalineage config describe --project=PROJECT_ID
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dont vous souhaitez afficher la configuration.
Pour afficher la configuration actuelle d'ingestion de la traçabilité d'un service pour un dossier ou une organisation, remplacez --project= par l'une des valeurs suivantes :PROJECT_ID
--folder=si vous souhaitez afficher les paramètres d'ingestion de données d'un dossier.FOLDER_ID--organization=si vous souhaitez afficher les paramètres d'ingestion de données pour une organisation.ORGANIZATION_ID
REST
Pour afficher la configuration actuelle de la traçabilité, utilisez la méthode projects.locations.config.get. Vous pouvez récupérer la configuration d'un projet, d'un dossier ou d'une organisation.
L'exemple suivant montre comment obtenir la configuration d'un projet :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.PROJECT_ID: ID du projet dont vous souhaitez afficher la configuration.
Méthode HTTP et URL :
GET https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Pour envoyer votre requête, développez l'une des options suivantes :
La commande renvoie l'un des résultats suivants :
- Si vous ne fournissez aucun paramètre d'ingestion de la traçabilité, vous obtenez un résultat avec un objet
ingestionvide :{ "name": "projects/123456789012/locations/global/config", "ingestion": {} }
Cela signifie que le service utilise le paramètre d'ingestion de la traçabilité par défaut. Dans cet exemple, le paramètre d'ingestion de la traçabilité pour Managed Service pour Apache Spark est
enabled. - Si vous activez explicitement l'ingestion de la traçabilité, vous obtenez le résultat suivant :
{ "name": "projects/123456789012/locations/global/config", "ingestion": { "rules": [ { "integrationSelector": { "integration": "DATAPROC" }, "lineageEnablement": { "enabled": true } } ] }, "etag": "1a2b3c4d5e" }
- Si l'ingestion de la traçabilité est désactivée, vous obtenez le résultat suivant :
{ "name": "projects/123456789012/locations/global/config", "ingestion": { "rules": [ { "integrationSelector": { "integration": "DATAPROC" }, "lineageEnablement": { "enabled": false } } ] }, "etag": "1a2b3c4d5e" }
Pour obtenir la configuration d'un dossier ou d'une organisation, remplacez projects/ par "PROJECT_IDfolders/ ou FOLDER_IDorganizations/.ORGANIZATION_ID
Le champ etag de la réponse est une somme de contrôle générée par le serveur en fonction de la valeur actuelle de la configuration. Lorsque vous mettez à jour une configuration à l'aide de la méthode patch, vous pouvez inclure la valeur etag renvoyée par une requête get récente dans le corps de la requête. Si vous fournissez le etag, Knowledge Catalog l'utilise pour vérifier que la configuration n'a pas changé depuis votre dernière requête de lecture. Si les informations ne correspondent pas, la demande de mise à jour échoue. Cela vous empêche de remplacer involontairement les configurations effectuées par d'autres utilisateurs dans les scénarios de lecture-modification-écriture. Si vous ne fournissez pas de etag dans votre requête patch, Knowledge Catalog écrase la configuration de manière inconditionnelle.
Désactiver l'ingestion de traçabilité pour un service
Pour gérer les coûts, appliquer des règles de gouvernance des données ou exclure les projets de développement et autres charges de travail qui ne bénéficient pas du suivi de la traçabilité, désactivez l'ingestion de la traçabilité pour un service.
Java
package com.google.cloud.datacatalog.lineage.configmanagement.v1.samples;
import com.google.api.gax.rpc.NotFoundException;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.IntegrationSelector;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.LineageEnablement;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.ConfigManagementServiceClient;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.ConfigName;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.GetConfigRequest;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.UpdateConfigRequest;
public class DisableLineageIngestion {
public static void main(String[] args) throws Exception {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String location = "global";
disableLineageIngestion(projectId, location);
}
// Disables lineage ingestion for a specific service
// (Managed Service for Apache Spark).
public static void disableLineageIngestion(String projectId, String location) throws Exception {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
try (ConfigManagementServiceClient client = ConfigManagementServiceClient.create()) {
// Format the resource name.
String name = ConfigName.ofProjectLocationName(projectId, location).toString();
Config.Builder configBuilder = Config.newBuilder().setName(name);
// It is a best practice to read the existing config to preserve other rules
// and use the etag for optimistic concurrency control.
try {
GetConfigRequest getRequest = GetConfigRequest.newBuilder().setName(name).build();
Config existingConfig = client.getConfig(getRequest);
configBuilder.mergeFrom(existingConfig);
} catch (NotFoundException e) {
// If config doesn't exist, we will proceed by creating a new one.
}
// Create an integration selector for the service you want to disable.
IntegrationSelector selector =
IntegrationSelector.newBuilder().setIntegration(Integration.DATAPROC).build();
// Set lineage enablement to false to disable tracking.
LineageEnablement enablement = LineageEnablement.newBuilder().setEnabled(false).build();
// Build the ingestion rule.
IngestionRule disableRule =
IngestionRule.newBuilder()
.setIntegrationSelector(selector)
.setLineageEnablement(enablement)
.build();
// Preserve existing rules except for the one we are modifying, then add the new rule.
// We clear the ingestion block out of the configBuilder entirely to reconstruct it.
Ingestion.Builder ingestionBuilder = Ingestion.newBuilder();
if (configBuilder.hasIngestion()) {
for (IngestionRule rule : configBuilder.getIngestion().getRulesList()) {
// Keep all existing rules EXCEPT the one targeting DATAPROC
if (rule.getIntegrationSelector().getIntegration() != Integration.DATAPROC) {
ingestionBuilder.addRules(rule);
}
}
}
ingestionBuilder.addRules(disableRule);
// Update the config builder with the reconstructed ingestion settings.
configBuilder.setIngestion(ingestionBuilder.build());
// Build the update request.
UpdateConfigRequest request = UpdateConfigRequest.newBuilder()
.setConfig(configBuilder.build())
.build();
// Update the config.
Config response = client.updateConfig(request);
System.out.printf("Successfully updated config: %s\n", response.getName());
}
}
}
Python
from google.api_core.exceptions import NotFound
from google.cloud.datacatalog.lineage import configmanagement_v1
def disable_lineage_ingestion(project_id: str, location: str = "global") -> configmanagement_v1.Config:
"""Disables lineage ingestion for a specific service.
Args:
project_id: The ID of your Google Cloud project.
location: The region location, usually 'global'.
Returns:
The updated Configuration object.
"""
# Initialize client that will be used to send requests.
client = configmanagement_v1.ConfigManagementServiceClient()
# The config name format
name = f"projects/{project_id}/locations/{location}/config"
try:
# Retrieve the existing config to preserve other configurations and
# obtain the latest etag for optimistic concurrency control.
config = client.get_config(name=name)
# Filter out existing rules for the integration we are updating
new_rules = [
rule for rule in config.ingestion.rules
if rule.integration_selector.integration != configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration.DATAPROC
]
except NotFound:
# If the config does not exist, start fresh
config = configmanagement_v1.Config(name=name)
new_rules = []
# Define the integration to disable tracking for (e.g., DATAPROC).
integration_selector = configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector(
integration=configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration.DATAPROC
)
# Set lineage enablement to False to disable tracking.
lineage_enablement = configmanagement_v1.Config.Ingestion.IngestionRule.LineageEnablement(
enabled=False
)
# Create the ingestion rule.
disable_rule = configmanagement_v1.Config.Ingestion.IngestionRule(
integration_selector=integration_selector,
lineage_enablement=lineage_enablement,
)
# Append the new disabling rule and assign it back to the config ingestion rules
new_rules.append(disable_rule)
config.ingestion = configmanagement_v1.Config.Ingestion(rules=new_rules)
# Create the update request using the config (which includes the etag if it existed).
request = configmanagement_v1.UpdateConfigRequest(
config=config,
)
# Make the request to update the config
response = client.update_config(request=request)
print(f"Successfully updated config: {response.name}")
return response
gcloud
Pour désactiver l'ingestion de la traçabilité pour un service spécifique, utilisez la commande gcloud datalineage config update avec une chaîne JSON intégrée ou un chemin d'accès à un fichier JSON qui définit lineageEnablement.enabled sur false pour le integration spécifique.
L'exemple suivant montre comment désactiver l'ingestion de la traçabilité d'un service pour un projet à l'aide d'une chaîne JSON intégrée :
gcloud datalineage config update --project=PROJECT_ID \
--config='{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "ETAG"
}'
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dont vous souhaitez mettre à jour la configuration.INTEGRATION: intégration pour laquelle vous avez défini la configuration. Par exemple,DATAPROCouBIGQUERY.ETAG: valeuretagrenvoyée par une requêtegetrécente dans le corps de la requête, utilisée pour vérifier que la configuration n'a pas changé depuis votre dernière requête de lecture.
Pour mettre à jour la configuration à l'aide d'un fichier JSON, exécutez la commande suivante :
gcloud datalineage config update --project=PROJECT_ID --config=CONFIG_FILE
Remplacez les éléments suivants :
CONFIG_FILE: chemin d'accès au fichier JSON contenant la configuration.
Pour désactiver l'ingestion de la traçabilité d'un service pour un dossier ou une organisation, remplacez --project= par l'une des valeurs suivantes :PROJECT_ID
--folder=si vous souhaitez mettre à jour les paramètres d'ingestion de données pour un dossier.FOLDER_ID--organization=si vous souhaitez mettre à jour les paramètres d'ingestion de données pour une organisation.ORGANIZATION_ID
REST
Pour désactiver l'ingestion de la traçabilité pour un service spécifique, utilisez la méthode projects.locations.config.patch avec une règle d'ingestion qui définit lineageEnablement.enabled sur false pour le integration spécifique.
Pour éviter d'écraser involontairement les configurations effectuées par d'autres utilisateurs dans les scénarios de lecture-modification-écriture, vous pouvez inclure le champ etag dans le corps de la requête. Pour en savoir plus, consultez Obtenir la configuration actuelle.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.PROJECT_ID: ID du projet dont vous souhaitez mettre à jour la configuration.ETAG: valeuretagrenvoyée par une requêtegetrécente.INTEGRATION:integrationpour lequel vous avez défini la configuration. Par exemple,DATAPROC.
Méthode HTTP et URL :
PATCH https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Corps JSON de la requête :
{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "ETAG"
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/global/config",
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "1a2b3c4d5e"
}
Pour désactiver l'ingestion de la traçabilité pour un dossier ou une organisation, remplacez projects/ par "PROJECT_IDfolders/ ou FOLDER_IDorganizations/.ORGANIZATION_ID
Activer l'ingestion de la traçabilité pour un service
Pour reprendre le suivi après l'avoir désactivé ou pour activer une intégration désactivée par défaut, activez l'ingestion de la traçabilité pour un service.
Java
package com.google.cloud.datacatalog.lineage.configmanagement.v1.samples;
import com.google.api.gax.rpc.NotFoundException;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.IntegrationSelector;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.Config.Ingestion.IngestionRule.LineageEnablement;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.ConfigManagementServiceClient;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.ConfigName;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.GetConfigRequest;
import com.google.cloud.datacatalog.lineage.configmanagement.v1.UpdateConfigRequest;
public class EnableLineageIngestion {
public static void main(String[] args) throws Exception {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String location = "global";
enableLineageIngestion(projectId, location);
}
// Enables lineage ingestion for a specific service
// (Managed Service for Apache Spark).
public static void enableLineageIngestion(String projectId, String location) throws Exception {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests.
try (ConfigManagementServiceClient client = ConfigManagementServiceClient.create()) {
// Format the resource name.
String name = ConfigName.ofProjectLocationName(projectId, location).toString();
Config.Builder configBuilder = Config.newBuilder().setName(name);
// It is a best practice to read the existing config to preserve other rules
// and use the etag for optimistic concurrency control.
try {
GetConfigRequest getRequest = GetConfigRequest.newBuilder().setName(name).build();
Config existingConfig = client.getConfig(getRequest);
configBuilder.mergeFrom(existingConfig);
} catch (NotFoundException e) {
// If config doesn't exist, we will proceed by creating a new one.
}
// Create an integration selector for the service you want to enable (e.g., DATAPROC).
IntegrationSelector selector =
IntegrationSelector.newBuilder().setIntegration(Integration.DATAPROC).build();
// Set lineage enablement to true to enable tracking.
LineageEnablement enablement = LineageEnablement.newBuilder().setEnabled(true).build();
// Build the ingestion rule.
IngestionRule enableRule =
IngestionRule.newBuilder()
.setIntegrationSelector(selector)
.setLineageEnablement(enablement)
.build();
// Preserve existing rules except for the one we are modifying, then add the new rule.
// We clear the ingestion block out of the configBuilder entirely to reconstruct it.
Ingestion.Builder ingestionBuilder = Ingestion.newBuilder();
if (configBuilder.hasIngestion()) {
for (IngestionRule rule : configBuilder.getIngestion().getRulesList()) {
// Keep all existing rules EXCEPT the one targeting DATAPROC
if (rule.getIntegrationSelector().getIntegration() != Integration.DATAPROC) {
ingestionBuilder.addRules(rule);
}
}
}
ingestionBuilder.addRules(enableRule);
// Update the config builder with the reconstructed ingestion settings.
configBuilder.setIngestion(ingestionBuilder.build());
// Build the update request.
UpdateConfigRequest request = UpdateConfigRequest.newBuilder()
.setConfig(configBuilder.build())
.build();
// Update the config.
Config response = client.updateConfig(request);
System.out.printf("Successfully updated config: %s\n", response.getName());
}
}
}
Python
from google.api_core.exceptions import NotFound
from google.cloud.datacatalog.lineage import configmanagement_v1
def enable_lineage_ingestion(project_id: str, location: str = "global") -> configmanagement_v1.Config:
"""Enables lineage ingestion for a specific service like Dataproc
(Managed Service for Apache Spark).
Args:
project_id: The ID of your Google Cloud project.
location: The region location, usually 'global'.
Returns:
The updated Configuration object.
"""
# Initialize client that will be used to send requests.
client = configmanagement_v1.ConfigManagementServiceClient()
# The config name format
name = f"projects/{project_id}/locations/{location}/config"
try:
# Retrieve the existing config to preserve other configurations and
# obtain the latest etag for optimistic concurrency control.
config = client.get_config(name=name)
# Filter out existing rules for the integration we are updating
new_rules = [
rule for rule in config.ingestion.rules
if rule.integration_selector.integration != configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration.DATAPROC
]
except NotFound:
# If the config does not exist, start fresh
config = configmanagement_v1.Config(name=name)
new_rules = []
# Define the integration to enable tracking for (e.g., DATAPROC).
integration_selector = configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector(
integration=configmanagement_v1.Config.Ingestion.IngestionRule.IntegrationSelector.Integration.DATAPROC
)
# Set lineage enablement to True to enable tracking.
lineage_enablement = configmanagement_v1.Config.Ingestion.IngestionRule.LineageEnablement(
enabled=True
)
# Create the ingestion rule.
enable_rule = configmanagement_v1.Config.Ingestion.IngestionRule(
integration_selector=integration_selector,
lineage_enablement=lineage_enablement,
)
# Append the new enabling rule and assign it back to the config ingestion rules
new_rules.append(enable_rule)
config.ingestion = configmanagement_v1.Config.Ingestion(rules=new_rules)
# Create the update request using the config (which includes the etag if it existed).
request = configmanagement_v1.UpdateConfigRequest(
config=config,
)
# Make the request to update the config
response = client.update_config(request=request)
print(f"Successfully updated config: {response.name}")
return response
gcloud
Pour activer l'ingestion de la traçabilité pour un service spécifique, utilisez la commande gcloud datalineage config update avec une chaîne JSON intégrée ou un chemin d'accès à un fichier JSON qui définit lineageEnablement.enabled sur true pour le integration spécifique. Les intégrations actuelles incluent Managed Service pour Apache Spark, BigQuery et Managed Airflow.
L'exemple suivant montre comment activer l'ingestion de la traçabilité d'un service pour un projet à l'aide d'une chaîne JSON intégrée :
gcloud datalineage config update --project=PROJECT_ID \
--config='{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "ETAG"
}'
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dont vous souhaitez mettre à jour la configuration.INTEGRATION: intégration pour laquelle vous avez défini la configuration (par exemple,DATAPROCouBIGQUERY).ETAG: valeuretagrenvoyée par une requêtegetrécente dans le corps de la requête, utilisée pour vérifier que la configuration n'a pas changé depuis votre dernière requête de lecture.
Pour mettre à jour la configuration à l'aide d'un fichier JSON, exécutez la commande suivante :
gcloud datalineage config update --project=PROJECT_ID --config=CONFIG_FILE
Remplacez les éléments suivants :
CONFIG_FILE: chemin d'accès au fichier JSON contenant la configuration.
Pour activer l'ingestion de la traçabilité d'un service pour un dossier ou une organisation, remplacez --project= par l'une des options suivantes :PROJECT_ID
--folder=si vous souhaitez mettre à jour les paramètres d'ingestion de données pour un dossier.FOLDER_ID--organization=si vous souhaitez mettre à jour les paramètres d'ingestion de données pour une organisation.ORGANIZATION_ID
REST
Pour activer l'ingestion de la traçabilité pour un service spécifique, utilisez la méthode projects.locations.config.patch avec une règle d'ingestion qui définit lineageEnablement.enabled sur true pour le integration spécifique.
Pour éviter d'écraser involontairement les configurations effectuées par d'autres utilisateurs dans les scénarios de lecture-modification-écriture, vous pouvez inclure le champ etag dans le corps de la requête. Pour en savoir plus, consultez Obtenir la configuration actuelle.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.PROJECT_ID: ID du projet dont vous souhaitez mettre à jour la configuration.ETAG: valeuretagrenvoyée par une requêtegetrécente.INTEGRATION:integrationpour lequel vous avez défini la configuration. Par exemple,DATAPROC.
Méthode HTTP et URL :
PATCH https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Corps JSON de la requête :
{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "ETAG"
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/global/config",
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "1a2b3c4d5e"
}
Pour activer l'ingestion de la traçabilité d'un service pour un dossier ou une organisation, remplacez projects/ par PROJECT_IDfolders/ ou FOLDER_IDorganizations/.ORGANIZATION_ID
Configurer l'ingestion de la traçabilité pour plusieurs services
Pour configurer l'ingestion de la traçabilité pour plusieurs intégrations simultanément, utilisez les méthodes projects.locations.config.patch, folders.locations.config.patch ou organizations.locations.config.patch. Vous pouvez mettre à jour la configuration au niveau du projet, du dossier ou de l'organisation en définissant plusieurs règles dans le corps de la requête. Pour en savoir plus, consultez Fonctionnement de la configuration de l'ingestion de données pour les intégrations multiservices.
Niveau Organisation
Configurez l'organisation pour activer l'ingestion de la traçabilité pour Managed Service pour Apache Spark :
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "X-Goog-User-Project: CLIENT_PROJECT_ID" \
"https://datalineage.googleapis.com/v1/organizations/ORGANIZATION_ID/locations/global/config" \
-d '{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "DATAPROC"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "ORGANIZATION_CONFIG_ETAG"
}'
Remplacez les éléments suivants :
ORGANIZATION_ID: ID de l'organisation dont vous souhaitez mettre à jour la configuration.CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.ORGANIZATION_CONFIG_ETAG: valeuretagrenvoyée par une requêtegetrécente pour la configuration de l'organisation.
Niveau Dossier
Configurez le dossier pour activer l'ingestion de la traçabilité pour BigQuery :
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "X-Goog-User-Project: CLIENT_PROJECT_ID" \
"https://datalineage.googleapis.com/v1/folders/FOLDER_ID/locations/global/config" \
-d '{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "BIGQUERY"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "FOLDER_CONFIG_ETAG"
}'
Remplacez les éléments suivants :
FOLDER_ID: ID du dossier dont vous souhaitez mettre à jour la configuration.CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.FOLDER_CONFIG_ETAG: valeuretagrenvoyée par une récente requêtegetpour la configuration du dossier.
Niveau Projet
Configurez le projet pour désactiver l'ingestion de la traçabilité pour BigQuery et activer l'ingestion de la traçabilité pour Managed Service pour Apache Airflow simultanément :
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "X-Goog-User-Project: CLIENT_PROJECT_ID" \
"https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config" \
-d '{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "BIGQUERY"
},
"lineageEnablement": {
"enabled": false
}
},
{
"integrationSelector": {
"integration": "MANAGED_AIRFLOW"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "PROJECT_CONFIG_ETAG"
}'
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dont vous souhaitez mettre à jour la configuration.CLIENT_PROJECT_ID: ID de votre projet client utilisé pour la facturation ou les quotas.PROJECT_CONFIG_ETAG: valeuretagrenvoyée par une requêtegetrécente pour la configuration du projet.
Étapes suivantes
- Découvrez comment contrôler l'ingestion de la traçabilité des données.
- Découvrez comment afficher les informations sur la traçabilité.