首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SPL轻量级多源混合计算

SPL轻量级多源混合计算

原创
作者头像
朱迪
发布2025-06-19 15:41:07
发布2025-06-19 15:41:07
1020
举报
文章被收录于专栏:数据计算数据计算

多样性数据源混合计算是常态需求,同构或异构数据库之间、文件与数据库、NoSQL与文件等,理论上任何数据存储之间都涉及数据混合计算和分析。但混算需求目前技术解决的并不好,同构库之间某些数据库还能支持,而完全异构的数据源实施混算就比较麻烦。经常要借助逻辑数据仓库,但基于SQL的逻辑数仓不仅能力有限,而且体系过于沉重,经常会比应用本身还复杂,只适合应用于大型场景中,并不适合众多日常的轻量多源混算场景。

SPL因为具备丰富的多样性数据源支持,所有数据源接入后都会转换成统一数据对象(序表或游标),这就具备了天然混合计算的基础,不管何种数据源只要能访问到就能混合计算。SPL很轻,可以嵌入到应用中使用,让应用本身就能具备多源混算能力。而且,SPL语法的简洁度甚至超过SQL,所以用SPL做多源混算不仅功能满足,在工程实现上也更加方便。

图形用户界面

AI 生成的内容可能不正确。
图形用户界面 AI 生成的内容可能不正确。

SPL为多源计算设计了两种Connector,最常见的RDB,文本、Excel、JSON等本地文件,以及HTTP数据源等都属于原生Connector内置在SPL核心体系中;其他多样性数据源,如MongoDB、Kafka、ElasticSearch、云存储属于外部Connector,不在SPL核心体系内,以“外部库”的形式提供,随需引入即可。

对于最常见的RDB,SPL通过JDBC与数据库交互,能动态生成/拼接SQL,也可以为SQL传递参数,原来在Java等语言与SQL结合的场景都可以使用SPL来完成。

一句执行SQL并传递参数:

处理CSV文件也简单,3句就能完成从读取到过滤再到汇总的计算:

而且SPL还为熟悉SQL的小伙伴提供了SQL支持,可以用SQL查文件:

SPL语法和SQL语法还能混用,可以应付任意复杂情况。比如查询无标题CSV时,用SPL语法读取,然后用SQL做计算:

除了数据库表、CSV、Excel这些二维结构,SPL还特别擅长处理诸如JSON类的多层数据。SPL提供了读取Restful和JSON文件的接口,数据读入后可以通过点(.)操作符逐级引用多层数据,代码简单直观:

对于一些没那么常用的数据源,像MongoDB、Kafka、ES这些,SPL基于数据源的原生接口进行了简单封装,用到哪个引入哪个就可以。而且这种轻封装(相对逻辑数仓要深度定制开发)的模式更易于扩展,还能保留数据源的原生语法充分发挥数据源自身的能力。

以MongoDB为例,SPL连接、读取、和MySQL混算也是一气呵成:

SPL不仅能处理小数据,当数据大到内存装不下时,就要用到SPL提供的游标机制,分批加载到内存处理数据。这样无论何种规模的数据计算,SPL都能轻松搞定。

比如在多库数据合并和关联计算时,用SPL实施大数据计算仍然很简单:

多库数据合并/比对:

跨库关联:

游标与内存序表的操作基本一致。

此外,SPL还为不同数据库之间移植SQL提供了无缝迁移能力。简单配置和编码就能透明不同数据库之间的方言差异,获得“更换数据库也不用改SQL”的爽感。

我们已经将SPL做多源混合计算的各种情况做成了免费课程,6月20日线上直播~~乾学院

通过本课程,您将快速掌握多源数据融合计算能力,轻松实现跨库/文件/API/NoSQL的混合计算,完成从轻量级方案设计到SQL无缝迁移的全流程实战,用简洁架构替代复杂系统。

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

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

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

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

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