集算器 - 应用计算中间件

集算器是什么

  • 位于数据源和应用之间提供通用计算服务的数据计算中间件(DCM, Data Computing Middleware)
  • SPL(Structured Process Language)是集算器内置的程序语言
  • 不依赖数据库的计算能力可嵌入应用中使用是集算器的两个重要特征
独立计算、可嵌入使用的数据计算中间件

数据计算中间件的特征和标准

C

兼容性

Compatible
H

热部署

Hot-deploy
E

高性能

Efficient
A

敏捷性

Agile
S

扩展性

Scalable
E

集成性

Embeddable

为什么需要计算中间件

计算无处不在

需求

  • 报表统计、数据分析、业务处理,本质上都是计算
  • 大量计算任务要被嵌入到应用系统内部

现状

  • 大部分计算任务由数据库承担
  • 封闭的数据库无法满足随时随地的计算需求
需要有不依赖于数据库的计算能力

现有技术的问题

数据库

沉重

数据库建设和使用都非常笨重、臃肿,无法很好适应灵活多变、随处可见的计算需求

封闭

数据库的计算要在库内才能实施,难以完成跨(异构)库计算、无库计算

数据入库费时费力费资源

数据库无法嵌入使用,限制灵活性

同理,Hadoop相关技术也面临同样的问题

结构性问题

SQL

数据库本身存在结构性问题,而数据库语言(SQL)则又成为影响数据库的另一因素:

难写

SQL不提倡过程,难以实现复杂计算,经常要写得很长

难调试

嵌套多层的复杂SQL很难调试

*扩展阅读: SQL像英语是个善意的错误

语法问题
SQL示例

JAVA

JAVA也常用于数据计算,但其算法实现比SQL还要复杂(缺少集合运算类库)

语法问题

Python

Python也被用于数据计算

难以实现复杂计算

pandas不是专业结构化数据计算包,在处理分组有序等复杂运算时较为繁琐

集成性差

python几乎不具备集成性,很难嵌入到应用中实施计算

*扩展阅读: Pandas不擅长的结构化数据运算

语法与体系问题

计算目标:某支股票最长连续涨了多少交易日

select max(continuousDays)-1
from (select count(*) continuousDays
	from (select sum(changeSign) over(order by tradeDate) unRiseDays
		from (select tradeDate,
			case when closePrice>lag(closePrice) over(order by tradeDate)
			then 0 else 1 end changeSign
			from stock) )
	group by unRiseDays)

可以试试能不能读懂这句SQL,而这个计算用自然思维很好解决

*扩展阅读: SQL 的困难源于关系代数

集算器特性

SPL与集算器


简洁易用的开发环境


敏捷语法

计算目标:某支股票最长连续涨了多少交易日?
select max(continuousDays)-1
from (select count(*) continuousDays
	from (select sum(changeSign) over(order by tradeDate) unRiseDays
		from (select tradeDate,
			case when closePrice>lag(closePrice) over(order by tradeDate)
			then 0 else 1 end changeSign
		from stock) )
	group by unRiseDays)

SQL解法

SQL在使用窗口函数的情况下嵌套三层完成;

前面读懂了吗?


A
1 =stock.sort(tradeDate)
2 =0
3 =A1.max(A2=if(closePrice>closePrice[-1],A2+1,0))

SPL解法

其实这个计算很简单,按照自然思维:先按交易日排序(行1),然后比较当天收盘价比前一天高就+1,否则就清零,最后求个最大值(行3)


专门设计的语法体系

SPL特别适合复杂过程运算



丰富的运算类库

专门针对结构化数据表设计



多样性数据源

直接使用多个数据源混合计算,无需后台先将数据统一(ETL)后再计算



外部数据接口

  • 商用 RDBMS:Oracle、MS SQL Server、DB2、Informix
  • 开源 RDBMS:MySQL、PostgreSQL
  • 开源 NOSQL:MongoDB、Redis、Cassandra、ElasticSearch
  • Hadoop家族:HDFS、HIVE、HBase
  • 应用软件:SAP ECC、BW
  • 文件:Excel、Json、XML、TXT
  • 其他:Http Restful、Web Services、OLAP4j 、...
内置接口,即装即用

文件SQL查询

通过SPL可以针对MongoDB和文件等使用SQL进行查询


集算器赋予NoSQL和文件SQL查询能力

集成性

通过SPL可以针对MongoDB和文件等使用SQL进行查询



热切换

SPL解释执行,支持不停机热切换



多线程并行

方便地针对单任务实施多线程计算



SPL能力圈

应用场景

减少存储过程

存储过程的目的

  • 数据整理
  • 呈现准备

存储过程的问题

  • 造成应用内与应用间耦合
  • 安全性低
  • 移植性差

中间表替代

中间表的目的

  • 获得更高计算效率

中间表的问题

  • 造成应用内与应用间耦合
  • 过多引发数据库管理问题
  • 影响数据库容量和性能

数据库解耦

将存储过程和中间表外置到应用中

数据库仅承担存储和少量(通用)计算

应用与数据库解耦,易维护,易扩展


RDB协助

集算器还可以辅助RDB计算,提升RDB能力

  • SQL迁移将标准SQL转化为各类数据库"方言"
  • 并行取数提升性能
  • 跨库/异构库计算进一步增强RDB能力

跨库集群

借助集算器的跨库与并行能力实现多数据库集群计算


多样性数据源实时混算

集算器同时关联多个数据源进行实时数据混算,提供跨源T+0查询

  • 嵌入应用计算
  • 异构源实时混算
  • 冷热数据实时混算
  • 数据无需物理同库

文件计算

可以通过SPL原生语法进行文件计算,同时支持SQL查文件,简单方便

  • 提供两种文件计算方式
  • 熟悉SQL可以零成本上手

MongoDB计算

集算器可以强化MongoDB计算能力,简化计算过程

  • 使得MongoDB达到或强于RDB的计算能力
  • 增强计算能力后,充分发挥MongoDB原优势

ETL复杂计算

传统ETL往往先L再ET,费时费力;通过集算器可以实现真正的ETL过程

  • 库外处理,为数据库减负
  • 减少IO,缩短时间窗口
  • 实现简单灵活
  • 允许多源混合处理

JAVA计算替代

使用集算器替代JAVA计算可以降低编码难度,提升运算效率

  • JAVA编码难度高,集算器更加简洁高效
  • JAVA不支持热切换,SPL解释执行支持热切换

应用解耦

使用JAVA做处理在线计算会导致与应用耦合度过高,集算器可以解耦计算模块,单独运行维护

JAVA

模块化困难

Java程序必须和主应用一起编译打包,耦合度高

难以热切换

使用Java编写的算法有修改后会导致整个应用重新编译部署,很难做到热切换。

集算器

模块化简单

集算器脚本文件可以单独维护,方便模块化

容易热切换

集算器是解释执行的语言,很容易做到热切换


报表内计算

集算器嵌入报表应用中完成报表数据准备工作(计算引擎),弥补报表工具本身计算能力不足

  • 提高报表开发效率
  • 降低报表与应用耦合度
  • 降低报表与数据源耦合度
  • 提升报表计算性能

T+0查询报表

T+0问题

  • 交易一致性要求关系数据库
  • 历史与当期同库,数据量太大
  • 历史与当期异库,跨库计算困难

库外计算实现并行跨库计算

  • 历史数据还可文件化

当前数据中台和微服务架构

只有数据进入"库里"才能实施计算,数据采集或分析应用中计算只能硬编码

引入开放计算引擎后的数据中台与微服务架构

开放的计算能力分布在涉及计算的各个阶段;没有"库"的封闭,体系更加开放

更多资料

SPL CookBook
应用案例
Java计算库

天下网标王枣强县如何优化网站锡林浩特网站优化多少钱网站优化方案定制网络优化师自学网站网站免费优化平台吴忠农产品网站优化优化公司网站催促云速捷力荐深圳哪里网站优化效果好网站页面优化修改网站的优化拣选火28星网站排名优化培训搜行者SEO山东网站优化排名公司网站内部结构优化宝山区企业网站优化定制舟山快速优化网站沁阳怎么优化网站网站外部优化预算表越秀区网站优化排名哪家好孝感seo网站优化佛山网站关键词优化公司天津放心的网站关键词优化壹起航怎么调整网站优化优化网站怎么做盘锦网站长尾关键词优化什么是wap端网站优化沁阳百度网站优化找哪家网站优化中易黄江网站优化费用福州鼓楼网站seo优化选哪家龙岩网站优化营商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化