Cambiar al glosario de empresa en Dataplex Universal Catalog

En este documento se explica cómo migrar de la versión preliminar del glosario de empresa, que admitía metadatos de Data Catalog, a la versión disponible del glosario de empresa, que admite metadatos de Dataplex Universal Catalog. Para llevar a cabo el proceso de transición, debe exportar glosarios, categorías, términos y enlaces de Data Catalog y, a continuación, importarlos a Dataplex Universal Catalog.

Para cambiar al glosario de empresa en Dataplex Universal Catalog, sigue estos pasos:

  1. Exportar glosarios y enlaces de entradas de Data Catalog.
  2. Importa glosarios, categorías y términos a Dataplex Universal Catalog.
  3. Importa las vinculaciones entre términos a Dataplex Universal Catalog.
  4. Importa las vinculaciones entre términos y columnas a Dataplex Universal Catalog.
.

Antes de empezar

Instala gcloud o paquetes de Python.

Roles obligatorios

Para exportar un glosario de Data Catalog, debes tener el rol roles/datacatalog.glossaryOwner en los proyectos en los que esté presente el glosario. Consulta los permisos necesarios para este rol.

Para obtener los permisos que necesitas para importar el glosario de empresa a Dataplex Universal Catalog, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Dataplex (roles/dataplex.admin) en los proyectos. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para importar el glosario empresarial a Dataplex Universal Catalog. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para importar un glosario de empresa a Dataplex Universal Catalog, se necesitan los siguientes permisos:

  • dataplex.glossaries.import en el recurso de glosario
  • dataplex.entryGroups.import en el grupo de entradas de Dataplex Universal Catalog proporcionado en el campo entry_groups y en los grupos de entradas en los que se encuentran las entradas de Data Catalog vinculadas a los términos del glosario.
  • dataplex.entryGroups.useSynonymEntryLink en el grupo de entradas de Dataplex Universal Catalog proporcionado en el campo entry_groups y en los grupos de entradas en los que se encuentran las entradas de Data Catalog vinculadas a los términos del glosario.
  • dataplex.entryGroups.useRelatedEntryLink en el grupo de entradas de Dataplex Universal Catalog proporcionado en el campo entry_groups y en los grupos de entradas en los que se encuentran las entradas de Data Catalog vinculadas a los términos del glosario.
  • dataplex.entryLinks.reference en todos los proyectos proporcionados en el campo referenced_entry_scopes

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Exportar glosarios, categorías y términos de Data Catalog

Solo puedes exportar un glosario a la vez.

  1. Clona el repositorio dataplex-labs y, a continuación, cambia al subdirectorio business-glossary-import:

    git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
    cd dataplex-labs
    cd dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-import
    
  2. Obtén tu token de acceso:

    export GCLOUD_ACCESS_TOKEN=$(gcloud auth print-access-token)
    
  3. Ejecuta la secuencia de comandos de exportación:

    python3 bg_import/business_glossary_export_v2.py \
    --user-project="PROJECT_ID" \
    --url="DATA_CATALOG_GLOSSARY_URL"

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene el glosario.
    • DATA_CATALOG_GLOSSARY_URL: URL del glosario de empresa de Data Catalog en la consola.

    La secuencia de comandos crea un archivo JSON con el mismo formato que el archivo de importación de metadatos que se usa en los trabajos de importación de metadatos. Los nombres del glosario, las categorías y los términos utilizan los siguientes formatos:

    • Glosario: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID
    • Plazo: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/terms/TERM_ID
    • Categoría: projects/PROJECT_NUMBER/locations/LOCATION_ID/entryGroups/@dataplex/entries/projects/PROJECT_NUMBER/locations/LOCATION_ID/glossaries/GLOSSARY_ID/categories/CATEGORY_ID

    GLOSSARY_ID, CATEGORY_ID, TERM_ID, PROJECT_NUMBER y LOCATION_ID son los mismos valores que los del glosario de Data Catalog.

Importar glosarios, categorías y términos

Debes importar los glosarios, las categorías y los términos de Dataplex Universal Catalog que hayas exportado en el paso anterior. En esta sección se describe cómo importar datos mediante la API de trabajos de metadatos.

  1. Crea un segmento de Cloud Storage y, a continuación, sube el archivo al segmento.

  2. Concede a la cuenta de servicio de Dataplex Universal Catalog acceso de lectura al segmento de Cloud Storage.

  3. Ejecuta una tarea de importación de metadatos para importar el glosario.

    # Set GCURL alias
    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    # Import CURL Command
    gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/metadataJobs\?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
    {
    "type":"IMPORT",
    "import_spec":{
        "log_level": "DEBUG",
        "source_storage_uri": "gs://STORAGE_BUCKET/",
        "entry_sync_mode": "FULL",
        "aspect_sync_mode": "INCREMENTAL",
        "scope": {
          "glossaries": ["projects/PROJECT_NUMBER/locations/global/glossaries/GLOSSARY_ID"]
        }
    }
    }
    EOF
    )"

    Haz los cambios siguientes:

    • JOB_ID: (opcional) ID de un trabajo de importación de metadatos que puede usar para monitorizar el estado del trabajo. Si no proporcionas un ID, el comando gcurl generará un ID único.
    • STORAGE_BUCKET: el URI del segmento o la carpeta de Cloud Storage que contiene el archivo de glosario exportado.
    • PROJECT_NUMBER: el número de proyecto que contiene el glosario.
  4. Opcional: Para hacer un seguimiento del estado del trabajo de importación de metadatos, utiliza el método metadataJobs.get:

    gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/metadataJobs/JOB_ID

    Si se produce algún error en el trabajo de importación de metadatos, aparecerá en los registros.

Importar enlaces entre términos a Dataplex Universal Catalog

Debes importar los enlaces entre los términos exportados en el paso anterior. En esta sección se describe cómo importar datos mediante la API de tareas de metadatos.

  1. Crea un segmento de Cloud Storage y sube a él el archivo de enlaces de entrada exportado en el paso anterior.

  2. Concede a la cuenta de servicio de Dataplex Universal Catalog acceso de lectura al segmento de Cloud Storage.

  3. Ejecuta una tarea de importación de metadatos para importar los enlaces de entrada:

    # Import CURL Command
    gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/global/metadataJobs?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
    {
    "type": "IMPORT",
    "import_spec": {
      "log_level": "DEBUG",
      "source_storage_uri": "gs://STORAGE_BUCKET/",
      "entry_sync_mode": "FULL",
      "aspect_sync_mode": "INCREMENTAL",
      "scope": {
        "entry_groups": ["projects/GLOSSARY_PROJECT_ID/locations/global/entryGroups/@dataplex"],
        "entry_link_types": [
          "projects/dataplex-types/locations/global/entryLinkTypes/synonym",
          "projects/dataplex-types/locations/global/entryLinkTypes/related"
        ],
        "referenced_entry_scopes": ["projects/GLOSSARY_PROJECT_ID","projects/LINKED_GLOSSARY_PROJECT_ID_1","projects/LINKED_GLOSSARY_PROJECT_ID_2"]
      }
    }
    }
    EOF
    )"

    Haz los cambios siguientes:

    • GLOSSARY_PROJECT_ID: el ID del proyecto que contiene el glosario
    • Opcional: LINKED_GLOSSARY_PROJECT_ID_1: si los términos están vinculados en varios glosarios de diferentes proyectos, proporciona el ID del proyecto.
    • Opcional: LINKED_GLOSSARY_PROJECT_ID_2: si los términos están vinculados en varios glosarios de diferentes proyectos, proporciona el ID del proyecto.

    Ten en cuenta lo siguiente:

    • El objeto entry_groups contiene el grupo de entradas en el que se crean los enlaces de entrada. Este es el grupo de entradas del sistema @dataplex en el mismo proyecto y ubicación que el glosario.
    • El objeto entry_link_types te permite importar sinónimos, términos relacionados o ambos:

      • Sinónimos: projects/dataplex-types/locations/global/entryLinkTypes/synonym
      • Términos relacionados: projects/dataplex-types/locations/global/entryLinkTypes/related
    • El objeto referenced_entry_scopes incluye los IDs de proyecto de los enlaces de entrada que vinculan términos de diferentes glosarios.

Importar enlaces entre términos y columnas

Debes importar los enlaces entre los términos y las columnas que hayas exportado en el paso anterior. En esta sección se describe cómo importar mediante la API de tareas de metadatos.

  1. Sube cada archivo exportado en el paso anterior a un segmento de Cloud Storage.

  2. Ejecuta un comando de importación independiente para cada archivo subido al segmento de Cloud Storage. Cada archivo corresponde a un grupo de entrada único que contiene enlaces entre los términos y las columnas de ese grupo de entrada.

gcurl "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID/metadataJobs?metadata_job_id=JOB_ID" -X POST -H "Content-Type: application/json" -d "$(cat<<EOF
{
"type": "IMPORT",
"import_spec": {
    "log_level": "DEBUG",
    "source_storage_uri": "gs://STORAGE_BUCKET/",
    "entry_sync_mode": "FULL",
    "aspect_sync_mode": "INCREMENTAL",
    "scope": {
        "entry_groups": ["projects/ENTRY_GROUP_PROJECT_ID/locations/ENTRY_GROUP_LOCATION_ID/entryGroups/ENTRY_GROUP_ID"],
        "entry_link_types": ["projects/dataplex-types/locations/global/entryLinkTypes/definition"],
        "referenced_entry_scopes": ["projects/ENTRY_GROUP_PROJECT_ID", "projects/GLOSSARY_PROJECT_ID"]
    }
}
}
EOF
)"

Siguientes pasos