阅读373 返回首页    go 阿里云 go 技术社区[云栖]


蒋步星:轻量级大数据计算引擎

bac028b1ba618344ec9d8ca4624fadb44c09bb69

并不是任何事物都需要沉重的大数据平台,许多还是需要轻量级计算。

轻量级计算需求

  • 大数据的技术本质是高性能

  • 不总是有那么大的数据量

  • 不总是适合部署大数据平台

  • 大数据平台 不总是可以扩容硬件(内存) 

大数据开发难度大

  • 大数据平台对SQL查询关注过多

  • 大量过程计算的开发难度还很大

  • 提高性能本质上是降低开发难度 

举例:漏斗转换器

0079e9a222de99de2c2662a5c4f2ab93ced290dc

集群透明化

  • 大数据平台努力实现集群透明化 

  • 透明化难以获得最优性能 

  透明化只能选择最保险的方法,一般是性能较差的那     个,透明化框架对资源消耗严重

透明化与高性能的权衡

  • 数据分布 

  • 任务分配 

  程序员分配:根据节点能力安排任务,无框架资源消     耗,系统自动分配

轻量级计算的技术特征

  • 目标:过程计算
  • 可集成性
  • 数据源开放性

  • 注重单机优化

  • 权衡集群透明与高性能

集算器 — 技术特征

  • 面向过程计算 
  • 无缝应用集成 
  • 多样性数据源接口  直接文件计算 
  • 单机优化技术 多线程并行 
  • 无中心集群结构  自由数据分布和任务分配

集算器 — 敏捷语法体系

某支股票的涨幅交易日

53d9f39c1b6dd7b2562970a405ff7baf6121068c

数据模型不限制高效算法实现

f13913c9abe9cc340172b389dcb846d80dd99f17

集算器 — 面向过程计算

7da86c8dbaa08fec560f0a6759e09db387929037

集算器 — 开发环境

8af337f753c9c61aa012558b9443a8e41f5a843c

集算器 — 应用结构

d3e18dfec02d5447a5d5f208d914956ab30180e7

轻量级计算的技术特征

  • 高效二进制压缩文件、列式存储
  • RDB:Oracle,DB2,MS SQL,MySQL,PG,…. TXT/CSV,JSON/XML,EXCEL 
  • Hadoop:HDFS,HIVE,HBASE 
  • MongoDB,REDIS,… 
  • HTTP、ALI-OTS … … 
  • 内置接口,即装即用

单机计算技术 

e2f9e55a76f0844d63a25c31184ddd0e5d79419d

3ea1dc531f66756c887652e34c00653761068f25

b3a8d683bc7f03a5d5a6062e738a99ebded61241

10dd2d8b789d423bf90078771269667515f09acc

c984edfdd568ecfdcb144b84646783306a2fdddf

9fa1e66db6cf29a47f4fcb356cd43df130a0403a

29b20db1e9483ec11bc284bacd309adbeec718bc

2、连接解决

7d578f5b985c7c2a2387a21abb43df4e6e3eb4ca

区分JOIN

76b5b432587ea154a8d3744882f24cc45bb43eb7

外键指针化

e081a2b0b03f9de12926082c0354528e4df3a1fa

外键序号化

a5d09ab68cf42938ba7ba03171ea6ece4e671244

1c611cee08ec21ca9ce1977ba016c4114d2426c7

3、存储格式

927ed0428300e1f7eb9136745b08cb53e7478019

1568540108c6e7ffae63cc555ed4f591fd47d082

序号主键

多层序号式主键 

外存指针式外键,高速引用 

外存游离记录表示,离散性 

天然有序,易于查找

分组针对外键 

结果自然对齐有序


233dc9ea3ab3954e257d2dab2311520b63ffe29e

多层复式表

层次式有序集合 每层均可以有数据结构 同维表与主子表统一 消除对齐式连接

a3a7b731b0a34b503b49f3e1691be21cf4f31f1c

4、使用索引


ad9296120558a56931c73d6ab0782c926be450e3

文本分段

7ffe5a81d6e00c1010a4e2a853e47c180ad27303

倍增分段

分段数足够大,以适应变化的并行数

每段记录数相对平均

数据追加时不必重写所有数据,保持连续性

3cdd0c8e35d8a619137632652e2936f7364449bf
73bd84e92453c9fde7d30a092c9324e03ece34b6

列存分段

倍增分段方案解决列存并行困难 各列同步分段 

同列连续存储



381147e9b0610cb3cece6d1552f994a23665828e

9099849601288e3228e32183a07cb1315d2ec372


有序与对位分段

504beae32201d6d7d3cfba6a306bbe72121a460f

9e1d0868e2f3f48cb53e2b94807e454d97c36a93

a11542e699596939e4966f1418adf639b9a105ca

集群方案

  • 集群设计原则 

确保容错 

减少网络传输量 

考虑负载均衡

  • 集群计算技术

e2369701add11a4b1c2ebe1831d329b19c7d4a46

集群方案 — 无中心设计

  • 服务器集群无中心

  • 无中心不会发生单点失效

  • 计算任务有主控节点

集群方案 — 负载均衡与容错

  • 具备负载均衡能力 

  • 具备容错能力 

集群方案 — 并行逻辑结构

9d47166cfcecd494b77a30db71978da46e4422d3
共享式数据计算分布
36645d895fbce90bb10e020d98fe2948dc9ee842

d7af3172a6bfa78c6047a05ae9ecf0f610f5eaee
冗余式外存分布

023569f6ed49221bb402b87e961b6ef326cf4109
外存分布 — 数据同步

677fc0d7ddef3b552e21d9a60913113ef07370db
外存分布 — 动态任务分配
f5fb08740f0e760b540bb4d6cb77b52c8084508b

备胎式内存分布

4c54d4e9940820aa9115f6d14ef6a02f4a40fce4

内存分布 — 静态任务分配

33d133975963e5963a002b01c6e2c393436fc792
集群维表

79b3abf91efc311db30dd67179ecc64f954ed9cf

集群维表 — 示例
79b3579a61cc564410afe387a86fa5429f960175
MapReduce->ForkReduce

集群应用 — 异构数据

集算器可以基于同构或异构数据库集群进行结果汇总,为报表输出汇总后的结果集。

00e999b2d3c3fc27892db373b92935d97dd603bd

集群应用 — 异构数据库集群(联合查询)

集算器与报表V5合作提供DQL语言,可基于异构数据库集群进行联合查询,结果汇总后为上层应用提供数据输出服务。

125e75f12572c130e45ffe84106771f4a5b30a24
集群应用 — 协助HADOOP工作

集算器是轻量级、高性能、分布式的计算引擎,解决HADOOP上SQL能力弱、开发难、运算慢的问题,可以极大地缩减大数据平台的搭建周期和实施成本。

60c9c1c9854201ad28e9f3d1f0c828b3d4deac55
集群应用 — 独立工作

集算器作为独立的大数据计算引擎,可自己管理数据,不需要网络文件系统,通过标准的接口为上层应

769bfe2dba09b187304986f73f0014e0b8ef56c4

本文来自云栖社区合作伙伴“中生代技术”,了解相关信息可以关注“中生代技术

最后更新:2017-11-15 10:34:31

  上一篇:go  怎样配置MySQL数据库超时设置?
  下一篇:go  分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?