程序员学习 SPL 的路径

概念与语法

先从 SPL 程序设计 开始。
第 1-4 章介绍基本的程序逻辑,这部分主要面向没有编程经验的初学者,专业程序员可以用十几分钟时间迅速过一遍,了解 SPL 编程的基本风格和语法,需要注意 4.4 节对象理解。
第 5 章,对于有经验的程序员也有意义,这里有 SPL 的集合运算思维方式,和其它语言很不像,理解掌握后就能写出优雅的代码了。之后,只要 SPL 能做的事,你通常不会再有兴趣用其它语言了。特别是 5.7 节 Lambda 语法,对于初学者是选读内容,而对于专业程序员是必读内容。
第 8-11 章结构化数据是重点,这里用和 SQL 不一样的观点看待结构化数据运算,对于专业程序员同样有意义。从 SPL 的角度上看,SQL 对于结构化数据的理解有点简单了,世界是复杂的,你从数据库课程中学到的结构化数据知识在广度和深度上都不要,需要重新学习!

面向初学者的 SPL 概念 新手如何理解 SPL 运算 总结性地列出一些 SPL 编程中的概念和运算,有经验的程序员可以迅速理解 SPL 的特点以及和 SQL 的观念不同。
理解离散性 是一些博客类文章,可以阅读来理解 SPL 的设计理念,为什么在有了 SQL 和 Java 之后还要再发明 SPL 这种程序语言,以及 SPL 优势的理论基础。

计算逻辑

图书重点讲述概念的原理,并没有涉及太多的函数。要熟练地运用 SPL 解决数据计算问题,了解常用函数是必要的,这里是 SPL 函数参考
当然,熟悉常用函数不能靠字典式的参考,而要靠实践和练习。上面的图书链接中在每章后都附有一些练习题,习题 中有更多综合性的练习,跟贴中有例子数据集供下载。

SPL 常规数据表运算 SPL 游标上的常规运算 以文本文件作为数据源举例介绍常见的 SPL 函数。
进一步,运算示例 还有更多的示例代码可供练习和参考。其中的 文件处理 列举了一些针对数据文件的常见任务。

代码参考 中列举了常见运算的 SPL 代码,包括常见 SQL 语句的对应 SPL 代码。
CookBook 中分类整理了上百个计算示例。
应用计算版块 中会不断收集网上相关问题做解答。这些都可以用作代码参考。

应用环境

SPL 有非常好的可集成性,可以在 集成调用 找到你需要的应用环境集成方案。
SPL 支持数据源也非常多,可以在 数据源 找到你需要访问的数据源示例代码。掌握这些,就能很容易地解决多源混合计算任务了。
需要注意的是,访问非原生数据源(文件和数据库以及 HTTP 之外的数据源)需要事先加载外部库,在 外部库指南 介绍了外部库的种类以及连接方法,访问外部数据源的相关函数说明在 外部库函数参考

性能优化

这是有一定难度的内容,需要学习高性能算法。
前面的内容,对于有经验的程序员来讲,有两三小时就能上手,然后碰到问题再查资料找示例就可以。但是高性能算法没有这么简单,需要花几天甚至一两周的时间系统地学习并做练习!

建议先从不再改变的历史数据开始练习,暂不考虑数据还在变动的情况。另外,也不要管架构,只针对本地文件数据做计算。理解掌握了这些算法的运用后再考虑变动数据以及架构集成的问题。

新手如何使用 SPL 存储 总结性地介绍了 SPL 的存储机制,概要了解后再在实践中深入理解,这是性能优化的基础。
SPL 文件上的常规运算 以 SPL 文件作为数据源再介绍常见运算的 SPL 实现,可尝试练习以用 SPL 文件存储数据并实现基础运算,这已经能明显地受到与数据库的性能差异。

SPL 的高性能算法都写在 SPL 性能优化 中,这本书内容相对简要,部分算法的更详细内容可以参阅 高性能算法 技术专题 中的内容。
这些技能在没有练习之前是难以深刻掌握的,只能开始先大体看一遍有个初步的概要了解,在实践中要再反复回头阅读。

重点是要做练习,SPL 性能优化基础练习 通过一套示例可以把最常见的性能优化技巧练习一遍,其中带有示例数据集。
然后,可以尝试 用 TPCH 练习性能优化 ,TPCH 的覆盖面并不算全面,但在 SQL 适合描述的任务范围内也有一定的代表性。TPCDS 的例子就太多也缺乏代表性,不建议再尝试了。
再之后,可以尝试 高性能实践案例 里的综合性案例,对于理解高性能算法有巨大的帮助。

SPL 高性能实践的套路 阐述了使用 SPL 实践性能优化的一般步骤,不过需要在掌握常用算法和存储机制的基础上才能很好地理解。熟悉之后,实现数倍的性能提升并不是难事。