Puedes habilitar o inhabilitar de manera selectiva la transferencia de metadatos de linaje para integraciones específicas a nivel del proyecto, la carpeta o la organización.
Para obtener más información sobre las integraciones compatibles y los casos de configuración, consulta Controla la transferencia del linaje de datos.
Requisitos previos
Para controlar la transferencia del linaje, debes usar la API de Data Lineage. Asegúrate de tener un proyecto del cliente configurado para la facturación y la cuota, ya que la API de Data Lineage es una API basada en el cliente.
Roles y permisos
Para obtener los permisos que necesitas para configurar y controlar la transferencia de linaje de datos, pídele a tu administrador que te otorgue los siguientes roles de Identity and Access Management (IAM):
Para obtener los permisos que necesitas para configurar y controlar la transferencia de linaje de datos, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Configurar y administrar el linaje de datos:
Administrador de linaje de datos (
roles/datalineage.admin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para configurar y controlar la transferencia de linaje de datos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para configurar y controlar la transferencia de linaje de datos:
-
Obtén y actualiza la configuración del linaje:
-
datalineage.configs.get -
datalineage.configs.update
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Habilita la API de
datalineage.googleapis.comen tu proyecto cliente. Para obtener más información, consulta Cómo habilitar el linaje de datos.Configura el proyecto del cliente. En los siguientes ejemplos, usa el encabezado
X-Goog-User-Project. Para obtener más información, consulta Parámetros del sistema.
Obtén la configuración actual
Para verificar si la transferencia de metadatos de linaje está habilitada para un recurso o para obtener el valor de etag antes de modificar la configuración, recupera la configuración actual.
C#
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# que encontrarás en la guía de inicio rápido de Knowledge Catalog sobre cómo usar las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Knowledge Catalog C#.
Para autenticarte en Knowledge Catalog, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Knowledge Catalog sobre cómo usar las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Knowledge Catalog Go.
Para autenticarte en Knowledge Catalog, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Knowledge Catalog sobre cómo usar las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Knowledge Catalog Java.
Para autenticarte en Knowledge Catalog, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Knowledge Catalog sobre cómo usar las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Knowledge Catalog Python.
Para autenticarte en Knowledge Catalog, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
gcloud
Para ver la configuración actual del linaje, usa el comando gcloud datalineage config describe. Puedes recuperar la configuración de un proyecto, una carpeta o una organización.
En el siguiente ejemplo, se muestra cómo obtener la configuración del proyecto actual:
gcloud datalineage config describe
Por ejemplo, para obtener la configuración de un proyecto específico, usa la marca --project:
gcloud datalineage config describe --project=PROJECT_ID
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto cuya configuración deseas ver.
Para ver la configuración actual de la transferencia de metadatos de linaje de un servicio para una carpeta o una organización, reemplaza --project= por uno de los siguientes valores:PROJECT_ID
--folder=si deseas ver la configuración de la transferencia de datos de una carpeta.FOLDER_ID--organization=si deseas ver la configuración de transferencia de datos de una organización.ORGANIZATION_ID
REST
Para ver la configuración actual del linaje, usa el método projects.locations.config.get. Puedes recuperar la configuración de un proyecto, una carpeta o una organización.
En el siguiente ejemplo, se muestra cómo obtener la configuración de un proyecto:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
CLIENT_PROJECT_ID: Es el ID de tu proyecto de cliente que se usa para la facturación o las cuotas.PROJECT_ID: ID del proyecto cuya configuración deseas ver.
Método HTTP y URL:
GET https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Para enviar tu solicitud, expande una de estas opciones:
El comando devuelve uno de los siguientes resultados:
- Si no proporcionas ningún parámetro de configuración de la transferencia de metadatos de linaje, obtendrás un resultado con un objeto
ingestionvacío:{ "name": "projects/123456789012/locations/global/config", "ingestion": {} }
Esto significa que el servicio usa el parámetro de configuración predeterminado de la transferencia de metadatos de linaje. En este ejemplo, el parámetro de configuración de la transferencia de metadatos de linaje para Managed Service para Apache Spark es
enabled. - Si habilitas la transferencia de metadatos de linaje de forma explícita, obtendrás el siguiente resultado:
{ "name": "projects/123456789012/locations/global/config", "ingestion": { "rules": [ { "integrationSelector": { "integration": "DATAPROC" }, "lineageEnablement": { "enabled": true } } ] }, "etag": "1a2b3c4d5e" }
- Si la transferencia de metadatos de linaje está inhabilitada, obtendrás el siguiente resultado:
{ "name": "projects/123456789012/locations/global/config", "ingestion": { "rules": [ { "integrationSelector": { "integration": "DATAPROC" }, "lineageEnablement": { "enabled": false } } ] }, "etag": "1a2b3c4d5e" }
Para obtener la configuración de una carpeta o una organización, reemplaza projects/ por "PROJECT_IDfolders/ o FOLDER_IDorganizations/.ORGANIZATION_ID
El campo etag de la respuesta es una suma de comprobación que genera el servidor en función del valor actual de la configuración. Cuando actualizas una configuración con el método patch, puedes incluir el valor etag que se devolvió de una solicitud get reciente en el cuerpo de la solicitud. Si proporcionas el etag, Knowledge Catalog lo usa para verificar que la configuración no haya cambiado desde tu última solicitud de lectura. Si hay una discrepancia, la solicitud de actualización falla. Esto evita que sobrescribas de forma accidental las configuraciones realizadas por otros usuarios en situaciones de lectura-modificación-escritura. Si no proporcionas un etag en tu solicitud de patch, Knowledge Catalog sobrescribe la configuración de forma incondicional.
Inhabilita la transferencia de datos de linaje para un servicio
Para administrar los costos, aplicar políticas de administración de datos o excluir proyectos de desarrollo y otras cargas de trabajo que no se benefician del seguimiento del linaje, inhabilita la transferencia del linaje para un servicio.
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
Para inhabilitar la transferencia de metadatos de linaje para un servicio específico, usa el comando gcloud datalineage config update con una cadena JSON intercalada o una ruta de acceso a un archivo JSON que establezca lineageEnablement.enabled en false para el integration específico.
En el siguiente ejemplo, se muestra cómo inhabilitar la transferencia de metadatos de linaje de un servicio para un proyecto con una cadena JSON intercalada:
gcloud datalineage config update --project=PROJECT_ID \
--config='{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "ETAG"
}'
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto cuya configuración deseas actualizar.INTEGRATION: Es la integración para la que estableciste la configuración. Por ejemplo,DATAPROCoBIGQUERY.ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente en el cuerpo de la solicitud y que se usa para verificar que la configuración no haya cambiado desde tu última solicitud de lectura.
Para actualizar la configuración con un archivo JSON, ejecuta el siguiente comando:
gcloud datalineage config update --project=PROJECT_ID --config=CONFIG_FILE
Reemplaza lo siguiente:
CONFIG_FILE: Es la ruta de acceso al archivo JSON que contiene la configuración.
Para inhabilitar la transferencia de metadatos de linaje de un servicio para una carpeta o una organización, reemplaza --project= por uno de los siguientes valores:PROJECT_ID
--folder=si deseas actualizar la configuración de transferencia de datos de una carpetaFOLDER_ID--organization=si deseas actualizar la configuración de la transferencia de datos de una organización.ORGANIZATION_ID
REST
Para inhabilitar la transferencia de metadatos de linaje para un servicio específico, usa el método projects.locations.config.patch con una regla de transferencia que establezca lineageEnablement.enabled en false para el integration específico.
Para evitar que se reemplacen de forma accidental las configuraciones realizadas por otros usuarios en situaciones de lectura-modificación-escritura, puedes incluir el campo etag en el cuerpo de la solicitud. Para obtener más información, consulta Cómo obtener la configuración actual.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
CLIENT_PROJECT_ID: Es el ID de tu proyecto de cliente que se usa para la facturación o las cuotas.PROJECT_ID: Es el ID del proyecto cuya configuración deseas actualizar.ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente.INTEGRATION: Es elintegrationpara el que estableces la configuración. Por ejemplo,DATAPROC.
HTTP method and URL:
PATCH https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Cuerpo JSON de la solicitud:
{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "ETAG"
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"name": "projects/PROJECT_ID/locations/global/config",
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": false
}
}
]
},
"etag": "1a2b3c4d5e"
}
Para inhabilitar la transferencia de metadatos de linaje para una carpeta o una organización, reemplaza projects/ por "PROJECT_IDfolders/ o FOLDER_IDorganizations/.ORGANIZATION_ID
Habilita la transferencia de datos de linaje para un servicio
Para reanudar el seguimiento después de inhabilitarlo o habilitar una integración que está inhabilitada de forma predeterminada, habilita la transferencia de datos de linaje para un servicio.
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
Para habilitar la transferencia de metadatos de linaje para un servicio específico, usa el comando gcloud datalineage config update con una cadena JSON intercalada o una ruta de acceso a un archivo JSON que establezca lineageEnablement.enabled en true para el integration específico. Las integraciones actuales incluyen Managed Service para Apache Spark, BigQuery y Managed Airflow.
En el siguiente ejemplo, se muestra cómo habilitar la transferencia de metadatos de linaje de un servicio para un proyecto con una cadena JSON intercalada:
gcloud datalineage config update --project=PROJECT_ID \
--config='{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "ETAG"
}'
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto cuya configuración deseas actualizar.INTEGRATION: Es la integración para la que estableces la configuración (por ejemplo,DATAPROCoBIGQUERY).ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente en el cuerpo de la solicitud y que se usa para verificar que la configuración no haya cambiado desde tu última solicitud de lectura.
Para actualizar la configuración con un archivo JSON, ejecuta el siguiente comando:
gcloud datalineage config update --project=PROJECT_ID --config=CONFIG_FILE
Reemplaza lo siguiente:
CONFIG_FILE: Es la ruta de acceso al archivo JSON que contiene la configuración.
Para habilitar la transferencia de metadatos de linaje de un servicio para una carpeta o una organización, reemplaza --project= por uno de los siguientes valores:PROJECT_ID
--folder=si deseas actualizar la configuración de transferencia de datos de una carpetaFOLDER_ID--organization=si deseas actualizar la configuración de la transferencia de datos de una organización.ORGANIZATION_ID
REST
Para habilitar la transferencia de metadatos de linaje para un servicio específico, usa el método projects.locations.config.patch con una regla de transferencia que establezca lineageEnablement.enabled en true para el integration específico.
Para evitar que se reemplacen de forma accidental las configuraciones realizadas por otros usuarios en situaciones de lectura-modificación-escritura, puedes incluir el campo etag en el cuerpo de la solicitud. Para obtener más información, consulta Cómo obtener la configuración actual.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
CLIENT_PROJECT_ID: Es el ID de tu proyecto de cliente que se usa para la facturación o las cuotas.PROJECT_ID: Es el ID del proyecto cuya configuración deseas actualizar.ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente.INTEGRATION: Es elintegrationpara el que estableces la configuración. Por ejemplo,DATAPROC.
HTTP method and URL:
PATCH https://datalineage.googleapis.com/v1/projects/PROJECT_ID/locations/global/config
Cuerpo JSON de la solicitud:
{
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "ETAG"
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"name": "projects/PROJECT_ID/locations/global/config",
"ingestion": {
"rules": [
{
"integrationSelector": {
"integration": "INTEGRATION"
},
"lineageEnablement": {
"enabled": true
}
}
]
},
"etag": "1a2b3c4d5e"
}
Para habilitar la transferencia de metadatos de linaje de un servicio para una carpeta o una organización, reemplaza projects/ por PROJECT_IDfolders/ o FOLDER_IDorganizations/.ORGANIZATION_ID
Configura la transferencia de metadatos de linaje para varios servicios
Para configurar la transferencia de metadatos de linaje para varias integraciones de forma simultánea, usa los métodos projects.locations.config.patch, folders.locations.config.patch o organizations.locations.config.patch. Puedes actualizar la configuración a nivel de proyecto, organización o carpeta definiendo varias reglas en el cuerpo de la solicitud. Para obtener más información, consulta Cómo funciona la configuración de la transferencia de datos para las integraciones de varios servicios.
Nivel de la organización
Configura la organización para habilitar la transferencia de metadatos de linaje para Managed Service para 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"
}'
Reemplaza lo siguiente:
ORGANIZATION_ID: Es el ID de la organización cuya configuración deseas actualizar.CLIENT_PROJECT_ID: Es el ID de tu proyecto cliente que se usa para la facturación o las cuotas.ORGANIZATION_CONFIG_ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente para la configuración de la organización.
Nivel de carpeta
Configura la carpeta para habilitar la transferencia de metadatos de linaje para 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"
}'
Reemplaza lo siguiente:
FOLDER_ID: Es el ID de la carpeta cuya configuración deseas actualizar.CLIENT_PROJECT_ID: Es el ID de tu proyecto cliente que se usa para la facturación o las cuotas.FOLDER_CONFIG_ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente para la configuración de la carpeta.
Nivel de proyecto
Configura el proyecto para inhabilitar la transferencia de metadatos de linaje para BigQuery y habilitar la transferencia de metadatos de linaje para Managed Service para Apache Airflow de forma simultánea:
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"
}'
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto cuya configuración deseas actualizar.CLIENT_PROJECT_ID: Es el ID de tu proyecto cliente que se usa para la facturación o las cuotas.PROJECT_CONFIG_ETAG: Es el valor deetagque se devolvió de una solicitudgetreciente para la configuración del proyecto.
¿Qué sigue?
- Obtén más información para controlar la transferencia del linaje de datos.
- Obtén más información para ver la información del linaje.