SPL 轻量级多源混算实践
0 准备篇
背景
多样性数据源混合计算是常态需求,同构或异构数据库之间、文件与数据库、NoSQL 与文件等,理论上任何数据存储之间都涉及数据混合计算和分析。但混算目前技术解决的并不好,同构库之间某些数据库还能支持,而完全异构的数据源实施混算就比较麻烦。逻辑数据仓库可以一定程度上实现多源混算,由于逻辑数仓大部分是基于 SQL 的,RDB 数据源可以通过表映射访问。但其他类型的数据源就比较困难,需要借助复杂的数据虚拟化技术,还只能部分实现。而且,逻辑数仓体系过于沉重,它经常会比应用本身还复杂,只适合应用于大型场景中。
esProc SPL 因为具备丰富的多样性数据源支持,所有数据源接入后都会转换成统一数据对象(序表或游标),这就具备了天然混合计算的基础,不管何种数据源只要能访问到就能混合计算。SPL 很轻,可以嵌入到应用中使用,让应用本身就能具备多源混算能力。而且,SPL 语法的简洁度甚至超过 SQL,所以用 SPL 做多源混算不仅功能满足,在工程实现上也更加方便。
SPL 为不同数据源提供了不同的连接器(Connector),其应用结构大概表述如下。
SPL 的数据源连接器分为两种:原生连接器和外部连接器。最常见的 RDB,文本、Excel、JSON 等本地文件,以及 HTTP 数据源等都属于原生连接器,内置在 SPL 核心体系中。而其他多样性数据源,如 MongoDB、Kafka、ElasticSearch、云存储都属于外部连接器,不在 SPL 核心体系内,需要另外部署。
这里列出了 SPL 支持的部分数据源,基本包含了常见的数据源。
原生连接器支持的数据源包括:MySQL、Oracle 等 JDBC 数据源;CSV、Excel、JSON 文件等 Local File;HTTP、RestAPI 等 Web 数据源,以及远程文件等。
这里使用 SPL 做多源计算包括以下内容:
目录
实践 1:在 RDB 上跑 SQL
学习 SPL 基本使用,如何与数据库交互,SPL 如何与应用集成
实践 2:查询 csv/xls 等文件
查询分析文件数据源,学会分别使用 SPL 原生语法和 SQL 语法处理文件
实践 3:查询 Restful/JSON 数据
学会使用 SPL 处理多层数据
实践 4:查询 MongoDB
以 MongoDB 为例学习连接查询其它外部数据源
实践 5:跨库 Union,比对
使用 SPL 完成跨库数据合并、去重等计算,并顺便实施数据比对,学习 SPL 处理大数据的方式
实践 6:跨库 JOIN
针对不同结构数据完成跨库关联,了解 SPL 区分 JOIN 的好处,学会如何处理大表 JOIN
实践 7:SQL 移植
学习使用 SPL 解决数据库迁移时的 SQL 移植问题,如何做到换库不改 SQL
环境准备
esProc SPL
从 [SPL 下载地址] 下载标准版,安装。
数据库
MySQL
下载安装 MySQL。
MongoDB
安装配置 MongoDB。
下载数据文件
数据文件下载地址: 数据文件