OpenMetadata
Gestão de Metadados

OpenMetadata é uma plataforma open-source unificada de gestão de metadados, criada para descoberta de dados, governação, qualidade de dados, observabilidade e colaboração.
O OpenMetadata é impulsionado por um repositório central de metadados, linhagem aprofundada e colaboração de equipa integrada.
É um dos projetos de código aberto com crescimento mais rápido, com uma comunidade vibrante e adoção por um conjunto diversificado de empresas em vários setores.
Baseado em Padrões de Metadados Abertos e APIs, com suporte a conectores para uma vasta gama de serviços de dados, o OpenMetadata permite a gestão de metadados ponta-a-ponta.
A ideia central é que os metadados são um ativo de primeira classe e devem ser:
- Fáceis de consultar e explorar (descoberta).
- Fiáveis e atualizados (observabilidade e qualidade).
- Contextualizados (quem usa, para que servem, em que fluxo se inserem).
- Governados (com responsáveis, políticas, classificações).

O que faz
- Catalogação e descoberta de ativos (tabelas, dashboards, pipelines, modelos).
- Documentação colaborativa: descrições, comentários, dicionário de dados.
- Governação e qualidade: atribuição de responsáveis, políticas, testes de dados integrados.
- Linhagem visual, incluindo ao nível de coluna.
- Observabilidade: métricas de recência, volume, qualidade, alertas.
- Colaboração e notificações via comentários, webhooks, controlo de acesso.
Características do OpenMetadata:
- Licenciado sob a Apache License, atualmente na versão 2.0
- Arquitetura simplificada: essencialmente 4 serviços (API Server, BD relacional, Elasticsearch, Ingestion).
- Framework de ingestão extensível: mais de 90 conectores prontos e fácil criar novos.
- Schema-first: os contratos de metadados são JSON Schemas versionados.
- APIs abertas: toda a funcionalidade exposta via REST, facilitando automação e integração com pipelines de CI/CD.
- IU moderna: interface única para pesquisa, visualização de linhagem, dashboards de qualidade e workflows de ingestão.
Arquitetura do OpenMetadata
O OpenMetadata segue uma arquitetura em camadas:
- UI (Frontend): interface web em React, usada para exploração, colaboração e governação.
- API Server (Backend): implementado em Java (Dropwizard/Jetty), expõe APIs REST e garante consistência.
- Metadata Store (BD relacional, geralmente MySQL/PostgreSQL): armazena entidades, relacionamentos e histórico.
- Search Engine (Opensearch): indexa todos os ativos para busca rápida e facetada.
- Ingestion Framework: implementado em Python, executa como pipelines (pode ser agendado via Airflow ou standalone), recolhe metadados das fontes e envia para a API.

Os seus principais componentes são:
- Entities (Entidades): tabela, coluna, utilizador, pipeline, dashboard, etc.
- Ingestion Workflows: conectores para bases de dados, ETL, BI, ML.
- Glossary/Taxonomy: dicionário de termos de negócio e domínios.
- Policies & Roles: controlo de acesso granular.
- Lineage Graph: motor que constrói e visualiza dependências.
- IU Colaborativa: comentários, notificações, integração Slack/Jira.
Recursos do OpenMetadata
- Conectores prontos para bases de dados (Snowflake, BigQuery, Redshift, Hive), BI (Looker, Superset), pipelines (Airflow, Dagster, Spark).
- Linhagem detalhada com drill-down até colunas individuais.
- Data Quality: criação de testes nativos (ex.: valores esperados, limites, consistência).
- Observabilidade: dashboards de recência, volume, popularidade.
- Governação: atribuição de responsáveis, classificação de dados sensíveis, domínios organizacionais.
- Extensibilidade: fácil criar conectores e schemas personalizados.
Boas Práticas no Uso do OpenMetadata
- Comece pequeno: catalogue fontes críticas e expanda gradualmente.
- Automatize a ingestão: use workflows agendados (Airflow, cron).
- Defina responsáveis claros: atribua ownership de tabelas, dashboards, pipelines.
- Adote um glossário corporativo: termos de negócio ajudam não-técnicos a entender dados.
- Monitorize a qualidade: configure testes mínimos em dados críticos.
- Integre com comunicação: Slack, Teams, Jira para alertas e colaboração.
- Versione e audite: mantenha histórico de metadados e alterações.
- Use RBAC e políticas: restrinja quem pode editar o quê.
- Participe na comunidade: aproveite extensões prontas e contribua de volta.
Detalhes sobre o projeto
O OpenMetadata tem o backend desenvolvido em Java, usando Dropwizard/Jetty.
Implementa o Ingestion Framework em Python e o frontend (UI) em TypeScript/React.
TDP Kubernetes
Este componente também está disponível na edição TDP Kubernetes (a partir da versão 3.0.0) com a versão 1.9.11, implantado via Helm Chart tdp-openmetadata.
Para detalhes de configuração, consulte a documentação do OpenMetadata no TDP Kubernetes.
Fonte(s):