Una canalización de conectividad administrada en Workflows te permite extraer e importar metadatos de fuentes de datos de terceros personalizadas a Knowledge Catalog (antes Dataplex Universal Catalog). Puedes ejecutar la canalización a pedido o de forma recurrente para mantener sincronizado tu catálogo y poder descubrir, buscar y administrar tus recursos externos.
Para obtener más información sobre la conectividad administrada, consulta Descripción general de la conectividad administrada.
Antes de comenzar
Antes de importar metadatos, completa las tareas de esta sección.
Crea un conector
Un conector extrae los metadatos de tu fuente de datos y genera un archivo de importación de metadatos que Knowledge Catalog puede importar. El conector es una imagen de Artifact Registry que se puede ejecutar en Managed Service para Apache Spark.
Crea un conector personalizado que extraiga metadatos de tu fuente de terceros.
Para ver un ejemplo de conector que puedes usar como plantilla de referencia para compilar tu propio conector, consulta Desarrolla un conector personalizado para la importación de metadatos.
Configura recursos de Google Cloud
-
Habilita las APIs de Workflows, Dataproc, Cloud Storage, Dataplex, Secret Manager, Artifact Registry y Cloud Scheduler, si aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.Si no planeas ejecutar la canalización de forma programada, no es necesario que habilites la API de Cloud Scheduler.
Crea secretos en Secret Manager para almacenar las credenciales de tu fuente de datos de terceros.
Configura tu red de nube privada virtual (VPC) para ejecutar cargas de trabajo de Managed Service para Apache Spark.
Crea un bucket de Cloud Storage para almacenar los archivos de importación de metadatos.
Crea los siguientes recursos de Knowledge Catalog:
Crea tipos de aspectos personalizados para las entradas que quieras importar.
Crea tipos de entradas personalizados para las entradas que quieras importar.
Roles obligatorios
Una cuenta de servicio representa la identidad de un flujo de trabajo y determina qué permisos tiene el flujo de trabajo y a qué recursos de Google Cloud puede acceder. Necesitas una cuenta de servicio para Workflows (para ejecutar la canalización) y para Managed Service para Apache Spark (para ejecutar el conector).
Puedes usar la cuenta de servicio predeterminada de Compute Engine
(PROJECT_NUMBER-compute@developer.gserviceaccount.com) o crear tu propia cuenta de servicio
(o cuentas) para ejecutar la canalización de conectividad administrada.
Console
En la consola de Google Cloud , dirígete a la página IAM.
Selecciona el proyecto al que quieres importar los metadatos.
Haz clic en Otorgar acceso y, luego, ingresa la dirección de correo electrónico de la cuenta de servicio.
Asigna los siguientes roles a la cuenta de servicio:
- Escritor de registros (
roles/logging.logWriter) - Propietario del grupo de entradas de Dataplex (
roles/dataplex.entryGroupOwner) - Propietario de trabajos de metadatos de Dataplex (
roles/dataplex.metadataJobOwner) - Editor del catálogo de Dataplex (
roles/dataplex.catalogEditor) - Editor de Dataproc (
roles/dataproc.editor) - Trabajador de Dataproc (
roles/dataproc.worker) - Descriptor de acceso a secretos de Secret Manager (
roles/secretmanager.secretAccessor): en el secreto que almacena las credenciales de tu fuente de datos - Usuario de objetos de almacenamiento (
roles/storage.objectUser): en el bucket de Cloud Storage - Lector de Artifact Registry (
roles/artifactregistry.reader): En el repositorio de Artifact Registry que contiene la imagen del conector - Usuario de cuenta de servicio (
roles/iam.serviceAccountUser): Si usas cuentas de servicio diferentes, otorga a la cuenta de servicio que ejecuta Workflows este rol en la cuenta de servicio que ejecuta los trabajos por lotes de Managed Service para Apache Spark. - Invocador de Workflows (
roles/workflows.invoker): si quieres programar la canalización
- Escritor de registros (
Guarda los cambios.
gcloud
Otorga roles a la cuenta de servicio. Ejecuta los siguientes comandos:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.workerReemplaza lo siguiente:
-
PROJECT_ID: Es el nombre del proyecto de destino Google Cloud en el que se importarán los metadatos. SERVICE_ACCOUNT_ID: Es la cuenta de servicio, comomy-service-account@my-project.iam.gserviceaccount.com.
-
Otorga a la cuenta de servicio los siguientes roles a nivel del recurso:
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretAccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/artifactregistry.readerReemplaza lo siguiente:
SECRET_ID: Es el ID del secreto que almacena las credenciales de tu fuente de datos. Usa el formatoprojects/PROJECT_ID/secrets/SECRET_ID.BUCKET_ID: Es el nombre del bucket de Cloud Storage.REPOSITORY: Es el repositorio de Artifact Registry que contiene la imagen del conector.REPOSITORY_LOCATION: Es la ubicación de Google Cloud en la que se aloja el repositorio.
Otorga a la cuenta de servicio que ejecuta Workflows el rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio que ejecuta los trabajos por lotes de Managed Service para Apache Spark. Debes otorgar este rol incluso si usas la misma cuenta de servicio para Workflows y Managed Service para Apache Spark.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role='roles/iam.serviceAccountUser'Si usas cuentas de servicio diferentes, el valor de la marca
--memberes la cuenta de servicio que ejecuta los trabajos por lotes de Managed Service para Apache Spark.Si deseas programar la canalización, otorga a la cuenta de servicio el rol de Invocador de Workflows (
roles/workflows.invoker):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Importar metadatos
Para importar metadatos, crea y, luego, ejecuta un flujo de trabajo que ejecute la canalización de conectividad administrada. Esta canalización extrae metadatos de tu fuente de datos personalizada, crea los grupos de entradas necesarios y, luego, importa los metadatos a Knowledge Catalog. También puedes crear un programa para ejecutar la canalización.
Console
Crea el flujo de trabajo. Proporciona la siguiente información:
- Cuenta de servicio: es la cuenta de servicio que configuraste en la sección Roles obligatorios de este documento.
Encriptación: selecciona Google-managed encryption key.
Define el flujo de trabajo: Proporciona el siguiente archivo de definición:
Para ejecutar la canalización a pedido, ejecuta el flujo de trabajo.
Proporciona los siguientes argumentos del entorno de ejecución:
Reemplaza lo siguiente:
-
PROJECT_ID: Es el nombre del proyecto de destino Google Cloud en el que se importarán los metadatos. -
LOCATION_ID: Es la ubicación de segmentación Google Cloud en la que se ejecutarán los trabajos de importación de metadatos y de Managed Service para Apache Spark, y en la que se importarán los metadatos. -
ENTRY_GROUP_ID: Es el ID del grupo de entradas al que se importarán los metadatos. El ID del grupo de entradas puede contener letras minúsculas, números y guiones.El nombre completo del recurso de este grupo de entradas es
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: Si deseas que la canalización cree el grupo de entradas si aún no existe en tu proyecto, establece este valor entrue. -
BUCKET_ID: Es el nombre del bucket de Cloud Storage para almacenar el archivo de importación de metadatos que genera el conector. Cada ejecución del flujo de trabajo crea una carpeta nueva. -
SERVICE_ACCOUNT_ID: es la cuenta de servicio que configuraste en la sección Roles obligatorios de este documento. La cuenta de servicio ejecuta el conector en Managed Service para Apache Spark. -
ADDITIONAL_CONNECTOR_ARGUMENTS: Es una lista de argumentos adicionales que se pasarán al conector. Para ver ejemplos, consulta Desarrolla un conector personalizado para la importación de metadatos. Encierra cada argumento entre comillas dobles y sepáralos con comas. -
CONTAINER_IMAGE: Es la imagen de contenedor personalizada del conector alojado en Artifact Registry. -
ENTRY_TYPES: Es una lista de tipos de entradas que están dentro del alcance de la importación, en el formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
ASPECT_TYPES: Es una lista de tipos de aspectos que están dentro del alcance de la importación, con el formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
Opcional: Para el argumento
NETWORK_TAGS, proporciona una lista de etiquetas de red. -
Opcional: Para el argumento
NETWORK_URI, proporciona el URI de la red de VPC que se conecta a la fuente de datos. Si proporcionas una red, omite el argumento de subred. -
Opcional: Para el argumento
SUBNETWORK_URI, proporciona el URI de la subred que se conecta a la fuente de datos. Si proporcionas una subred, omite el argumento de red.
Según la cantidad de metadatos que importes, la canalización puede tardar varios minutos o más en ejecutarse. Para obtener más información sobre cómo ver el progreso, consulta Accede a los resultados de la ejecución del flujo de trabajo.
Una vez que la canalización haya terminado de ejecutarse, podrás buscar los metadatos importados en Knowledge Catalog.
-
Opcional: Si deseas ejecutar la canalización según un programa, crea un programa con Cloud Scheduler. Proporciona la siguiente información:
- Frecuencia: Es una expresión Unix-cron que define el programa para ejecutar la canalización.
- Argumento del flujo de trabajo: Son los argumentos del entorno de ejecución para el conector, como se describe en el paso anterior.
- Cuenta de servicio: Es la cuenta de servicio. La cuenta de servicio administra el programador.
gcloud
Guarda la siguiente definición de carga de trabajo como un archivo YAML:
Define las variables de Bash, crea el flujo de trabajo y, de manera opcional, crea un programa para ejecutar la canalización:
Reemplaza lo siguiente:
-
PROJECT_ID: Es el nombre del proyecto de destino Google Cloud en el que se importarán los metadatos. -
LOCATION_ID: Es la ubicación de segmentación Google Cloud en la que se ejecutarán los trabajos de importación de metadatos y de Managed Service para Apache Spark, y en la que se importarán los metadatos. -
SERVICE_ACCOUNT_ID: es la cuenta de servicio que configuraste en la sección Roles obligatorios de este documento. WORKFLOW_DEFINITION_FILE: Es la ruta de acceso al archivo YAML de definición del flujo de trabajo.WORKFLOW_NAME: Es el nombre del flujo de trabajo.WORKFLOW_ARGUMENTS: Son los argumentos del entorno de ejecución que se pasarán al conector. Los argumentos están en formato JSON:Para Cloud Scheduler, las comillas dobles dentro de la cadena entre comillas se escapan con barras inversas (\). Por ejemplo:
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}".Reemplaza lo siguiente:
-
ENTRY_GROUP_ID: Es el ID del grupo de entradas al que se importarán los metadatos. El ID del grupo de entradas puede contener letras minúsculas, números y guiones.El nombre completo del recurso de este grupo de entradas es
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: Si deseas que la canalización cree el grupo de entradas si aún no existe en tu proyecto, establece este valor entrue. -
BUCKET_ID: Es el nombre del bucket de Cloud Storage para almacenar el archivo de importación de metadatos que genera el conector. Cada ejecución del flujo de trabajo crea una carpeta nueva. -
ADDITIONAL_CONNECTOR_ARGUMENTS: Es una lista de argumentos adicionales que se pasarán al conector. Para ver ejemplos, consulta Desarrolla un conector personalizado para la importación de metadatos. -
CONTAINER_IMAGE: Es la imagen de contenedor personalizada del conector alojado en Artifact Registry. -
ENTRY_TYPES: Es una lista de tipos de entradas que están dentro del alcance de la importación, en el formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
ASPECT_TYPES: Es una lista de tipos de aspectos que están dentro del alcance de la importación, con el formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
Opcional: Para el argumento
NETWORK_TAGS, proporciona una lista de etiquetas de red. -
Opcional: Para el argumento
NETWORK_URI, proporciona el URI de la red de VPC que se conecta a la fuente de datos. Si proporcionas una red, omite el argumento de subred. -
Opcional: Para el argumento
SUBNETWORK_URI, proporciona el URI de la subred que se conecta a la fuente de datos. Si proporcionas una subred, omite el argumento de red.
-
CRON_SCHEDULE_EXPRESSION: Es una expresión cron que define el programa para ejecutar la canalización. Por ejemplo, para ejecutar el programa a medianoche todos los días, usa la expresión0 0 * * *.
-
Para ejecutar la canalización a pedido, ejecuta el flujo de trabajo:
Los argumentos del flujo de trabajo están en formato JSON, pero no se les aplica escape.
Según la cantidad de metadatos que importes, el flujo de trabajo puede tardar varios minutos o más en ejecutarse. Para obtener más información sobre cómo ver el progreso, consulta Accede a los resultados de la ejecución del flujo de trabajo.
Una vez que la canalización haya terminado de ejecutarse, podrás buscar los metadatos importados en Knowledge Catalog.
Terraform
Clona el repositorio
cloud-dataplex.El repositorio incluye los siguientes archivos de Terraform:
main.tf: Define los recursos de Google Cloud que se crearán.variables.tf: declara las variables.byo-connector.tfvars: define las variables para tu canalización de conectividad administrada.
Edita el archivo
.tfvarspara reemplazar los marcadores de posición por la información de tu conector.Reemplaza lo siguiente:
-
PROJECT_ID: Es el nombre del proyecto de destino Google Cloud en el que se importarán los metadatos. -
LOCATION_ID: Es la ubicación de segmentación Google Cloud en la que se ejecutarán los trabajos de importación de metadatos y de Managed Service para Apache Spark, y en la que se importarán los metadatos. -
SERVICE_ACCOUNT_ID: es la cuenta de servicio que configuraste en la sección Roles obligatorios de este documento. -
CRON_SCHEDULE_EXPRESSION: Es una expresión cron que define el programa para ejecutar la canalización. Por ejemplo, para ejecutar el programa a medianoche todos los días, usa la expresión0 0 * * *. -
ENTRY_GROUP_ID: Es el ID del grupo de entradas al que se importarán los metadatos. El ID del grupo de entradas puede contener letras minúsculas, números y guiones.El nombre completo del recurso de este grupo de entradas es
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. -
CREATE_ENTRY_GROUP_BOOLEAN: Si deseas que la canalización cree el grupo de entradas si aún no existe en tu proyecto, establece este valor entrue. -
BUCKET_ID: Es el nombre del bucket de Cloud Storage para almacenar el archivo de importación de metadatos que genera el conector. Cada ejecución del flujo de trabajo crea una carpeta nueva. -
ADDITIONAL_CONNECTOR_ARGUMENTS: Es una lista de argumentos adicionales que se pasarán al conector. Para ver ejemplos, consulta Desarrolla un conector personalizado para la importación de metadatos. Encierra cada argumento entre comillas dobles y sepáralos con comas. -
CONTAINER_IMAGE: Es la imagen de contenedor personalizada del conector alojado en Artifact Registry. -
ENTRY_TYPES: Es una lista de tipos de entradas que están dentro del alcance de la importación, en el formatoprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
ASPECT_TYPES: Es una lista de tipos de aspectos que están dentro del alcance de la importación, con el formatoprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. LaLOCATION_IDdebe ser la misma ubicación deGoogle Cloud a la que importas los metadatos oglobal. -
Opcional: Para el argumento
NETWORK_TAGS, proporciona una lista de etiquetas de red. -
Opcional: Para el argumento
NETWORK_URI, proporciona el URI de la red de VPC que se conecta a la fuente de datos. Si proporcionas una red, omite el argumento de subred. -
Opcional: Para el argumento
SUBNETWORK_URI, proporciona el URI de la subred que se conecta a la fuente de datos. Si proporcionas una subred, omite el argumento de red.
-
Inicializa Terraform mediante este comando:
terraform initValida Terraform con tu archivo
.tfvars:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvarsReemplaza
CONNECTOR_VARIABLES_FILEpor el nombre del archivo de definiciones de variables.Implementa Terraform con tu archivo
.tfvars:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvarsTerraform crea un flujo de trabajo y un trabajo de Cloud Scheduler en el proyecto especificado. Workflows ejecuta la canalización según el programa que especifiques.
Según la cantidad de metadatos que importes, el flujo de trabajo puede tardar varios minutos o más en ejecutarse. Para obtener más información sobre cómo ver el progreso, consulta Accede a los resultados de la ejecución del flujo de trabajo.
Una vez que la canalización haya terminado de ejecutarse, podrás buscar los metadatos importados en Knowledge Catalog.
Ver registros de trabajos
Usa Cloud Logging para ver los registros de una canalización de conectividad administrada. La carga útil del registro incluye un vínculo a los registros del trabajo por lotes de Managed Service para Apache Spark y el trabajo de importación de metadatos, según corresponda. Para obtener más información, consulta Visualiza los registros de flujo de trabajo.
Soluciona problemas
Usa las siguientes sugerencias para solucionar problemas:
- Configura el nivel de registro del trabajo de importación para que el trabajo de metadatos use el registro de nivel de depuración en lugar del registro de nivel de información.
- Revisa los registros del trabajo por lotes de Managed Service para Apache Spark (para las ejecuciones del conector) y el trabajo de importación de metadatos. Para obtener más información, consulta Consulta los registros de Managed Service para Apache Spark y Consulta los registros de trabajos de metadatos.
- Si no se puede importar una entrada con la canalización y el mensaje de error no proporciona suficiente información, intenta crear una entrada personalizada con los mismos detalles en un grupo de entradas de prueba. Para obtener más información, consulta Crea una entrada personalizada.
¿Qué sigue?
- Acerca de la administración de metadatos en Knowledge Catalog
- Desarrolla un conector personalizado para la importación de metadatos