risingwavelabs/risingwave
GitHub: risingwavelabs/risingwave
兼容 PostgreSQL 的云原生流式数据库,支持实时流处理和 Iceberg 数据湖管理。
Stars: 8842 | Forks: 739
### 🌊 乘驭事件流浪潮
RisingWave 是一个企业级事件流平台,旨在提供**最简单**且**最具成本效益**的方式来**摄入**、**处理**和**管理**实时事件数据 —— 并内置对 [Apache Iceberg™](https://iceberg.apache.org/) 开放表格式的支持。它同时提供了与 Postgres 兼容的 [SQL 接口](https://docs.risingwave.com/sql/overview) 和 DataFrame 风格的 [Python 接口](https://docs.risingwave.com/python-sdk/intro)。 RisingWave 可以每秒**摄入**数百万个事件,持续将实时流与历史数据进行**连接和分析**,以低延迟**响应**即席查询,并在 Apache Iceberg™ 表中可靠地**管理**数据。  ## 60 秒快速上手 安装 RisingWave 单机模式: ``` curl -L https://risingwave.com/sh | sh ``` 如需了解其他安装选项(例如使用 Docker 镜像),请参阅 [快速入门指南](https://docs.risingwave.com/get-started/quickstart)。 ## 统一的流数据平台 RisingWave 提供了一个统一的流数据平台,结合了**超低延迟流处理**和 **Iceberg 原生数据管理**。 ### 低延迟流式摄入与处理 RisingWave 在单一系统中集成了实时流摄入、流处理和低延迟服务。它持续从流和批处理源摄入数据,对流和表执行增量计算,端到端数据新鲜度低于 100 毫秒。物化视图可以直接在 RisingWave 内部以 10–20 毫秒的 p99 查询延迟提供服务,或交付给下游系统。 ### Iceberg 湖仓摄入、转换与管理 RisingWave 将 Apache Iceberg™ 视为一等公民。它直接托管和管理 Iceberg REST catalog,允许用户通过兼容 PostgreSQL 的接口创建和操作 Iceberg 表。RisingWave 支持两种写入模式:Merge-on-Read (MoR) 和 Copy-on-Write (CoW),以适应不同的摄入和查询模式。它还提供内置的表维护功能,包括压缩、小文件优化、vacuum 和快照清理,确保无需外部工具或管道即可实现高效且一致的数据管理。 _推荐:[Nimtable](https://github.com/nimtable/nimtable) 是由 RisingWave 开发的可观测性工具,用于轻松探索和管理 Iceberg 表。_ ## 关键设计决策 RisingWave 的设计旨在更易于使用且更具成本效益: ### PostgreSQL 兼容性 * **无缝集成:** 通过 PostgreSQL 有线协议连接,可与 psql、JDBC 和任何 Postgres 工具配合使用。 * **富有表现力的 SQL:** 使用熟悉的 SQL 方言支持结构化、半结构化和非结构化数据。 * **无需手动状态调优:** 消除了复杂的状态管理配置。 ### S3 作为主存储 RisingWave 将表、物化视图和流处理作业的内部状态存储在 S3(或等效的对象存储)中,从而提供: * **高性能:** 针对复杂查询(包括连接和时间窗口)进行了优化。 * **快速恢复:** 可在数秒内从系统故障中恢复。 * **[动态伸缩](https://docs.risingwave.com/deploy/k8s-cluster-scaling):** 立即调整资源以应对工作负载峰值。 除了在内存中缓存热数据外,RisingWave 还支持 [**弹性磁盘缓存**](https://docs.risingwave.com/get-started/disk-cache),这是一种强大的性能优化措施,利用本地磁盘或 EBS 进行高效的数据缓存。这最大限度地减少了对 S3 的访问,从而降低了处理延迟并节省了 S3 访问成本。 ### Apache Iceberg™ 原生支持 RisingWave [**原生集成 Apache Iceberg™**](https://docs.risingwave.com/iceberg/overview),支持将流数据持续摄入到 Iceberg 表中。它还可以直接从 Iceberg 读取、执行自动压缩并长期维护表健康状况。由于 Iceberg 是一种开放表格式,因此结果可以被其他查询引擎访问 —— 这使得存储不仅具有成本效益,而且在设计上实现了互操作性。 ## RisingWave 在哪些用例中表现出色? RisingWave 对以下用例特别有效: * **实时仪表盘:** 在实时仪表盘中实现亚秒级的数据新鲜度,非常适合股票交易、体育博彩和物联网监控等高风险场景。 * **监控与告警:** 为关键应用程序(如欺诈和异常检测)开发复杂的监控和告警系统。 * **实时数据富化:** 持续从不同来源摄入数据,进行实时数据富化,并高效地将结果交付给下游系统。 * **特征工程:** 使用统一的代码库将批处理和流数据转换为机器学习模型中的特征,确保无缝集成和一致性。 * **基于 Iceberg 的湖仓:** 驱动实时湖仓架构,其中流数据被持续写入 Apache Iceberg™ 表,以开放格式实现统一分析、治理和长期保留。 ## 生产部署 [**RisingWave Cloud**](https://cloud.risingwave.com) 提供了在生产环境中运行 RisingWave 的最简便方法。 关于 **Docker 部署**,请参阅 [Docker Compose](https://docs.risingwave.com/deploy/risingwave-docker-compose/)。 关于 **Kubernetes 部署**,请参阅 [Kubernetes with Helm](https://docs.risingwave.com/deploy/risingwave-k8s-helm/) 或 [Kubernetes with Operator](https://docs.risingwave.com/deploy/risingwave-kubernetes/)。 ## 遥测说明 RisingWave 使用 [Scarf](https://scarf.sh/) 收集匿名的安装分析数据。这些分析数据有助于支持我们了解和改进软件包的分发。Scarf 的隐私政策可在 [https://about.scarf.sh/privacy-policy](https://about.scarf.sh/privacy-policy) 查看。 RisingWave 还会收集匿名使用统计数据,以更好地了解社区如何使用 RisingWave。此举的唯一目的是帮助改进产品。用户可以随时轻松选择退出。请参阅 [用户文档](https://docs.risingwave.com/operate/telemetry/) 了解更多详情。 ## 许可证 RisingWave 根据 Apache 许可证(2.0 版)分发。请参阅 [LICENSE](LICENSE) 了解更多信息。 ## 贡献 感谢您有兴趣为项目做出贡献!请参阅 [RisingWave 开发者指南](https://risingwavelabs.github.io/risingwave/) 了解更多信息。
标签:Apache Iceberg, CDC, DataFrame, ETL, Gradle集成, JavaCC, Kafka, OLAP, PostgreSQL兼容, Python SDK, RisingWave, Rust, SonarQube插件, SQL接口, WSL, 事件流, 事件驱动架构, 企业级, 低延迟, 分布式数据库, 可视化界面, 多线程, 大数据, 子域名突变, 实时数仓, 实时数据分析, 开源, 恶意软件检测, 数据摄取, 数据湖, 数据转化, 时序数据, 流处理, 流式计算, 测试用例, 漏洞探索, 状态管理, 目录扫描, 网络流量审计, 请求拦截, 逆向工具, 通知系统, 通知系统, 高吞吐