前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个比 SQL 还快的数据库语言,开源了!

一个比 SQL 还快的数据库语言,开源了!

作者头像
GitHubDaily
发布2023-04-27 16:01:22
9870
发布2023-04-27 16:01:22
举报
文章被收录于专栏:GitHubDailyGitHubDaily

今天给大家介绍一款可用于替代 SQL 的数据分析引擎:esProc SPL。

具备 4 个主要特点:低代码高性能轻量级全功能

与 SQL 相比,SPL 不仅写得简单,跑得也更快,既可以独立使用还能与应用集成嵌入,同时适用于多种应用场景。

使用 esProc SPL 实现数据分析业务,整体应用成本将比以 SQL 为代表的传统技术低出几倍

如此高的性能,也使得该项目最近在 GitHub 火了起来,短期内便增长了 1500+ GitHub Star。

GitHub:https://github.com/SPLWare/esProc

项目为国内开发者所研发,因此也配套了颇为详细的中文教程,除了阅读源码之外,大家还能跟着动手学习一些关于数据库、数据处理等大数据相关知识。

esProc SPL 介绍

esProc SPL 是一款面向结构化半结构化数据的计算和处理引擎,可以用做分析型数据库和数据计算中间件

esProc SPL 主要应用于线下跑批在线查询两个数据分析型应用场景。

值得一提的是,和市场上常见的分析型数据库不同,esProc SPL 并不是 SQL 体系的,但也不是常说的 NoSQL 技术(比如 MongoDB、HBase 等),而是采用了独创的 SPL(Structured Process Language)语法,相对现有的数据处理技术不仅编码更简单,运行效率也更高。

esProc SPL 能解决哪些痛点?

总体来说,像涉及跑批慢、查询慢等性能问题;数据库压力问题;SQL 难写难维护问题;多数据源混算问题;应用结构不合理问题,这些都是 esProc SPL 要解决的。

SPL 相对 SQL 可以达到在开发、硬件、运维三方面成本降低数倍的效果

技术特性

前面我们解释了 esProc SPL 写得简单和跑得快的原因,也就是 SPL 的低代码高性能

下面我们来具体看一下 esProc SPL 的技术特性。

我们按照架构图上的标号依次来解释一下。

1. 算法引擎

esProc SPL 提供了包括高性能计算在内的 400 多个计算函数,内存计算、外存游标、多线程并行以及集群运算等等,可以满足所有结构化数据处理的需要。

2. 存储引擎

存储是计算的基石,esProc SPL 提供了二进制文件存储,同时支持行存和列存两种方式,并提供了文件索引、倍增分段等机制,在保持使用灵活性和开放性的同时获得更高性能。

3. 多源混算

esProc SPL 的开放体系允许计算来自不同数据源的数据,并可以实施混合计算。这样不仅可以保持数据源多样性的优势(各类数据源有自身的优点),数据的实时性和计算的灵活性也更高。

4. 并行框架

esProc SPL 支持单节点多线程并行计算以及多节点分布式计算,任务拆分和汇总既提供了自动机制,也允许手动进行控制灵活性更强。同时,负载均衡和容错机制(冗余容错和备胎容错)可以保证资源充分发挥效力,系统稳定性更强。

5. 敏捷语法

esProc SPL 采用自创的 SPL 作为形式化语言,在表达计算尤其是复杂计算时相对 SQL 更加简洁。同时 SPL 支持过程计算,这样就可以在丰富计算类库的支持下采用自然思维实现计算逻辑。写的简单就更容易应用高性能算法提升计算性能,同时修改和维护也更方便。

6. 嵌入集成

esProc SPL 可以嵌入应用中作为应用内计算引擎使用,在应用端直接实施计算灵活性大大加强,而且本地运算性能往往也更高。利用 SPL 的敏捷性和高性能特征就可以替代原来硬编码等计算方式,为应用提供强计算能力。

7. 数据固化

esProc SPL 提供了将冷数据固化到文件系统的能力。数据固化过程往往还伴随复杂数据处理,利用 SPL 就可以快速完成这类计算,在固定的时间窗口期内完成更多任务。

8. 实时数据

实时数据源可以直接接入 esProc SPL,不需要做外部映射,直接读取和使用更加高效。在多源混算能力的支持下,接入实时数据就可以轻松实现 T+0 查询,有利于更高效地发挥数据价值。

esProc SPL 提供了简洁易用的开发环境。

在 IDE 中可以分步编写代码,每步的运行结果在右侧的结果面板中都能实时查看,调试执行、单步执行、设置断点等编辑调试功能一应俱全。

好用的编辑调试功能同样是低代码不可或缺的特性,这与 SQL(及存储过程)编辑调试困难有很大不同,可以显著降低开发成本。有了这些功能,esProc SPL 也经常用于桌面分析,非常方便。

SPL 是专门设计的语法体系,天然支持分步尤其适合复杂过程计算。支持循环、分支、过程、子程序等完整的编程能力,相对 SQL 更加完善。在每步运算中可以使用单元格名引用上一步计算结果,无需定义变量(当然也支持变量)。

目前 SPL 提供了 400 多个函数,叠加每个函数包含数个选项相当于几千个库函数,再结合过程、循环、分支等完善的程序语言功能可以完成全面的数据处理任务,这是全功能特点的典型表现。

esProc SPL 还具备极强的集成性,esProc SPL 采用 Java 开发,不仅可以独立使用,也可以无缝集成到应用中,作为应用内计算引擎使用,可以在微服务、边缘计算、报表数据准备等场景中发挥重要作用。

良好的集成性体现了轻量级特性,esProc SPL 并不总需要独立服务器才能工作(与数据库有很大不同),将 jar 包集成嵌入就能为应用提供强大的计算能力,而且 jar 包才几十 M,非常小巧轻量,随时随地都可以用,甚至安卓手机上都能工作。

esProc SPL 支持几十种数据源,具备多数据源混合计算能力,多数据源数据无需导入数据库就可以直接计算,除了数据实时性更好,还可以充分保留多样数据源自身的优势。

esProc SPL 对多数据源的支持再一次体现了全功能,同时 esProc SPL 由于没有元数据,多数据源可以直接访问并进行混合计算因此更轻,这是 esProc SPL 轻量级的另一面。

更进一步,esProc SPL 还提供了自有的高效数据文件存储,私有数据格式性能更高,还可以按照文件系统树状目录方式按业务分类存储数据。

总结

最后我们来总结一下 esProc SPL 用作数据分析引擎优势。

性能卓越在实际应用中,esProc SPL 的大数据处理性能可以比传统方案平均提升 1-2 个数量级,性能优势十分明显。

高效开发借助 SPL 敏捷语法以及丰富的计算类库,在过程化的加持下采用自然思维就可以实现复杂算法,开发效率更高。

灵活开放esProc SPL 支持多数据源混合计算,有效利用多源优势的同时还能以最小代价实现 HTAP。而且 esProc SPL 还可以集成嵌入到应用中使用,做到真正的开放、灵活。

节约资源在高算力的支持下,esProc SPL 使用更少硬件(单机顶集群)就能实现业务目标,因此更加环保,绿色低碳。

成本锐减esProc SPL 这些优势都反映到成本上就能达到开发、硬件、运维成本降低 X 倍的效果。

目前,esProc 已在 GitHub 累积增长 1500+ Star,感兴趣的同学,可通过下方 GitHub 项目链接,查看其具体代码。

GitHub:https://github.com/SPLWare/esProc

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GitHubDaily 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • esProc SPL 介绍
  • 技术特性
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档