Apache Doris与StarRocks和SelectDB的关系
Apache Doris是百度内部孵化的一个产品,最早用来解决百度凤巢统计报表的分析系统,后面逐渐承担起百度内部业务的统计报表和多维分析需求。
基于商业发展的需要,一部分原来Apache Doris的工程师的出去,基于Doris的基础上延伸了DorisDB,后面因为版权的需求,易名为StarRocks。Apache Doris指责StarRocks没有回馈社区,没有开源精神,StarRocks则强调 自己有开源,只是开源的协议不同。
SelectDB自称是名门正宗,因为它基于DorisDB的基础做了大量的开发改进,并且有回馈社区。同时SelectDB也在努力发展自己的商业特色,重点火力侧重于技术支持和云原生领域。
三者有所不同【下面称为Doris产品栈】,但以下方面都是共同的。它们对标市场主流大数据产品的Spark、Presto、hbase、kudu等等,但是Spark和Presto不是数据库,它们只是计算引擎。Doris具备数据库的关键特征:索引、分区、游标,通过索引和分区能实现低延迟的随机数据访问,通过MPP通过吞吐量高的数据处理访问。
Doris产品栈市场定位于OLAP数据库,专注于100%的数据分析业务场景, 同时也有20%的事务处理功能,不擅长转帐、支付、交易、汇款的业务场景,更擅长的是 用户画像、风险管控、精准营销、资源投放、商业智能、生产监控、决策支持、故障预测等业务场景,因为Doris可以提供即席查询、漏斗分析、统计分析、多维分析、实时大屏、固定报表、自助分析的能力
一切与数据应用实践有关的系统平台可以使用Doris做为数据底座,例如固定经营报表平台、数据/挖掘分析平台、统一数据管理平台、经营驾驶舱系统、经营分析系统、大数据平台、系统中 台等等,大数据领域里面,旧系统改造升级和新平台建设,数据仓库、数据湖、数据湖仓、都可以使用Doris来进行数据加速。
下载地址
apache Doris
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.0-bin-x64.tar.gz
StarRocks
wget https://releases.starrocks.io/starrocks/StarRocks-3.1.2.tar.gz
SelectDB
wget https://download.selectdb.com/release/selectdb-core/2.0.0/selectdb-doris-2.0.0-bin-x64.tar.gz
安装体验
doris产品栈的安装 很简单,只需要5步就可完成安装。
1.解压软件
2.配置环境【主要是java环境以及元数据目录、存储路径】
3.启动前端服务
4.启动后端服务
5.进入前端控制界面,把后端服务加入进去
apache Doris
解压
tar zxvf apache-doris-2.0.0-bin-x64.tar.gz
vi fe/conf/fe.conf
加入以下参数
priority_networks = 192.168.178.0/24
meta_dir = ${DORIS_HOME}/doris-meta
vi fe/conf/be.conf
加入以下参数
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
priority_networks = 192.168.178.0/24
storage_root_path = /root/apache-doris-2.0.0-bin-x64/bedata1;
启动前端服务
./fe/bin/start_fe.sh
启动后端服务
./fe/bin/start_be.sh
登录命令行控制管理界面
[root@server130 ~]# mysql -uroot -P9030 -h 192.168.178.130
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 0
Server version: 5.7.99
Copyright (c) 2021, 2022 StoneAtom Group Holding Limited
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>ALTER SYSTEM ADD BACKEND "192.168.178.130:9050";
mysql> SHOW BACKENDS\G
*************************** 1. row ***************************
BackendId: 10636
Host: 192.168.178.130
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2023-08-27 00:29:33
LastHeartbeat: 2023-08-27 00:32:03
Alive: true
SystemDecommissioned: false
TabletNum: 21
DataUsedCapacity: 0.000
AvailCapacity: 19.834 GB
TotalCapacity: 37.236 GB
UsedPct: 46.73 %
MaxDiskUsedPct: 46.73 %
RemoteUsedCapacity: 0.000
Tag: {"location" : "default"}
ErrMsg:
Version: doris-2.0.0-rc04-96bb9a7
Status: {"lastSuccessReportTabletsTime":"2023-08-27 00:32:06","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false}
HeartbeatFailureCounter: 0
NodeRole: mix
1 row in set (0.01 sec)
上述证明单机版的apache Doris安装成功,可以新建库,新建表验证一下
CREATE TABLE ods_log_data_unique
(
`time` DATETIME COMMENT '时间',
`action` INT COMMENT 'action',
`mac` VARCHAR(255) COMMENT 'mac',
`coll_id` VARCHAR(255) COMMENT '专辑id',
`coll_name` VARCHAR(255) COMMENT '专辑名称',
`video_id` VARCHAR(255) COMMENT '视频ID',
`video_name` VARCHAR(255) COMMENT '视频ID',
`channel_id` INT COMMENT '频道ID',
`content_source` INT COMMENT '内容源',
`play_dur` BIGINT COMMENT '播放时长',
`play_type` INT COMMENT '播放类型',
`video_type` INT COMMENT '视频类型',
`ls` INT COMMENT '日志序号'
)
UNIQUE KEY(`time`,`action`,`mac`)
COMMENT "日志数据"
PARTITION BY RANGE(`time`) ()
DISTRIBUTED BY HASH(`mac`)
;
StarRocks
解压
tar zxvf StarRocks-3.1.2.tar.gz
下载jdk11
yum install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64 -y
启动前端服务
./fe/bin/start_fe.sh
启动后端服务
./fe/bin/start_be.sh
登录命令行控制管理界面
[root@server130 ~]# mysql -uroot -P9030 -h 192.168.178.130
这里要把后端的服务加入进来,区别于apache doris
它使用 ALTER SYSTEM ADD BACKEND "192.168.178.130:9060";
端口不是9050,而是9060
SelectDB
解压
tar zxvf selectdb-doris-2.0.0-bin-x64.tar.gz
vi fe/conf/be.conf
加入以下参数
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
启动前端服务
./fe/bin/start_fe.sh
启动后端服务
./fe/bin/start_be.sh
登录命令行控制管理界面
[root@server130 ~]# mysql -uroot -P9030 -h 192.168.178.130
这里要把后端的服务加入进来,区别于apache doris
它使用 ALTER SYSTEM ADD BACKEND "192.168.178.130:9060";
端口不是9050,而是9060
总结
- 个人感觉,在安装上doris的安装还没有达到自动化的水平,这里有需要改进的空间。
- starRocks需要jdk11,提示JDK 11的GC回收性能会更好。
- starRocks的最新版本已经去到3.1.2系列,而apache doris最新版本是2.0.0,SelectDB与apache doris保持同步,侧面看到starRocks与Apache Doris不同,有自己的研发前进路线。