集算器 -九游会登陆

集算器是什么?

文件处理器
sql解题手
报表数据源
java计算包

集算器解决什么?

文件处理器

  • 自助处理文本\excel
  • 非专业开发人员快速探索手边数据
  • 文本类型多样,格式不规范
  • excel版本多样,布局较特殊
  • 批量处理文件

sql解题手

  • 桌面解决数据库难题
  • 逻辑复杂的计算
  • 多步骤过程化计算
  • 大量临时性计算
  • 自由度较高的探索式分析

报表数据源

  • 多样数据源,跨库跨源
  • 逻辑复杂的sql
  • 繁琐冗长的java自定义数据源
  • 低耦合可移植的库外存储过程

java计算包

  • 禁用sql,要求用java实现算法
  • 非rdb数据源
  • 跨库计算
  • 复杂算法、过程化算法
  • 热部署低耦合的库外存储过程
说明:spl是esproc采用的脚本语言,dfx为脚本文件,相当于外置存储过程,报表通过jdbc接口传入spl语句实现结构化计算或执行脚本。

集算器优势

独立计算引擎

不依赖于数据库的计算能力,拥有完整的敏捷语法体系

计算过程中不需要数据库

  • 不是转换成sql交由数据库执行
  • 可以针对任何数据源实施通用计算

敏捷程序语言

spl(structured process language)

结合了sql、java的共同优势
  • 适应集合批量运算(sql优势)
  • 擅长分步过程计算(java优势)
精心设计的丰富库函数和一致性语法
  • 比python更易掌握并且性能更好

示例某支股票最长连续涨了多少交易日?

python代码

1 import pandas as pd
2 def iterate(col):
3 prev = 0;
4 res = 0;
5 val = 0;
6 for curr in col:
7 if curr – prev > 0:
8 res = 1;
9 else:
10 res = 0;
11 prev = curr;
12 if val < res:
13 val = res;
14 return val;
15 data = pd.read_excel('d:/stock.xlsx',sheet_name=0). sort_values('tradedate').groupby('company')['closeprice'].apply(iterate);

sql代码

1 select max(continuousdays)-1
2 from (select count(*) continuousdays
3 from (select sum(changesign) over(order by tradedate) unrisedays
4 from (select tradedate,
5 case when closeprice>lag(closeprice) over(order by tradedate)
6 then 0 else 1 end changesign
7 from stock) )
8 group by unrisedays)

spl代码

  a
1 =stock.sort(tradedate)
2 =0
3 =a1.max(a2=if(closeprice>closeprice[-1],a2 1,0))
语法体系更容易描述人的自然思维!
集合运算领域专业语法,同样过程代码更简洁!

应用案例

案例1 某保险公司 - 库外存储过程

vertica不支持存储过程,复杂业务逻辑只能用java写,代码冗长不易维护

用户评价

  1. the best use for us is to pass parameters to the vertica database.
  2. each cell becomes a data array that are easy to use, compare and manipulate. it is very logical and you have made it user friendly.

优化效果

  1. 使vertica支持库外存储过程
  2. 过程化算法实施简单,友好
  3. birt数据准备简单高效

案例2某银行 - 计算中间件

excel种类多达44种,由java解析数据入库,开发周期长,硬编码难度高

降低开发成本

全部44种excel解析由原来的32人天下降到6人天

提升开发效率

每种excel解析代码量由100行变为3行

降低维护成本

除代码量简短易维护外;脚本热部署即修改即生效

网站地图