清华同方大数据解决方案
发布时间:2016-09-28
清华同方大数据解决方案 清华同方JKD分布式内存数据库系统
清华同方JKD分布式内存数据库是新一代结构化大数据分析与处理平台,重点解决大数据领域下的信息孤岛快速整合和海量数据秒级别处理性能等难题,能够以普通的X86服务器集群支撑大规模海量数据分析。JKD具有查询速度快、数据装载速度快、批量DML处理快的主要特点,而且数据处理规模和性能可以随着硬件的添加呈近线性增加,拥有非常良好的可扩展性,在数据仓库、商业智能的应用上,尤其在海量数据的处理方面JKD表现出极其优异的性能。
逻辑分层
- JKD分布式内存数据库从逻辑角度可以分为四层:存储层、网络层、计算层以及接口层。
- 存储层实现了大规模数据的分布式存储。
- 网络层实现了各个节点间的高效互联。
- 计算层对大规模数据进行分析、挖掘和应用。
- 接口层是对下面各层的统一封装,提供标准化入口来管理和应用数据。
Share-nothing/MPP核心架构
JKD采用shared-nothing的MPP架构,将数据平均分布到系统的所有节点服务器上,每个节点只存储每张表或表分区的部分行,所有数据加载和查询都是自动在各个节点服务器上并行运行,主机,操作系统,内存,存储都由本节点自我控制,不存在共享;每个计算节点类似于一个小数据库,具有独立的处理器和内存,处理本地数据,不存在对资源的竞争,通过并行计算提高整体性能;当需要扩展时,可以通过在线增加节点获得接近于线性的容量和性能增长,因此能够更好地适应大数据的环境及发展趋势。
大规模数据存储和处理
JKD使用MPP架构,同时使用多台计算机并行计算,极大地提高了对海量数据的存储及处理能力。
通过将数据分布到多个计算节点,可以实现PB级规模的数据存储;I/O操作经常成为数据处理的瓶颈,JKD通过分而治之的方案,将集中的I/O处理分散到了多个计算节点上,提高I/O效率,避免瓶颈发生;与数据分散存储对应的是数据集中管理,通过在控制节点上统一管理的全局schema,可以屏蔽数据分散的细节统一管理所有数据。
行列混合存储和执行
JKD支持按列或按行混合存储数据,每张表或表分区可以由管理员根据应用需要,分别指定存储和压缩方式。用户可以对任何表或表分区选择按行或按列存储数据和处理方式。
高性能网络架构
分布式系统中,节点间的交互,尤其是控制节点与计算节点间的交互是非常频繁的,因此网络延迟对整体系统的影响也非常大。JKD支持包括InfiniBand在内的高速网络,并且使用了RDMA技术,大大提高了节点间交互的效率。
InfiniBand是当前主流的高性能网络技术,2014年HCA连接速度已经达到100Gb/s,在HPC TOP 500中具有最高占有率,采用这种网络架构可以大幅降低网络延迟,并且具有很好的可扩展性;计算节点间通过RDMA (Remote Direct Memory Access) 技术进行数据传输的处理过程简化效率更高,并且几乎不占用彼此的CPU资源,大幅降低传输延迟,保证计算性能。
分布式内存计算
I/O操作经常会成为大规模数据处理的性能瓶颈,通常内存的速度1百万倍快于磁盘,如果进行频繁的磁盘I/O操作将严重影响系统效率,JKD充分利用分布式内存计算技术来提高系统性能。
GPU加速
GPU是一种高性能的协处理器,在HPC领域被广泛运用。在特定场景下合理运用GPU的处理能力,能取得非常好的提速效果。与CPU相比,GPU具有更多的计算单元,更适用于同时进行大量简单的统一操作,针对相关度低、计算密度大、计算时间远大于数据存储时间的场景,能够取得1-2个数量级的加速。
JKD控制台
JDK控制台是一个交互式图形Web应用程序,通过实时收集JKD控制节点和各计算节点运行状态、资源负载、数据分布、数据处理等信息,管理员可以直观了解系统各项性能指标参数。控制台还提供数据库管理功能,允许管理员执行管理任务,例如数据库启动、停止等操作。
对比优势
与其他类似的大数据分析处理解决方案相比,JKD分布式内存数据库具有以下功能特性:
- 1000s节点级别横向拓展性
- 支持基于X86服务器集群的Share-nothing架构
- 支持分布式全内存计算
- 支持分布式事务
- 兼容ACID
- 兼容SQL-92,99,2003,2008标准
- 支持存储过程、用户自定义函数
- 支持二级索引等复杂索引
- 支持行、列混合存储
- 能够无缝兼容Oracle主要语法
- 支持GPU辅助计算,大幅提高性能(可选)
- 支持Infiniband RDMA技术(可选)
- 支持JDBC/ODBC/ADO等连接方式
- 无缝兼容Hadoop及其生态系统套件
部署结构
JKD产品由管理控制台、控制节点和计算节点组成,各节点之间通过内部高速网络通道连接,客户端通过局域网连接到控制节点访问JKD,或使用浏览器登录控制台对JKD进行监控管理。
为达到较好的应用效果,部署JKD时建议满足如下要求:
- CPU采用Xeon E5-2600V3及以上
- 每服务器内存分配建议大于16GB
- 网络建议使用10 Gigabit Ethernet或InfiniBand(专有版本)
- 使用Linux操作系统
- 硬盘分区使用的容量< 70%分区总容量
- 存放数据的盘推荐使用XFS文件系统
- 协处理器建议使用Nvidia的Tesla系列GPU协处理器(专有版本)