À propos du projet
Materialize est une plateforme d'intégration de données en temps réel qui crée et met continuellement à jour des vues cohérentes de données transactionnelles provenant de toute l'organisation. Son interface SQL est conçue pour rendre le service et l'accès aux données en direct largement accessibles, et elle peut être déployée partout où votre infrastructure s'exécute.
Modèles d'adoption courants décrits dans le README :
- Délestage de requêtes (CQRS) : mettre à l'échelle les requêtes de lecture complexes plus efficacement qu'un réplica de lecture, sans les maux de tête d'invalidation de cache.
- Hub d'intégration (ODS) : extraire, charger et transformer incrémentalement des données de plusieurs sources, en créant des vues en direct qui peuvent être interrogées directement ou propagées en aval.
- Data Mesh opérationnel (ODM) : utiliser SQL pour créer et livrer des produits de données en temps réel et fortement cohérents à travers les services et les domaines.
Cohérence et modèle d'exécution : Materialize vise à fournir des réponses correctes et cohérentes avec une latence minimale plutôt que des résultats approximatifs ou à cohérence à terme, y compris lors de la jointure de données provenant de plusieurs systèmes en amont. Les requêtes sont reformulées en flux de données qui réagissent efficacement aux changements de données. Le service géré est décrit comme cloud-native avec une haute disponibilité via une réplication multi-active, une scalabilité horizontale entre machines, et un stockage soutenu par du stockage objet cloud tel qu'Amazon S3. Les éditions Enterprise et Community peuvent être auto-gérées.
Ingestion de données : lectures directes depuis les flux de réplication PostgreSQL ou MySQL, Kafka et les systèmes compatibles avec l'API Kafka tels que Redpanda, et les applications SaaS via webhooks.
Transformation et interrogation : les vues sont définies et lues via le protocole PostgreSQL, de sorte que les clients SQL existants, y compris psql, peuvent être utilisés ; dbt Core est mentionné comme couramment utilisé en production. Les fonctionnalités SQL prises en charge incluent les jointures multi-colonnes et multi-voies, les auto-jointures, les jointures croisées, les jointures internes et externes, les sous-requêtes avec décorrélation automatique, la maintenance incrémentale des vues sous les insertions, mises à jour et suppressions, les agrégations (min, max, count, sum, stddev et d'autres), HAVING, ORDER BY, LIMIT, DISTINCT, les opérateurs et fonctions JSON dans le dialecte PostgreSQL, les vues imbriquées, et les index partagés entre les sous-plans qui se chevauchent. La récursivité est également prise en charge pour la mise à jour incrémentale des structures d'arbres et de graphes. Le README inclut un exemple de requête TPC-H 15 montrant CREATE SOURCE, CREATE VIEW, CREATE MATERIALIZED VIEW et CREATE INDEX.
Sortie de données : accès en pull via n'importe quel pilote compatible PostgreSQL, et accès en push via SUBSCRIBE ou la diffusion de résultats vers un sujet Kafka, avec la possibilité de copier les mises à jour vers le stockage objet.
Licence et développement : le code source du moteur de base de données autonome se trouve dans ce dépôt sous BSL 1.1, avec conversion vers Apache 2.0 après quatre ans ; l'utilisation en nœud unique du moteur autonome est gratuite pour toujours. Le service cloud géré inclut des fonctionnalités propriétaires telles que la scalabilité horizontale, la haute disponibilité et une console de gestion web. Materialize est principalement écrit en Rust, avec la documentation développeur dans doc/developer et la documentation de l'API Rust hébergée séparément. Les contributions sont les bienvenues, avec des instructions dans CONTRIBUTING.md.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.