一直以来,我们有一个愿望:

让数据计算变得简单和高效!

  • 可以让你早下班,有时间陪父母、陪孩子、陪女友…;
  • 可以不再费力把计算写成一句以后连自己都看不懂的长sql;
  • 可以按照自然思维实施算法,分步写出;
  • 可以让算法在一个屏幕之内写出来,而无需上翻下翻。
  • 可以随心所欲设计算法,而不再面对封闭的优化器束手无策;
  • 可以拥有开放的计算能力,不再受限于数据库本身;
  • 可以充分发挥硬件性能,提升资源利用率;
  • 可以随心所欲地扩容;
  • 可以不再为了hadoop而hadoop。
现在,碰巧我们做了这样一个产品,一起了解一下吧

集算器能带来什么

对于企业

  • 拥有一个高性能计算引擎,可提升报表/bi系统10倍以上查询速度
  • 拥有一个文件系统数据集市,快速建立,节约数据库成本
  • 拥有一个前置计算服务,可辅助快速实现微服务
  • 拥有一个开放灵活的计算体系,可与任意应用结合,易集成,易扩容
  • 拥有一个擅长处理复杂etl过程的工具,不用再硬编码,省时省力省人工
  • 拥有一个非hadoop的轻量级大数据平台,缩短建设周期,处理tb级数据分分钟搞定

对于你

  • 拥有一个早下班神器!有时间陪老婆、陪孩子、陪宠物…
  • 获得一项数据分析的新技能。请自行脑补:别人搞不定,你搞的定时,别人的眼神~~
  • 有时间去专注业务,帮助你成为业务和技术双料专家

集算器是什么

spl

structured process language

面向过程的结构化数据计算语言

dcm

data computing middleware

数据计算中间件

hpc

high performance computing

高性能计算

集算器-九游会登陆

structured process language

面向过程的结构化数据计算语言

spl特性

集合化

结构化数据总是批量形式

集合运算库 · lambda语法 · 动态数据结

sql是集合化的语言

where,order by,group

intersect,union,minus

离散性

集合成员可以游离在集合外存在

独立运算或及其它游离成员再组合新集合运算

sql缺乏离散性

只有单行记录的表,没有游离记录

计算结果总是新产生,和原记录无关

深度集合化

彻底的集合化需要离散性的支持

允许游离成员组成新集合

分组子集 · 非常规聚合 · 主子表

有序性

有序计算是集合化与离散性的结合物

运算不仅与数据本身有关,还和数据所在位置有关

跨行引用 · 有序分组 · 位置利用
spl举例1(有序分组) 一支股票最长连续上涨了多少天?

spl代码

  a
1 =股票.sort(交易日).group@i(收盘价<收盘价[-1]).max(~.len())

sql代码

1 select max(连续日数)-1 from
2 (select count(*) 连续日数 from
3 (select sum(涨跌标志) over ( order by 交易日) 不涨日数 from
4 ( select 交易日,
5 case when 收盘价>lag(收盘价) over( order by 交易日 then 0 else 1 end 涨跌标志
6 from 股票 ))
7 group by 不涨日数)
spl举例2 找出连续上涨三天的股票

spl代码

  a
1 =股票.sort(交易日).group(代码)
2 =a1.select((a=0,~.pselect(a=if(收盘价>收盘价[-1],a 1,0):3))>0).(代码)

感受spl分步骤解题的思路,以及有序运算的效能!

sql代码

1 with a as
2 (select 代码,交易日, 收盘价-lag(收盘价) over (paritition by 代码 order by 涨幅) from 股票)
3 b as
4 (select 代码,
5 case when 涨幅>0 and
6 lag(涨幅) over (partition by 代码 order by 交易日) >0 and
7 lag(涨幅,2) over partition by 代码 order by 交易日) >0
8 then 1 else 0 end 三天连涨标志 from a)
9 select distinct 代码 from b where 三天连涨标志=1

data computing middleware

数据计算中间件

dcm的特征和标准

chease
c

兼容性

compatible
h

热部署

hot-deploy
e

高性能

efficient
a

敏捷性

agile
s

扩展性

scalable
e

集成性

embeddable

dcm应用场景

  • 01报表应用数据准备
  • 02bi系统数据引擎
  • 03数据计算前置机
  • 04etl数据处理
  • 05库外存储过程
  • 06边缘计算服务
  • 07可编程数据网关
  • 08嵌入式数据计算

低耦合

计算逻辑脚本单独维护,方便模块化

集成性

集算器使用java开发,提供标准应用接口可无缝集成到应用中

多样性数据源

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

外部数据接口

  • rdb:oracle,db2,ms sql,mysql,pg,….
  • txt/csv,json/xml,excel
  • hadoop:hdfs,hive,hbase
  • mongodb,redis,…
  • http、ali-ots
内置接口,即装即用

文件sql查询

针对mongodb和文件等使用sql进行查询

t 0查询

目前t 0在线计算常用方式与存在问题

1) 历史和当期数据同库存储

大量的历史数据会导致高昂的数据库成本(存储成本和性能成本)

2) 历史和当期数据分库存储

需要数据库具有跨库运算能力,但实施复杂度较高,性能较低;当数据库类型不同时难以实现

集算器可以基于多个异构数据库完成报表t 0查询;

还可以将历史数据存放到io性能更佳的文件系统中采用集群运算获得更高性能和更低成本

数据库解耦

文件系统io性能高于数据库,还可以使用压缩数据存储、列式存储、内存记录引用,以及分布式集群等获得更高性能,减轻数据库负担

high performance computing

高性能计算

高效算法

软件改变不了硬件的计算性能

但软件可以设计一些高效(低复杂度)算法,降低计算规模,从而提升计算性能

这类方案通常需要定制化,因地制宜,看菜吃饭

集算器使用了诸多高效算法:

  • 分组计算
  • 关联计算
  • 查找定位
  • 遍历技术
  • 游标与管道
  • 并行计算
  • ......

高效算法举例 – 分组计算

了解了计算和数据特征,就可以选用适合的算法,从而获得高性能

集算器性能表现

测试结果(时间单位:秒)
* 数据规模:100亿行;集群数量:4
测试用例 intel x86芯片 国产飞腾芯片
spl读文件计算 spl读数据库计算 数据库中sql计算 spl读文件计算 spl读数据库计算
连接后并集 - 3.8 >1小时 - -
连接后交集 - 3.9 >1小时 - -
多对多连接遍历 69 103 >1小时 93 268
有序分组遍历 100 647 >1小时 102 2037
多步过程计算 272 848 >1小时 377 >1小时
大分组 39 155 2573 56 2493
大表关联分组 111 566 >1小时 178 2106
批量键值查询 15 >1小时 >1小时 15 >1小时

【注】spl润乾集算器采用的程序设计语言;sql关系数据库采用的程序设计语言

国产飞腾芯片上运行的润乾集算器可以超越intel芯片上分布式关系数据库的性能

高性能存储

高性能数据存储

私有数据存储格式,集文件、组表

文件系统存储形式

支持以树状目录方式按业务分类存储数据

集文件

  • 倍增分段方式支持任意数量并行
  • 自有高效压缩编码(减少空间;cpu占用少;安全)
  • 泛型存储,允许集合数据

组表

  • 行列混合存储
  • 有序存储提高压缩率和定位性能
  • 高效智能索引
  • 倍增分段方式支持任意数量并行
  • 主子表合一减少存储与关联
  • 排号键值实现高效定位关联

分布式计算

数据容错和计算容错

提供内外存两种数据容错机制,外存冗余式容错,内存备胎式容错


支持计算容错,节点故障时自动将该节点计算任务迁移掉其他节点继续完成

可控数据分布

用户可根据数据和计算任务的特点灵活定制数据分布及冗余方案,有效减少节点间数据传输量,以获得更高性能

无中心架构,避免单点失效

集群没有永久的中心主控节点,程序员用代码控制参与计算的节点

负载均衡能力

根据每个节点空闲程度(线程数量)决定是否分配任务,实现负担和资源的有效平衡

网站地图