企业真正开始使用 SAP HANA Cloud 一段时间后,往往会碰到一个非常现实的问题。业务数据还在持续增长,订单、库存、财务凭证、设备记录、历史交易、日志以及分析结果不断积累,但真正需要以毫秒级响应参与实时业务处理的数据,只占全部数据的一部分。如果所有历史数据都长期放在高性能内存数据库里,技术上当然可以追求极致性能,经济上却未必合理。
这正是 SAP HANA Cloud 数据分层设计里一个很有意思的位置。SAP 没有简单地把所谓数据湖理解成一个只负责扔文件进去的廉价存储桶,而是在 SAP HANA Cloud, data lake 中提供了两个职责明显不同的组件,Data Lake Files 和 Data Lake Relational Engine。
其中 Data Lake Files 更接近我们通常理解的文件型数据湖,它能够保存结构化、半结构化以及非结构化文件。Data Lake Relational Engine 面向的则是另一类问题,企业拥有大量关系型数据,希望保留完整的 SQL 查询能力,又不希望这些数据全部占用昂贵的高性能数据库资源。
SAP 官方对它的定义非常直接,Data Lake Relational Engine 是一个用于分析 PB 级关系数据的高性能数据库。当前 SAP HANA Cloud 文档仍将它定义为 SAP HANA Cloud, data lake 的可选组件,同时说明它基于本地部署产品 SAP IQ 的技术体系。
这里其实隐藏着理解 Data Lake Relational Engine 最关键的一条线索。
它并不是把传统数据库的数据文件简单搬进云存储,也不是给对象存储外面套上一层 SQL 接口。SAP IQ 多年以来最擅长的事情,就是对海量