这个项目能做什么

Materialize是一个实时数据集成平台,可创建并持续更新跨组织事务数据的一致性视图。其SQL接口旨在让实时数据的服务和访问变得广泛可用,并且可以部署在您的基础设施运行的任何地方。 README中描述的常见采用模式包括: - 查询卸载(CQRS):比只读副本更高效地扩展复杂读取查询,且无需担心缓存失效问题。 - 集成中心(ODS):从多个源提取、加载并增量转换数据,创建可直接查询或推送到下游的实时视图。 - 运营数据网格(ODM):使用SQL跨服务和领域创建并交付实时、强一致的数据产品。 一致性与执行模型:Materialize旨在以最小延迟提供正确、一致的答案,而不是近似或最终一致的结果,包括在连接来自多个上游系统的数据时。查询被重新转换为能对数据变化做出高效反应的数据流。该托管服务被描述为云原生的,通过多活复制实现高可用性,支持跨机器水平扩展,并由Amazon S3等云对象存储提供存储支持。企业版和社区版可进行自管理。 数据摄取:直接读取PostgreSQL或MySQL复制流、Kafka及兼容Kafka API的系统(如Redpanda),以及通过Webhooks接入的SaaS应用。 转换与查询:视图通过PostgreSQL协议定义和读取,因此可以使用包括psql在内的现有SQL客户端;文中提到dbt Core在生产环境中很常见。支持的SQL功能包括多列和多路连接、自连接、交叉连接、内连接和外连接、自动去关联的子查询、在插入、更新和删除下的增量视图维护、聚合(min、max、count、sum、stddev等)、HAVING、ORDER BY、LIMIT、DISTINCT、PostgreSQL方言下的JSON运算符和函数、嵌套视图以及跨重叠子计划的共享索引。还支持递归,用于增量更新树和图结构。README中包含一个TPC-H查询15的示例,展示了CREATE SOURCE、CREATE VIEW、CREATE MATERIALIZED VIEW和CREATE INDEX。 数据输出:通过任何兼容PostgreSQL的驱动程序进行基于拉取的访问,以及通过SUBSCRIBE或将结果流式传输到Kafka主题进行基于推送的访问,并可选择将更新复制到对象存储。 许可与开发:独立数据库引擎源码在本仓库中以BSL 1.1许可提供,四年后转换为Apache 2.0;独立引擎的单节点使用永久免费。托管云服务包含专有功能,如水平扩展、高可用性和Web管理控制台。Materialize主要使用Rust编写,开发者文档位于doc/developer,Rust API文档单独托管。欢迎贡献代码,相关指南见CONTRIBUTING.md。