首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SPL轻量级文件存储提速查询实践

SPL轻量级文件存储提速查询实践

原创
作者头像
SPL开源社区
发布2025-08-26 15:20:30
发布2025-08-26 15:20:30
1760
举报
文章被收录于专栏:应用计算应用计算

传统交易(TP)数据库不擅长分析计算,而专业 OLAP 数据库又过于沉重,经常需要集群,不仅成本高昂,也会使系统架构变得更复杂。

把不再变化的历史数据存储成轻量级的 esProc SPL 列存文件,可以利用 SPL 语言的强大计算能力,跑出远超传统数据库的查询性能。esProc SPL 很轻,直接嵌入应用就可以运行,在实现数据外置提速的同时,也不会让整个系统架构变得很复杂:

这里准备了一套使用 SPL 外置数据提速查询的实践方法:

第一篇 - 常规过滤及分组汇总

第二篇 - COUNT DISTINCT

第三篇 - 外键维表的关联

第四篇 - 大主子表关联

第五篇 - 大主子表关联时的 EXISTS

第六篇 - 枚举字段条件过滤

其中涉及的实例都是传统数据库很头疼的性能问题,比如 COUNT DISTINCT,外键 JOIN,大主子表关联(包括 EXISTS),枚举字段条件过滤(包括 IN)等,助您突破数据库查询性能瓶颈!

开始之前,需要做些准备工作。

乾学院有例子数据 csv 文件和建表 SQL,模拟某公司线下订单和电子商务的部分数据。需要在 MYSQL 数据库中建表,并导入 csv 数据。

例子表结构是这样的:

事件表 events,电商网站用户的操作事件,一千万行,包括字段:

订单表 orders,存储线下订单数据,一千万行:

订单名细表 details,存储线下订单明细数据,三千万行:

客户表 customer,存储线下客户数据,数据量较小:

城市表 city,存储线下客户所在城市数据,数据量较小:

州表 state,存储线下客户所在州数据,数据量较小:

运货商表 shipper,存储线下运货商数据,数据量较小:

乾学院下载 esProc,用免费的标准版就可以了。

安装 esProc 后,试一下 IDE 是否可以正常访问数据库。我们以 MYSQL 数据库为例,先把 MYSQL 的 JDBC 放到目录 "[安装目录]\common\jdbc",这是 esProc 的类路径之一:

在 esProc 中建立 MYSQL 数据源,菜单栏选择 Tool-Connect to Data Source,配置 MySQL 标准 JDBC 连接,名字是 speed:

返回到数据源界面并连接刚才配置的数据源,如果数据源名变成粉色,说明配置成功。

在 IDE 中新建脚本,编写 SPL 语句,连接数据库,通过 SQL 加载 orders 表的数据。

SPL 代码 1:

按 ctrl-F9 或单击执行按钮后,点击 A2 格,在右边可以看到 100 条数据。

SPL 代码写在单元格中,可以直接用格名作为临时变量。

如果遇到问题可以前往乾学院查阅教程和函数参考:

实践使用的测试环境是 VMWARE 虚拟机,8 核 CPU,8G 内存,SSD 硬盘,操作系统是 Win11,MYSQL 版本是 8.0,esProc SPL 是标准版。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档