En este documento se proporcionan instrucciones para migrar en un solo paso de la versión preliminar del glosario de empresa, que admitía metadatos de Data Catalog, a la versión disponible de forma general del glosario de empresa, que admite metadatos del catálogo universal de Dataplex.
Antes de empezar
Instala gcloud o paquetes de Python. Autentica tu cuenta de usuario y las credenciales predeterminadas de la aplicación (ADC) que usan las bibliotecas de Python. Ejecuta los siguientes comandos y sigue las indicaciones del navegador:
gcloud init gcloud auth login gcloud auth application-default loginHabilita las siguientes APIs:
Crea uno o varios segmentos de Cloud Storage en cualquiera de tus proyectos. Los contenedores se usarán como ubicación temporal para los archivos de importación. Cuantos más segmentos proporcione, más rápido será el proceso de importación. Conceda el rol de administrador de Storage de IAM a la cuenta de servicio que ejecute la migración:
service-MIGRATION_PROJECT_ID@gcp-sa-dataplex.iam.gserviceaccount.com
Sustituye
MIGRATION_PROJECT_IDpor el proyecto del que vas a migrar los glosarios.Configura el repositorio:
Clona el repositorio:
git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git cd dataplex-labs/dataplex-quickstart-labs/00-resources/scripts/python/business-glossary-importInstala los paquetes necesarios:
pip3 install -r requirements.txt cd migration
Roles obligatorios
Ejecutar la secuencia de comandos de migración
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2
Haz los cambios siguientes:
USER_PROJECT_ID: el ID del proyecto que se va a migrar.MIGRATION_PROJECT_IDhace referencia al proyecto de origen que contiene los glosarios de Data Catalog que quiere exportar. ElUSER_PROJECT_IDes el proyecto que se usa para la facturación y la atribución de cuotas de las llamadas a la API generadas por la secuencia de comandos.BUCKET1yBUCKET2: los IDs de los segmentos de Cloud Storage que se usarán para la importación.Puedes proporcionar uno o varios segmentos. En el caso de los argumentos de los contenedores, proporcione una lista de nombres de contenedores separados por comas y sin espacios (por ejemplo,
--buckets=bucket-one,bucket-two). No es necesario que haya una asignación individual entre los contenedores y los glosarios. La secuencia de comandos ejecuta los trabajos de importación en paralelo, lo que acelera la migración.
Si los problemas de permisos impiden que la secuencia de comandos descubra automáticamente los IDs de tu organización, usa la marca --orgIds para especificar las organizaciones que la secuencia de comandos puede usar para buscar recursos de datos vinculados a términos del glosario.
Glosarios de ámbito en la migración
Para migrar solo glosarios específicos, defina su ámbito proporcionando sus URLs correspondientes.
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --glossaries="GLOSSARY_URL1","GLOSSARY_URL2"
Sustituye GLOSSARY_URL1 (y GLOSSARY_URL2) por las URLs de los glosarios que vas a migrar. Puede proporcionar una o varias URLs de glosario.
Cuando se ejecuta la migración, el número de tareas de importación puede ser inferior al número de glosarios exportados. Esto ocurre cuando se crean directamente glosarios vacíos que no requieren una tarea de importación en segundo plano.
Reanudar la migración en caso de errores en las tareas de importación
La presencia de archivos después de la migración indica que algunas tareas de importación han fallado. Para reanudar la migración, ejecuta el siguiente comando:
python3 run.py --project=MIGRATION_PROJECT_ID --user-project=USER_PROJECT_ID --buckets=BUCKET1,BUCKET2 --resume-import
Si se produce algún error, vuelve a ejecutar el comando resume. La secuencia de comandos solo procesa los archivos que no se han importado y eliminado correctamente.
La secuencia de comandos aplica comprobaciones de dependencias para los enlaces de entrada y los enlaces entre glosarios. Un archivo de enlace de entrada solo se importa si su glosario principal se ha importado correctamente. Del mismo modo, una vinculación entre términos solo se importa si todos los términos a los que se hace referencia se han importado correctamente.
Solucionar problemas
En esta sección se ofrecen soluciones a errores habituales.
Error de permiso denegado o 403: asegúrate de que la cuenta de usuario o de servicio tenga el rol Editor de catálogo universal de Dataplex en el proyecto de destino y el rol Lector de catálogo de datos en el proyecto de origen.
ModuleNotFoundError asegúrate de haber activado tu entorno virtual de Python y de haber instalado los paquetes necesarios con
pip3 install -r requirements.txt.TimeoutError o ssl.SSLError: estos errores a nivel de red pueden deberse a cortafuegos, proxies o conexiones lentas. El tiempo de espera de la secuencia de comandos es de 5 minutos. Si los problemas persisten, puede que tengas que comprobar la configuración de tu red local.
Método no encontrado (no se pueden obtener entradas): este error suele indicar que tu proyecto de usuario no está en la lista de permitidos para llamar a la API, lo que impide obtener las entradas necesarias.