Sobre o projeto
Materialize é uma plataforma de integração de dados em tempo real que cria e atualiza continuamente visões consistentes de dados transacionais de toda uma organização. Sua interface SQL visa tornar o acesso e o fornecimento de dados ao vivo amplamente acessíveis, e pode ser implantada onde quer que sua infraestrutura seja executada.
Padrões comuns de adoção descritos no README:
- Offload de Consultas (CQRS): escalar consultas de leitura complexas de forma mais eficiente do que uma réplica de leitura, sem dores de cabeça com invalidação de cache.
- Hub de Integração (ODS): extrair, carregar e transformar dados incrementalmente de múltiplas fontes, criando visões ao vivo que podem ser consultadas diretamente ou enviadas a sistemas downstream.
- Malha de Dados Operacional (ODM): usar SQL para criar e entregar produtos de dados em tempo real e fortemente consistentes entre serviços e domínios.
Modelo de consistência e execução: Materialize visa dar respostas corretas e consistentes com latência mínima, em vez de resultados aproximados ou eventualmente consistentes, inclusive ao unir dados de múltiplos sistemas upstream. Consultas são reformuladas como dataflows que reagem eficientemente a mudanças de dados. O serviço gerenciado é descrito como cloud-native com alta disponibilidade via replicação multi-ativa, escalabilidade horizontal entre máquinas e armazenamento baseado em objetos de nuvem, como Amazon S3. As edições Enterprise e Community podem ser autogerenciadas.
Ingestão de dados: leitura direta de fluxos de replicação do PostgreSQL ou MySQL, Kafka e sistemas compatíveis com a API Kafka, como Redpanda, e aplicativos SaaS via webhooks.
Transformação e consulta: visões são definidas e lidas através do protocolo PostgreSQL, então clientes SQL existentes, incluindo psql, podem ser usados; dbt Core é mencionado como comum em uso de produção. Recursos SQL suportados incluem junções de múltiplas colunas e múltiplas vias, self-joins, cross-joins, junções internas e externas, subconsultas com decorrelação automática, manutenção incremental de visões sob inserções, atualizações e exclusões, agregações (min, max, count, sum, stddev e outros), HAVING, ORDER BY, LIMIT, DISTINCT, operadores e funções JSON no dialeto PostgreSQL, visões aninhadas e índices compartilhados entre subplanos sobrepostos. Recursão também é suportada para atualizar incrementalmente estruturas de árvores e grafos. O README inclui um exemplo da consulta 15 do TPC-H mostrando CREATE SOURCE, CREATE VIEW, CREATE MATERIALIZED VIEW e CREATE INDEX.
Saída de dados: acesso pull-based através de qualquer driver compatível com PostgreSQL, e acesso push-based via SUBSCRIBE ou streaming de resultados para um tópico Kafka, com opção de copiar atualizações para armazenamento de objetos.
Licenciamento e desenvolvimento: o código-fonte do mecanismo de banco de dados autônomo está neste repositório sob BSL 1.1, convertendo para Apache 2.0 após quatro anos; uso de nó único do mecanismo autônomo é gratuito para sempre. O serviço de nuvem gerenciado inclui recursos proprietários, como escalabilidade horizontal, alta disponibilidade e um console de gerenciamento web. Materialize é escrito principalmente em Rust, com documentação para desenvolvedores em doc/developer e documentação da API Rust hospedada separadamente. Contribuições são bem-vindas, com orientações em CONTRIBUTING.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.