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。

下载数据文件

数据文件下载地址: 数据文件