O LinkedIn decidiu abrir o código-fonte de sua ferramenta de gerenciamento de dados, OpenHouse, que, segundo ele, pode ajudar engenheiros de dados e equipes de infraestrutura de dados relacionadas em uma empresa a reduzir seu esforço de engenharia de produto e diminuir o tempo necessário para implantar produtos ou aplicativos.

OpenHouse é compatível com data lakehouses de código aberto e é um plano de controle que compreende um catálogo “declarativo” e um conjunto de serviços de dados.

Um data lakehouse é uma arquitetura de dados que oferece recursos de armazenamento e análise, em contraste com os conceitos de data lakes, que armazenam dados em formato nativo, e data warehouses, que armazenam dados estruturados (geralmente em formato SQL).

“Os usuários podem definir tabelas, seus esquemas e metadados associados de forma transparente dentro do catálogo. O OpenHouse reconcilia o estado observado das tabelas com o estado desejado, orquestrando vários serviços de dados”, escreveu o LinkedIn ao descrever a oferta no GitHub.

Ideia fundamental por trás do produto

Mas por que o LinkedIn escolheu desenvolver a ferramenta de gerenciamento de big data para lakehouses?

De acordo com o engenheiro da empresa Sumedh Sakdeo, tudo começou com a empresa optando por data lakehouses de código aberto para requisitos internos em vez de data warehouses em nuvem, já que o primeiro “permite mais escalabilidade e flexibilidade”.

No entanto, Sakdeo disse que, apesar de adotar um lakehouse de código aberto, o LinkedIn enfrentou desafios em oferecer uma experiência gerenciada para seus usuários finais.

Em contraste com o entendimento típico de ofertas gerenciadas em bancos de dados ou plataformas de dados, neste caso, os usuários finais eram as equipes internas de dados do LinkedIn e o gerenciamento teria que ser feito pela equipe de engenharia de produto.

“Não ter uma experiência gerenciada muitas vezes significa que nossos usuários finais têm que lidar com preocupações de infraestrutura de baixo nível, como gerenciar o layout ideal de arquivos no armazenamento, expirar dados com base em TTL para evitar ficar sem cota, replicar dados entre regiões geográficas e gerenciar permissões em nível de arquivo”, disse Sakdeo.

Além disso, as equipas de infraestrutura de dados do LinkedIn ficariam com pouco controlo sobre o sistema que tinham de operar, tornando mais difícil para elas regular a governação e otimização adequadas, explicou Sakdeo.

Entre no OpenHouse — uma ferramenta que resolve esses desafios, eliminando a necessidade de realizar atividades adicionais de gerenciamento de dados em um lakehouse de código aberto.

De acordo com o LinkedIn, a empresa implementou mais de 3.500 tabelas OpenHouse gerenciadas em produção, atendendo a mais de 550 usuários ativos diariamente e atendendo a um amplo espectro de casos de uso.

“Notavelmente, o OpenHouse simplificou o tempo de lançamento no mercado para a implementação de dbt do LinkedIn em tabelas gerenciadas, reduzindo-o em mais de 6 meses”, disse Sakdeo, acrescentando que a integração dos sistemas de entrada no mercado do LinkedIn ao OpenHouse ajudou-o a atingir 50% redução no trabalho do usuário final associado ao compartilhamento de dados.

Por dentro do OpenHouse

Mas como isso funciona? Em sua essência, o OpenHouse, que é um painel de controle para gerenciamento de tabelas, é um catálogo que vem com um serviço de tabela RESTful projetado para oferecer provisionamento de tabelas seguro e escalonável e gerenciamento declarativo de metadados, disse Sakdeo.

Além disso, o plano de controle abrange serviços de dados, que podem ser personalizados para orquestrar perfeitamente os trabalhos de manutenção de tabelas, disse o engenheiro de software sênior.

O serviço de catálogo, segundo o LinkedIn, facilita a criação, recuperação, atualização e exclusão de uma tabela OpenHouse.

“Ele está perfeitamente integrado ao Apache Spark para que os usuários finais possam utilizar a sintaxe padrão do mecanismo, consultas SQL e a API DataFrame para executar essas operações”, disse o LinkedIn em comunicado.

A sintaxe padrão suportada inclui, mas não está limitada a: SHOW DATABASE, SHOW TABLES, CREATE TABLE, ALTER TABLE, SELECT FROM, INSERT INTO e DROP TABLE.

Além disso, o serviço de catálogo permitirá que os usuários estabeleçam políticas de retenção em tabelas OpenHouse particionadas por tempo.

“Por meio dessas políticas configuradas, os serviços de dados identificam e excluem automaticamente partições anteriores ao limite especificado. Os usuários finais também podem empregar sintaxe SQL estendida adaptada para OpenHouse”, disse Sakdeo, acrescentando que o serviço também permite que os usuários compartilhem tabelas OpenHouse.

OpenHouse oferece suporte aos formatos de tabela Apache Iceberg, Hudi e Delta.

Para ajudar os usuários corporativos a replicar tabelas, a empresa ampliou a estrutura de indução de dados, Apache Gobblin, contribuindo com funcionalidade de replicação entre geografias adaptada para tabelas Iceberg.

IcebergDistcp, um componente desta estrutura, garante alta disponibilidade para tabelas Iceberg, permitindo aos usuários executar fluxos de trabalho críticos a partir de qualquer localização geográfica, disse a empresa.

“O OpenHouse classifica as tabelas como tipos de tabelas primárias ou réplicas, permitindo que as tabelas réplicas sejam somente leitura para os usuários finais. As permissões de atualização e gravação são concedidas exclusivamente ao trabalho distcp e ao usuário do sistema OpenHouse”, acrescentou.

No que diz respeito ao armazenamento, ele suporta uma interface Hadoop Filesystem, compatível com HDFS e armazenamentos de blob que o suportam. As interfaces de armazenamento podem ser aumentadas para serem conectadas a APIs nativas de armazenamento de blobs, disse a empresa.

Quanto ao suporte de banco de dados, o OpenHouse utiliza um banco de dados MySQL para armazenar ponteiros de metadados para metadados da tabela Iceberg no armazenamento.

“A escolha do banco de dados é conectável. OpenHouse usa a estrutura Spring Data JPA para oferecer flexibilidade para integração com vários sistemas de banco de dados”, disse Sakdeo.

Outras funcionalidades do OpenHouse incluem observabilidade e governança.