Sobre el proyecto

Materialize es una plataforma de integración de datos en tiempo real que crea y actualiza continuamente vistas consistentes de datos transaccionales de toda una organización. Su interfaz SQL está pensada para hacer que el servicio y el acceso a datos en vivo sean ampliamente accesibles, y puede desplegarse donde se ejecute tu infraestructura. Patrones de adopción comunes descritos en el README: - Query Offload (CQRS): escalar consultas de lectura complejas de forma más eficiente que una réplica de lectura, sin los dolores de cabeza de invalidación de caché. - Integration Hub (ODS): extraer, cargar y transformar incrementalmente datos de múltiples fuentes, creando vistas en vivo que pueden consultarse directamente o enviarse aguas abajo. - Operational Data Mesh (ODM): usar SQL para crear y entregar productos de datos en tiempo real y fuertemente consistentes entre servicios y dominios. Modelo de consistencia y ejecución: Materialize busca dar respuestas correctas y consistentes con latencia mínima en lugar de resultados aproximados o eventualmente consistentes, incluso al combinar datos de múltiples sistemas de origen. Las consultas se reformulan como dataflows que reaccionan eficientemente a los cambios en los datos. El servicio gestionado se describe como cloud-native con alta disponibilidad mediante replicación multi-activa, escalabilidad horizontal entre máquinas y almacenamiento respaldado por almacenamiento de objetos en la nube como Amazon S3. Las ediciones Enterprise y Community pueden autogestionarse. Ingesta de datos: lecturas directas desde flujos de replicación de PostgreSQL o MySQL, Kafka y sistemas compatibles con la API de Kafka como Redpanda, y aplicaciones SaaS mediante webhooks. Transformación y consulta: las vistas se definen y se leen a través del protocolo PostgreSQL, por lo que pueden usarse clientes SQL existentes, incluido psql; dbt Core se menciona como común en uso en producción. Las características SQL compatibles incluyen joins de múltiples columnas y múltiples vías, self-joins, cross-joins, inner y outer joins, subconsultas con decorrelación automática, mantenimiento incremental de vistas ante inserciones, actualizaciones y eliminaciones, agregaciones (min, max, count, sum, stddev y otras), HAVING, ORDER BY, LIMIT, DISTINCT, operadores y funciones JSON en el dialecto de PostgreSQL, vistas anidadas e índices compartidos entre subplanes superpuestos. También se admite recursión para actualizar incrementalmente estructuras de árboles y grafos. El README incluye un ejemplo de la consulta 15 de TPC-H que muestra CREATE SOURCE, CREATE VIEW, CREATE MATERIALIZED VIEW y CREATE INDEX. Salida de datos: acceso basado en pull a través de cualquier controlador compatible con PostgreSQL, y acceso basado en push mediante SUBSCRIBE o transmitiendo resultados a un tema de Kafka, con la opción de copiar actualizaciones a almacenamiento de objetos. Licencias y desarrollo: el código fuente del motor de base de datos independiente está en este repositorio bajo BSL 1.1, y pasa a Apache 2.0 después de cuatro años; el uso de un solo nodo del motor independiente es gratuito para siempre. El servicio en la nube gestionado incluye características propietarias como escalabilidad horizontal, alta disponibilidad y una consola de gestión web. Materialize está escrito principalmente en Rust, con documentación para desarrolladores en doc/developer y documentación de la API de Rust alojada por separado. Las contribuciones son bienvenidas, con orientación en CONTRIBUTING.md.