SPL vs SQL

 先来看看两者的定义。

SQL:结构化查询语言。

SPL:结构化数据计算语言。


既然是比较文章,那必然是要突出一方的优势。

以下是SQL的痛点以及SPL的优点:

1.SQL缺乏离散性,集合化不彻底;SPL离散与集合充分结合。

2.SQL有序计算支持得很不好;SPL有序计算非常强。

3.SQL不提倡分步计算(对于复杂运算的代码冗长难写);SPL则提倡分步计算(擅长实现复杂运算)。

4.SQL难以实现高性能算法(无法充分利用硬件能力);SPL拥有高性能基础算法和存储机制(充分利用硬件能力)。

5.SQL只能计算数据库中的数据;SPL可以计算任意数据源。

6.数据库的计算能力是封闭的,无法处理数据库外的数据,常常需要先做ETL导入同一个数据库后才能处理。 SPL提供了开放简易的计算能力,可以直接读取多个数据库实现混合数据计算,协助数据库做更好的运算。

7.SQL难以实现高性能算法,大数据运算性能只能指望数据库的优化引擎,但复杂情况常常靠不住。
SPL提供大量基础高性能算法(有许多是业界创新)以及高效的存储格式,同等硬件环境下可以获得远超过数据库的运算性能,可以全面替代大数据平台与数据仓库。

  • 内存查找:二分法、序号定位、位置索引、哈希索引、多层序号定位
  • 外存数据集: 文本文件并行、二进制存、倍增分段、列存组表、有序存储与更新
  • 外存查找:二分法、哈希索引、排序索引、行存和带值索引、索引预加载、批量查找与集合查找、多索引归并、全文检索
  • 遍历技术:游标后过滤、遍历复用、并行遍历与多路游标、聚合扩展、有序遍历、程序游标、半序分组与排序、序号分组与可控分段
  • 关联技术:外键地址化、外键序号化、索引复用、对位序列、大维表查找、单边分堆、有序归并、关联定位、附表
  • 多维分析:预汇总与时间段预汇总、对位序列、标签位维度
  • 分布式:自由计算与数据分布、集群复组表、集群维表、冗余式容错、备胎式容错、Fork-Reduce、多作业负载均衡

8.工业场景中有大量时序数据,而时序数据库常常只提供SQL,SQL的有序计算能力本来很弱,结果只用于取数,无法协助计算。
工业场景中还常常会涉及许多基础数学运算,SQL缺乏这些函数,只能读出来再处理。
SPL能很好地支持有序计算,而且提供了丰富的数学函数,如矩阵、拟合等,能够更方便地应对工业场景的计算需求。

  • 时序游标:按粒度聚合、平移、相邻引用、关联合并
  • 历史数据压缩固化,透明引用
  • 向量与矩阵运算
  • 各种线性拟合:最小二乘、偏最小二乘、lasso、ridge、…

SPL技术介绍:

  • 1、简洁易用的开发环境
  • 2、专门设计的语法体系
  • 3、丰富的运算类库
  • 4、多样性数据源
  • 5、外部数据接口
  • 6、集成性
  • 7、热切换
  • 8、多线程并行
  • 9、高性能存储
  • 10、分布式计算

总结:

SPL over SQL,什么时候能用上SPL啊,我不想再写冗长复杂的SQL了!

猜你喜欢

转载自blog.csdn.net/m0_62600503/article/details/130693512