1、 分布式并行数据库集群在海量数据处理上的应用 武新 - 南大通用数据技术有限公司 目 录 1 列存储 vs 行存储数据库性能特征分析 2 GBase MPP并行数据库集群 3 海量数据统计、分析应用案例 4 总结 不同压缩算法选项 SMP多 CPU上的 双向 并行技术: 提升 CPU利用率 并行查询 并行加载 单表 300GB/小时 多表 500GB/小时 集群 2TB/小时 t x t 裸 数 据扫 描 统 计 压 缩扫 描 统 计 压 缩扫 描 统 计 压 缩G B a s e 8 a协 调 t h r e a d( s a v e )D CD CD CD CD CD CD CD CD C
2、D CD CD CD CD CD C并 行 t h r e a d s在 不 同 C P U s 上并 行 t h r e a d s高 速 数 据 分 析 智 能 索 引 压 缩 引 擎管 道 操 作数 据 在 磁 盘 上扫 描 关 联 聚 合扫 描 关 联 聚 合扫 描 关 联 聚 合结 果协 调 t h r e a d并 行 t h r e a d s在 不 同 C P U s 上并 行 t h r e a d sS c a n n e r s J o i n e r s A g g r e g a t o r s管 道 操 作D a t a并行操作 : Join Group by So
3、rt 物化 Scan Like 查询 投影列 =projection,materialization A & B关联 列 =join 条 件 过滤 列 =Predicates 分 组 算子 =Aggregation 排序算子 =Sort Top N算子 =Limiter 一个典型的 SQL执行过程分析 Select b.c2, sum(a.c3) as c3 From A as a, B as b Where a.c1=b.c1 And a.c2 between 20120101 and 20120131 And b.c2= 北京 Group by b.c2 Order by c3 Limit
4、 100 C1 (int) C2 (date) C3 (int) Cn 1000 20120101 12 1001 20120101 35 1190 20121231 56 C1 (int) C2 (varchar) C3 Cn 1000 北京 1001 上海 1190 天津 表 A 表 B Scan A Scan B Tmp rowset Tmp rowset HashJoin A & B Tmp rowset Group by Ops Sort Limit Ops Final results SMP 多核并行 提升 CPU使用效率 Parallel I/O 多 CPU并行 :从串行到并行执
5、行 Scan A Scan B Tmp rowset Tmp rowset Tmp rowset Sort Limit Ops Final results Split ops Split ops Parallel Hash Join A & B Parallel Group by Ops Parallel join Parallel Aggregation 串行执行计划 并行执行计划 T PC - H 1 0 s cal e s 2 2 条S Q L 执行时间对比(秒)6031480100200300400500600700串行 并行S S B 10S c a l e s 13条S Q L 执
6、行时间对比 (秒)125.9621.47020406080100120140串行 并行测试环境 2*4核 CPU, 16G内存, 2*2TB SATA盘 4倍的加速 6倍的加速 SMP多 CPU并行效果案例 GBase 8a解决了 I/O效率和传统 Index问题 21 GBase 8a 列存 储 RDBMS 高性能 高密度 自动优化 基于列 + 数据包的压缩 (高效,透明) 基于数据包的列存储结构 (提升 I/O效率) 全并行架构 (提升 CPU使用效率) 粗粒度智能索引 (高效自动优化能力) 目 录 1 列存储 vs 行存储数据库性能特征分析 2 - GBase MPP并行数据库集群 3
7、- 海量数据统计、分析应用案例 4 总结 & QA 1992 By David Dewitt and Jim Gray memory CPU CPU disks memory CPU CPU memory CPU CPU Interconnection Network Shared storage:SAN,NAS 数据 典型的 Shared Disk架构 disks disks memory CPU CPU disks memory CPU CPU disks memory CPU CPU Interconnection Network 数据 数据分布策略 Hash, Range, Rando
8、m 典型的 Shared Nothing架构 新一代并行数据库集群 出现的源动力 ? Internet 推动了网络技术的发展、性价比的提升 千兆,万兆, Infiniband 交换机,网卡价格的快速下降 PC 服务器越来越“小型机化“ 多 CPU, 多核技术的普及: 80核的 PC服务器 大内存的支持: 2TB 内存 高可靠性技术的普及和使用:冗余电源,冷却系统, ECC,等 Linux系统的成熟 稳定、可靠、多线程内核;高效的文件系统等 BIG DATA 的推动 - 数据爆炸式增长 单个 SMP系统已经无法应付数据增长带来的压力,而老一代基于 SN和专用硬件平台的并行数据库产品性价比太低 M
9、PP并行数据库集群 解决的问题 : 提升数据处理性能: Speedup 提升数据处理量: Scale out 海量数据处理的 TCO问题:降低处理每一个 TB的整体成本 技术难点 CAP:只能同时满足其中 2个属性 数据的重分布:性能与数据库可用性 ? 大表之间的 join:是否能实现线性扩展 ? 复杂 SQL:执行计划的产生,优化,调度 ? 易用性,可维护性:在线扩展,节点替换,升级? 可靠性:如何解决比较频繁的硬件故障? 节点 1 GBase 8a 列存储 数据库 GBase 8a 列存储 数据库 GCluster 分布式 SQL 调度, 执行 GCluster 分布式 SQL 调度, 执
10、行 GCWare 集群管理服务 GCWare 集群管理服务 节点 n High speed Interconnect 与 Gcluster是松散的结合 通过 CAPI与上层通讯 执行收到的 SQL 管理节点的 各种数据 元数据管理 产生分布式 SQL执行计划 调度,执行分布式 SQL 汇总执行结果,返回给客户端 单独的集群管理层 故障 监测,集群状态管理 高可用管理 数据一致性保证 GBase 并行数据库架构: 列存储 +MPP GBase 并行数据库架构: 列存储 +MPP 列存储 DBMS 分布式 存储层 分布式 集群管理层 集群节点 分布式任务 分布式并行 数据管理层 A B GClus
11、ter GBase 8a 列存储 DBMS 结构数据 Posix FS 数据多个副本 GClusterware Gcluster Coordinator OS + 存储 A B GCluster GBase 8a 列存储 DBMS 结构数据 Posix FS 数据多个副本 GClusterware Gcluster Coordinator OS + 存储 应用层 统一接口 层 JDBC, ODBC, .Net, CAPI 高速数据链接 SQL SQL Sort Limit ops Final Resultset Scan A( p1) Scan B( p1) Scan A( p2) Scan B( p2) Scan A( pn) Scan B( pn) 节点 1 节点 2 节点 n 同时可使用:计算能力 1千个核, I/O 10GB/s,内存 10TB SMP + MPP 的大规模并行处理能力