众所周知,湖仓一体架构(Lakehouse)能提供更为统一和高效的数据处理与分析能力。
StarRocks 当前已打通多种数据湖组件,如 Apache Iceberg、Apache Hudi、Delta Lake、Apache Paimon 等,实现了对数据湖的实时查询与分析。不仅能够作为查询引擎直接读取数据湖中的数据,还支持物化视图等高级功能,进一步提升查询性能,帮助企业“一键实现”湖仓架构。
1. StarRocks 与 Apache Iceberg 的集成
Apache Iceberg 是一个开源的表格式,用于在大数据平台上提供高效、可扩展的数据存储。目前,用户可以直接在 StarRocks 中查询存储在 Iceberg 中的大规模数据集,无需数据迁移或转换。
这一集成不仅简化了数据处理流程,还显著提升了查询效率。StarRocks 支持 Iceberg 表的 Snapshot 查询,能够获取数据的最新状态,满足用户对实时数据分析的需求。
应用实践:微信基于 StarRocks 的湖仓一体实践
腾讯微信团队基于 StarRocks 和 Iceberg 构建了湖仓一体架构,满足海量数据的实时查询需求,数据分析团队实现了查询效率和数据时效性的显著提升,数据时效性从小时/天级提升至分钟级,查询效率也从分钟级提升至秒级/分钟级。
案例详情:微信基于 StarRocks 的湖仓一体实践
2. StarRocks 与 Apache Hudi 的集成
Apache Hudi方面,StarRocks 提供对 Hudi 表的高效查询能力,通过全新 Connector 框架,实现了对 Hudi 表的 Snapshot 查询、Incremental 查询和 Read Optimized 查询的支持。特别是 StarRocks 2.4 及更高版本,通过简化配置过程,用户可以更便捷地查询数据库下所有 Hudi 表格式的数据。
3. StarRocks 与 Delta Lake 集成与应用
Delta Lake 是另一种流行的数据湖格式,专注于提供 ACID 事务和可靠的批处理。StarRocks 支持查询 Delta Lake 中的 Parquet 格式数据,支持多种压缩格式(如 SNAPPY、LZ4、ZSTD、GZIP 和 NO_COMPRESSION)。
用户可以通过创建 Delta Lake Catalog 来访问 Delta Lake 中的数据。StarRocks 支持查询 Delta Lake 中的表。
4. StarRocks 与 Paimon 的集成
Apache Paimon 是一种新一代的湖格式,支持高效实时更新和统一的批处理与流处理操作。StarRocks 通过 External Catalog 功能支持直接查询存储在 Paimon 数据湖中的数据,并执行 SQL 查询,实现数据的快速检索。StarRocks 支持多种查询优化策略,包括 Data Cache 和异步物化视图,可以显著提升查询性能。
StarRocks与Paimon的集成应用已经在多个生产环境中得到验证。在测试中,StarRocks查询Paimon数据的效率是Trino的4.3倍,开启Data Cache后,查询性能更是提升了35.4%。这表明StarRocks与Paimon的集成应用可以显著提升数据湖中的实时数据分析能力。
应用案例:
汽车之家在数据仓库建设中,面临实时与离线数据分别处理导致的技术栈复杂、数据新鲜度不一及查询效率低下等痛点。离线数仓使用Hive,数据延迟较高;实时数仓依赖Flink、Kafka等技术,但在处理复杂SQL时资源消耗大,开发周期长。尽管尝试使用Iceberg作为统一存储方案,但发现其在流式处理上的功能不足。
StarRocks+Paimon解决方案:
汽车之家选择Apache Paimon作为新的数据湖解决方案,结合Flink实现流批一体处理。Paimon的简洁健壮架构、增量且有序的数据读取、部分更新等能力,满足了流式湖仓的需求。通过Paimon存储实时与离线数据,降低了开发和维护难度,提高了数据新鲜度。同时,利用StarRocks的物化视图和Sort Compaction功能优化查询效率,减少资源消耗。
实施解决方案后,汽车之家在新用户转化分析、流量日志入湖及资源入湖等场景中取得了显著成效。新用户转化分析的宽表时效性从天级提升到分钟级,开发效率提升5倍以上,资源使用节省60%。流量日志清洗SLA提升1小时,查询效率显著提升。资源数据新鲜度提升至分钟级,下游业务方平滑过渡,无需大量开发调整。此外,Paimon的优化实践如支持代理用户、优化写入任务内存占用等,进一步提升了系统的稳定性和性能。
使用 Paimon + StarRocks 极速批流一体湖仓分析
StarRocks+Paimon的湖仓分析方案支持多种场景,包括Trino兼容、联邦分析、透明加速、数据建模和冷热融合。原有Trino作业无需修改即可在StarRocks上运行;联邦分析允许不同数据源之间的联合查询;透明加速通过物化视图优化查询性能;数据建模支持多层嵌套物化视图,便于数据体系构建;冷热融合则通过TTL机制优化存储成本和查询效率。JNI Connector作为关键技术,实现了C++与Java数据源之间的高效交互。
性能测试:
在EMR环境下,通过对比测试StarRocks与Trino在TPCH 100G数据集上的性能,结果显示StarRocks的查询性能是Trino的15倍,验证了StarRocks+Paimon方案的高效性。
镜舟科技作为基于 StarRocks 开源项目的商业化公司,深入参与 StarRocks 社区推广和技术贡献,致力于推动湖仓一体的最佳实践应用于各行各业。未来,镜舟科技将积极与数据湖领域的其他优秀厂商和开源项目开展合作,共同构建更加完善的湖仓一体生态。