集群版和单机版区别
Contents
集群版和单机版区别#
OpenMLDB 有两种部署模式:集群版 (cluster) 和单机版 (standalone)。集群版适合涉及到大规模数据计算的生产环境,提供良好的可扩展性和高可用性;单机版适合于小数据场景或者试用目的,更加方便部署和使用。集群版和单机版在功能上完全一致,但是在某些方面上会有区别,本文将介绍集群版和单机版的各方面区别。
安装和部署的区别#
集群版和单机版有各自的部署方式,详情参考安装部署文档。概括来说,主要的区别表现为:
集群版需要安装和部署 ZooKeeper
集群版需要安装 TaskManager
使用方式区别#
工作流程#
集群版工作流 |
单机版工作流 |
区别描述 |
---|---|---|
建立数据库和表 |
建立数据库和表 |
无 |
离线数据准备 |
数据准备 |
集群版需要分别准备离线数据和在线数据。 |
离线特征计算 |
离线特征计算 |
无 |
SQL 方案上线 |
SQL 方案上线 |
无 |
在线数据准备 |
无 |
集群版需要分别准备离线数据和在线数据。 |
在线实时特征计算 |
在线实时特征计算 |
无 |
执行模式配置#
集群版支持设置系统变量 execute_mode
,配置执行模式为离线 (offline)/在线 (online) 模式。单机版不支持配置执行模式。
在离线执行模式下,只能导入/插入以及查询离线数据,集群版命令行下执行以下命令切换到离线执行模式:
> SET @@execute_mode = "offline"
离线模式下,默认任务是异步模式,执行以下命令可以设置为同步模式,这样命令行会阻塞等待离线任务完成。
> SET @@sync_job = true;
集群版命令行下执行以下命令切换到在线执行模式。在该模式下,只能导入/插入以及查询在线数据。
> SET @@execute_mode = "online"
同步/异步命令#
单机版 LOAD DATA
、SELECT INTO
命令是同步的,集群版的部分命令是异步的,如:在线/离线模式的 LOAD DATA
、SELECT
、SELECT INTO
命令。
SQL 查询能力#
集群版和单机版可以支持的 SQL 查询能力区别包括:
-
单机版不支持
集群版提交任务以后可以使用相关的离线任务管理命令如
SHOW JOBS
,SHOW JOB
来查看任务进度
配置执行模式为离线/在线
单机版不支持
集群版可以配置执行模式:
SET @@execute_mode = "online"/"offline"
-
单机版不支持配置分布式的属性
集群版支持配置分布式属性:包括
REPLICANUM
,DISTRIBUTION
,PARTITIONNUM
SELECT INTO
语句单机版下执行
SELECT INTO
,输出是文件集群版执行
SELECT INTO
,输出是目录
集群版在线模式下,只能支持简单的单表查询语句
仅支持列、表达式,以及单行处理函数(Scalar Function) 以及它们的组合表达式运算
单表查询不包含
GROUP BY
子句、HAVING
子句以及WINDOW
子句单表查询只涉及单张表的计算,不涉及
JOIN
多张表的计算
SDK 支持#
OpenMLDB 的 Python SDK、Java SDK 均支持集群版和单机版。