3.1.2. HashData 数据仓库 系统概述¶
本章节将会介绍 HashData 数据仓库 的模块及一些关键特性,让您对本产品拥有更加深刻的认识和理解。
本章节涵盖以下内容:
- HashData 数据仓库 架构
3.1.2.1. HashData 数据仓库 架构¶
HashData 数据仓库 是为了管理大容量分析型数据仓库和商业智能分析业务而设计的大规模并行处理(MPP)数据库服务系统。
MPP(也被称作 shared nothing 架构)是指一个系统拥有两个或者两个以上的处理器,相互合作来执行任务。每个处理器都配有独立的内存,操作系统和磁盘。HashData 数据仓库 采用高性能的系统架构可以将请求均匀分散到存储 TB 级别的数据仓库上,同时充分利用系统中所有的资源,并行的处理请求。
HashData 数据仓库 是基于 Greenplum Database 和 PostgreSQL 开源数据库技术,通过对 PostgreSQL 的修改,得到的并行架构数据库。从系统信息表,优化器,查询执行器,事务管理等各个方面都进行了修改和增强,来满足真正将查询从内部并行运行在多个计算节点上。通过快速的内部软件数据交互模块,满足系统在多个节点间数据的传输和处理要求,使得整个系统在外面看就像是一个计算能力等于上百台机器的单一数据库系统。
HashData 数据仓库 的 主节点 是整个数据库系统的入口节点,用户通过客户端连接 主节点 来提交 SQL 查询语句。主节点 将会协调其它 计算节点 来存储和处理用户的数据。
图1 系统架构
3.1.2.1.1. 主节点¶
HashData 数据仓库 的 主节点 是整个数据库系统的入口,用来接受客户端连接,接收 SQL 查询,并将作业分发到 计算节点 上执行。
HashData 数据仓库 的用户可以像使用 PostgreSQL 一样,通过 主节点 来访问 HashData 数据仓库 系统。目前支持客户端程序 psql 或应用编程接口 ODBC 或 JDBC。
主节点 存储了描述系统全局结构的系统信息表(global system catalog),这些信息表中存储了 HashData 数据仓库 自己的元信息(metadata)。主节点 没有存储用户数据的信息,所有的用户数据都存储在 计算节点 节点,主节点 认证客户端连接,处理客户提交的 SQL 命令,将查询分发到存储数据的 计算节点 节点,协调各个 计算节点 节点执行,并汇总执行结果,最后返回给客户端程序。
3.1.2.1.2. 计算节点¶
HashData 数据仓库 的 计算节点 实际上同样是一个经过修改的 PostgreSQL 数据库,每个 计算节点 都存储了一部分用户数据,并主要负责执行用户的查询。
每当用户连接到 主节点,并且发送一个查询时,每个 计算节点 节点都会创建一些进程来共同处理改查询。要了解更多关于查询的处理过程,请参考 查询数据 。
用户定义的数据表和相应的索引将会自动被分散到 HashData 数据仓库 的节点上,每个 计算节点 上都存储了一部分用户数据,并且这些数据是不相交的。
3.1.2.1.3. 软件数据交换模块¶
软件数据交换模块是 HashData 数据仓库 架构中的网络层。此模块负责处理 计算节点 之间和网络之间的进程间通信。此模块默认使用经过深度调优的带流量控制的 UDP 协议来传输数据。这种算法除了提供 TCP 协议支持的可靠性外,在性能和水平扩展能力都优于 TCP 协议。