Catálogo de datos en la nube de Google: manténgase al día con su servidor Hive local
Muestras de código con un enfoque práctico sobre cómo incorporar metadatos desde un servidor Hive local en el Catálogo de datos de Google Cloud

Descargo de responsabilidad: todas las opiniones expresadas son mías y no representan a nadie más que a mí ... Vienen de la experiencia de participar en el desarrollo de conectores de muestra totalmente operativos, disponibles en: github .
El reto
Apenas encontramos organizaciones grandes que almacenen todos sus datos en el mismo lugar, a veces es por cumplimiento o incluso por una razón estratégica. Eso lleva a muchos clientes a tener sus activos de datos distribuidos en múltiples silos, lidiando con datos que residen en nubes híbridas y / o entornos locales.
Al adoptar una perspectiva de gestión de metadatos, debemos habilitar el descubrimiento de datos en un lugar centralizado, sin importar dónde estén los datos.
Catálogo de datos
El año pasado, Google Cloud anunció su herramienta de gestión de metadatos
Data Catalog es un servicio de administración de metadatos totalmente administrado y escalable que permite a las organizaciones descubrir, administrar y comprender rápidamente todos sus datos en Google Cloud
Pero, ¿cómo lidian con el desafío dado?
Google Cloud toma esto
Recientemente, Google Cloud lanzó la API de entradas personalizadas del Catálogo de datos , que permite a los usuarios ingerir prácticamente cualquier cosa en el Catálogo de datos. Es una API flexible con campos de cadena abiertos, que permiten a los usuarios especificar el tipo de sus activos, nombres y esquemas con sus tipos de datos.
Hay ejemplos de código para NodeJS, Java y Python. Por favor, eche un vistazo a los documentos oficiales, si desea obtener más información al respecto.
El servidor de la colmena
Hay muchas formas de tener un servidor Hive ejecutándose en producción y conectarse a él. En esta publicación de blog, trabajaremos con el entorno de producción generalmente recomendado , donde tenemos cargas de trabajo separadas para el servidor de la colmena, metastore de la colmena y el RDBMS subyacente (almacena los metadatos en nombre de la colmena).

Si desea configurar rápidamente un entorno Hive para fines de prueba / desarrollo, consulte esta publicación .
Datos de prueba
También es importante tener una gran cantidad de datos de prueba para simular un escenario más realista, por lo que usaremos un servidor Hive previamente poblado con ~ 1000 activos. Para generar los datos, se utilizó este script , que crea tablas aleatorias, con diversos tipos de columnas.
Echemos un vistazo

Luego, conéctese a la base de datos on_prem_warehouse90281.

Ahora veamos las columnas de la tabla school_infoa3c9b12a:

Conector de catálogo de datos a colmena

Para ingerir todos esos metadatos de Hive a Data Catalog, utilizaremos un script de Python (al que se hace referencia como conector en esta publicación de blog), dividido en 3 pasos: raspar , preparar e ingerir .
Raspar
En esta etapa, la secuencia de comandos se conecta al sistema de origen: una base de datos PostgreSQL en este caso y recupera los metadatos mediante una consulta SQL, siguiendo la definición del esquema de metastore de Hive.
Es importante señalar que esta secuencia de comandos no accede a los datos reales cuando se conecta al metastore RDBMS, solo recupera los metadatos, que son las definiciones de bases de datos, tablas y columnas.
Preparar
La lógica de transformación ocurre aquí, donde los activos del sistema de origen se convierten en activos del Catálogo de datos.
Ingerir
Finalmente, los activos del Catálogo de datos en memoria se sincronizan y persisten en la instancia especificada del Catálogo de datos de Google Cloud, actualizada / creada / eliminada según sea necesario según el estado del sistema de origen. La API de tipos personalizados del Catálogo de datos se llama para eso.
Ejecutando el conector
Después de configurar el entorno del conector, siguiendo las instrucciones en el repositorio de Github , ejecutémoslo usando sus argumentos de línea de comando:
# Variables de entorno
exportar DATACATALOG_PROJECT_ID = hive2dc-gcp-project
exportar DATACATALOG_LOCATION_ID = us-central1
exportar HIVE_METASTORE_DB_HOST = localhost
exportar HIVE_METASTORE_DB_USER = colmena
exportar HIVE_METASTORE_DB_PASS = colmena
exportar HIVE_METASTORE_DB_NAME = metastore
exportar HIVE_METASTORE_DB_TYPE = postgresql
exportar GOOGLE_APPLICATION_CREDENTIALS =/hive2dc-datacatalog-credentials.json
# Ejecución de línea de comando
python main.py \
--datacatalog-project-id = $ HIVE2DC_DATACATALOG_PROJECT_ID \
--datacatalog-location-id = $ HIVE2DC_DATACATALOG_LOCATION_ID \
--hive-metastore-db-host = $ HIVE2DC_HIVE_METASTORE_DB_HOST \
--hive-metastore-db-user = $ HIVE2DC_HIVE_METASTORE_DB_USER \
--hive-metastore-db-pass = $ HIVE2DC_HIVE_METASTORE_DB_PASS \
--hive-metastore-db-name = $ HIVE2DC_HIVE_METASTORE_DB_NAME \
--hive-metastore-db-type = $ HIVE2DC_HIVE_METASTORE_DB_TYPE
Resultados
Una vez que finaliza el conector, podemos ir a la interfaz de usuario de búsqueda del Catálogo de datos y buscar los activos ingeridos

Las mismas 8 bases de datos que se muestran en el servidor Hive. Y si buscamos tablas

Ahora veamos la tabla que vimos antes de school_infoa3c9b12a


Filtrando la columna cpf61825

Luego podemos usar las etiquetas del catálogo de datos para marcarlo como PII

Métricas de ejecución
Finalmente, veamos algunas métricas generadas a partir de la ejecución. Las métricas se recopilaron ejecutando el conector en un Hive Metastore versión 2.3.0, respaldado por una instancia de base de datos PostgreSQL poblada con 993 tablas distribuidas en 8 bases de datos.
Las siguientes métricas no son una garantía, son aproximaciones que pueden cambiar según el entorno, la red y la ejecución.


El conector de muestra
Todos los temas tratados en este artículo están cubiertos en un conector de muestra, disponible en GitHub: conectores de colmena . Siéntase libre de obtenerlo y ejecutarlo de acuerdo con las instrucciones. Las contribuciones son bienvenidas, por cierto!
Está licenciado bajo la versión 2.0 de la licencia de Apache, distribuido "TAL CUAL", SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sea expresa o implícita.
Pensamientos finales
En este artículo, hemos cubierto cómo incorporar metadatos de Hive a Google Cloud Data Catalog, lo que permite a los usuarios centralizar su gestión de metadatos, incluso cuando reside en un entorno local. ¡Estén atentos para nuevas publicaciones que muestran cómo hacer lo mismo con otros sistemas fuente! ¡Salud!
Referencias
- Conector Github Repo : https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive
- Publicación de blog de GA de Data Catalog : https://cloud.google.com/blog/products/data-analytics/data-catalog-metadata-management-now-generally-available
- Documentos oficiales del Catálogo de datos : https://cloud.google.com/data-catalog/
- Muestras de código : https://cloud.google.com/data-catalog/docs/how-to/custom-entries#data-catalog-custom-entry-python
- Crear prueba de Hive / dev env : https://dev.to/mesmacosta/quickly-set-up-a-hive-environment-on-gcp-38j8
- Crear datos de prueba de Hive : https://dev.to/mesmacosta/using-python-to-create-hive-tables-with-random-schema-2e5o
El Catálogo de datos de Google Cloud: manténgase al día con su servidor Hive en las instalaciones se publicó originalmente en Google Cloud: Community on Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.