当前位置: 首页 > news >正文

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。

下载数据文件

数据文件.rar
程序.rar

http://www.lryc.cn/news/587925.html

相关文章:

  • Redis集群方案——Redis分片集群
  • Linux 消息队列接收与处理线程实现
  • python的微竞网咖管理系统
  • P2802 回家
  • 国家互联网信息办公室关于发布第十二批深度合成服务算法备案信息的公告
  • 力扣算法--数青蛙与外观数列问题
  • 3.2 WPF 画散点图
  • 【Python3教程】Python3高级篇之MySQL - mysql-connector 驱动介绍及示例
  • 【WPF】WPF 自定义控件 实战详解,含命令实现
  • 深地之下的智慧触角:Deepoc具身智能如何为矿业机器人铸就“感知之核”
  • Mac (m1) Java 加载本地C共享库函数 .dylib 函数 Unable to load library ‘liblicense‘
  • 【爬虫】Python实现爬取京东商品信息(超详细)
  • 来时路,零帧起手到Oracle大师
  • FilterRegistationBean报错does not have type parameters。idea启动日志无明显报错提示冲突 kaki的博客
  • IDEA实现纯java项目并打包jar(不使用Maven,Spring)
  • Linux的相关学习
  • Oracle物化视图函数使用注意事项
  • Oracle 递归函数及 其他数据库 CTE 使用小计
  • SpringBoot集成SAP,本地IDEA启动和Windows服务器部署
  • 企业培训笔记:axios 发送 ajax 请求
  • iOS高级开发工程师面试——RunLoop
  • [Nagios Core] struct监控对象 | 配置.cfg加载为内存模型
  • CSS `:root` 伪类深入讲解
  • Reactor 模式详解
  • spring shell 基础使用
  • Transformer江湖录 第五章:江湖争锋 - BERT vs GPT
  • 20250714让荣品RD-RK3588开发板在Android13下长按关机
  • Bash常见条件语句和循环语句
  • vLLM与SGLang在自然语言处理领域的技术架构与性能对比研究
  • 从数据库到播放器:Java视频续播功能完整实现解析