系统架构

系统架构介绍

示意图

百度数据仓库Palo对外产品由云端和前端两部分组成。前端为用户提供了和云端交互的工具,可以实现数据上传到BOS,Palo集群管理以及提交SQL语句等操作。

数据导入

百度数据仓库Palo云端产品目前只支持从百度的BOS系统导入数据,用户需要使用BOS相关工具,将自己的数据上传到BOS系统再导入Palo。

对于非云端的专有Palo集群,还可以选择从HDFS导入或使用bulk load命令从本地文件导入,详见SQL手册。

集群管理

百度数据仓库Palo当前提供一个web管理界面,通过这个界面,用户可以完成集群申请、增删节点、查看集群信息以及重置密码等操作。

SQL交互

用户可以使用任何连接MySQL的工具或者库连接到Palo。比如,可以通过MySQL客户端、JDBC、ODBC以及其他BI工具等连接Palo提交SQL,包括DDL,DML,DQL,DCL等语句。JDBC和ODBC的连接url可以在集群管理页面中查看(参考快速入门)。

Palo Core是Palo的核心引擎,其实现如下。

Palo Core主要分为Leader Node和Compute Node两种角色,每种角色都可以部署在多台机器上。

Leader Node

Leader Node节点负责维护系统的元数据,以及接收用户所有的SQL请求,解析SQL,形成物理执行规划,然后将任务分发给Compute节点进行分布式执行。所有Leader Node中有一个Master,负责执行更改元数据的操作,其他Leader Node定期与Master同步元数据,起到容错和提高性能的作用。

Compute Node

Compute Node节点由单机数据存储引擎和查询任务执行引擎组成,接收来自Leader Node节点的任务执行请求。Compute Node是整个Core系统中负载最重的,所有的存储和计算负载都由其完成。Palo采用shared nothing架构,Compute Node可以做到线性扩展。