La red social profesional LinkedIn ha decidido ofrecer su herramienta de gestión de datos OpenHouse en código abierto. La filial de Microsoft pretende simplificar el trabajo de los ingenieros de software y de los equipos de infraestructura de datos asociados con el fin de reducir el tiempo de despliegue de productos o aplicaciones. Compatible con los almacenes de datos de código abierto, OpenHouse constituye un plano de control que comprende un catálogo "declarativo" y un conjunto de servicios de datos. A diferencia de los conceptos de lagos de datos, que almacenan datos en formato nativo, y de almacenes de datos, que almacenan datos estructurados (a menudo en formato SQL), el lago de datos es una arquitectura de datos que ofrece tanto capacidades de almacenamiento como de análisis. "Los usuarios pueden definir tablas, sus esquemas y metadatos asociados de forma transparente y declarativa en el catálogo. OpenHouse concilia el estado observado de las tablas con el estado deseado orquestando varios servicios de datos", escribió LinkedIn al describir la oferta en GitHub.

La idea básica del producto

Pero, ¿por qué desarrollar una herramienta de gestión de big data para almacenes de datos? Según el ingeniero Sumedh Sakdeo, todo empezó cuando LinkedIn optó por almacenes de datos de código abierto para sus necesidades internas en lugar de almacenes de datos en la nube, porque los primeros “permiten una mayor escalabilidad y flexibilidad”. Sin embargo, Sakdeo señala que, a pesar de adoptar un almacén de datos de código abierto, LinkedIn tuvo que superar bastantes desafíos para poder ofrecer una experiencia gestionada a sus usuarios finales. A diferencia de la idea general de ofertas gestionadas para bases de datos o plataformas de datos, en el caso de la red social, los usuarios finales eran sus equipos de datos internos, y la gestión debía estar a cargo del equipo de ingeniería de productos.

“La falta de una experiencia administrada a menudo significa que nuestros usuarios finales tienen que lidiar con problemas de infraestructura de bajo nivel, como administrar el diseño óptimo de los archivos en el almacenamiento, hacer que caduquen los datos según el TTL para evitar agotar las cuotas, replicar los datos en diferentes geografías y administrar los permisos a nivel de archivo”, explicó Sakdeo. “Además, los equipos de infraestructura de datos de LinkedIn habrían tenido poco control sobre el sistema que estaban operando, lo que dificultaba la regulación de la gobernanza y la optimización adecuadas”, agregó Sakdeo. Así nació OpenHouse: la herramienta resuelve estos problemas al eliminar la sobrecarga adicional de administración de datos en un lakehouse de código abierto. Según LinkedIn, la empresa ha implementado más de 3500 tablas OpenHouse administradas en producción, que atienden a más de 550 usuarios activos diarios y abordan una amplia gama de casos de uso. “OpenHouse ha agilizado notablemente el tiempo de comercialización de la implementación Terapia conductual dual "Los sistemas de salida al mercado de LinkedIn en tablas administradas lo reducen en más de 6 meses", continuó Sakdeo, y agregó que la integración de los sistemas de salida al mercado de LinkedIn con OpenHouse ha reducido la carga de trabajo del usuario final asociada con el intercambio de datos en un 50%.

Cómo funciona OpenHouse

“En el núcleo de este plano de control para la gestión de tablas se encuentra un catálogo con un servicio de tablas RESTful que puede proporcionar un aprovisionamiento de tablas seguro y escalable y una gestión declarativa de metadatos”, dijo Sakdeo. “Además, el plano de control abarca servicios de datos que se pueden personalizar para organizar sin problemas las tareas de mantenimiento de tablas”, agregó el ingeniero de software principal. Según LinkedIn, el servicio de catálogo facilita la creación, recuperación, actualización y eliminación de una tabla OpenHouse. “Está perfectamente integrado con Apache Spark para que los usuarios finales puedan usar la sintaxis estándar del motor, las consultas SQL y la API DataFrame para realizar estas operaciones”, dijo LinkedIn en un comunicado. La sintaxis estándar admitida incluye, entre otras: SHOW DATABASE, SHOW TABLES, CREATE TABLE, ALTER TABLE, SELECT FROM, INSERT INTO y DROP TABLE. Además, el servicio de catálogo permitirá a los usuarios establecer políticas de retención en tablas OpenHouse particionadas en el tiempo.

“Con estas reglas configuradas, los servicios de datos identifican y eliminan automáticamente las particiones que superan el umbral especificado. Los usuarios finales también pueden utilizar una sintaxis SQL extendida adaptada a OpenHouse”, dijo Sakdeo, y agregó que el servicio también permite a los usuarios compartir tablas de OpenHouse. OpenHouse admite los formatos de tabla Apache Iceberg, Hudi y Delta. Para el almacenamiento, la herramienta admite una interfaz de sistema de archivos Hadoop, que es compatible con HDFS y los almacenamientos de blobs que lo admiten. “Las interfaces de almacenamiento se pueden ampliar para conectarse a las API de almacenamiento de blobs nativas”, señaló LinkedIn. Para el soporte de la base de datos, OpenHouse utiliza una base de datos MySQL para almacenar punteros de metadatos de las tablas Iceberg en el almacenamiento. “La elección de la base de datos es conectable. OpenHouse utiliza el marco Spring Data JPA para permitir la integración con varios sistemas de bases de datos”, dijo Sakdeo. OpenHouse también ofrece funciones de observabilidad y gobernanza, entre otras cosas.