Calcite实现了一个全局统一的查询优化框架,该框架可以用来解决现下非常多的数据管理问题。然而Calcite的优势还不止于此。
(1)Calcite使用Java作为开发语言。现如今,Java已经成为服务端开发的主流语言。换句话说,程序员如果使用Calcite作为查询优化组件,能够很容易嵌入现有的服务应用当中。而且相对来说,由于Java语言的流行,其生态的扩展性也使Calcite如虎添翼。
(2)Calcite容易扩展。在很多位置,它都提供了通俗易懂的可扩展接口,给程序员带来了无限的可能性。相关的技术细节,后文会有详细的介绍。
(3)Calcite容易使用。由于它本身是参照了数据库的架构模式,因此其部署也是非常方便的,而且还有SQLLine这样的前端组件(同样是由朱利安·海德主导开发的),Calcite基本上能够实现开箱即用。
(4)Calcite实现了一套完整的关系数据模型,其严谨的数学模型有助于使整个查询优化过程更加精准。同样,对于关系代数的操作符,它也提供了相关的扩展接口,程序员可以自定义操作符来对关系运算进行控制。
(5)Calcite实现了流式SQL。这也是一大亮点,因为当今的数据处理领域已经不是以往那样仅需对批量数据进行查询和计算了,对流式数据的处理也有大量的需求。Calcite的这一功能可谓非常地应景。
(6)Calcite多年的生态建设。从2014年至今,Calcite逐渐从一个孤立的组件成长为一个Apache顶级项目,由于其强大的行业影响力和过硬的产品品质,吸引了包括Intel、Oracle、Hortonworks、阿里巴巴、腾讯、华为等科技公司的加入。“众人拾柴火焰高”,众多高质量贡献者共同将Calcite推到了前台,Calcite成为如今各大公司进行数据平台开发时查询优化领域的首选。