介绍

更加详细的官方文档介绍:http://doc.dorisdb.com/2140965

这里只是做一个简单的使用和记录。

  • DorisDB是一款经过业界检验、现代化,面向多种数据分析场景的、 兼容MySQL协议的、高性能分布式关系型列式数据库。
  • DorisDB脱胎于百度广告业务的实时分析场景, 于2018贡献于Apache开源社区, 之后在美团, 小米, 字节跳动, 京东等互联网企业被适用于核心业务实时数据分析, 得到了工业界的检验。
  • DorisDB充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果, 并在业界实践的基础上, 进一步改进优化, 架构升级和添加新功能, 形成了全新的企业级产品。
  • DorisDB致力于满足企业用户的多种数据分析场景,支持多种数据模型(明细表, 聚合表), 多种导入方式(批量), 可整合和接入多种现有系统(Spark, Flink, Hive, ElasticSearch)。
  • DorisDB兼容MySQL协议, 可使用MySQL客户端和常用BI工具对接DorisDB来进行数据分析。
  • DorisDB采用分布式架构, 对table进行水平划分并以多副本存储. 集群规模可以灵活伸缩, 能够支持10PB级别的数据分析; 支持MPP, 并行加速计算; 支持多副本, 具有弹性容错能力。
  • DorisDB采用关系模型, 使用严格的数据类型, 使用列式存储引擎, 通过编码和压缩技术, 降低读写放大. 使用向量化执行方式, 充分挖掘多核CPU的并行计算能力, 从而显著提升查询性能。

安装

环境

准备了3台服务器 8核16G

系统是CentOS7

需要提前安装好Java1.8+

配置参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#Swappiness
#关闭交换区,消除交换内存到虚拟内存时对性能的扰动。
echo 0 | sudo tee /proc/sys/vm/swappiness

#Compaction相关
#当使用聚合表或更新模型,导入数据比较快的时候,可改下列参数以加速compaction。
cumulative_compaction_num_threads_per_disk = 4
base_compaction_num_threads_per_disk = 2
cumulative_compaction_check_interval_seconds = 2

#并行度
#在客户端执行命令,修改DorisDB的并行度(类似clickhouse set max_threads= 8)。并行度可以设置为当前机器CPU核数的一半。
set  global parallel_fragment_exec_instance_num =  8;

安装MySQL客户端

如果是安装整个数据库可以参考文档:https://www.7benshu.com/post/2020/08/18e815414542a944418f05f74d4f3cfee1/

如果只是安装客户端,可以使用上个文件里面的资源:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#先卸载一些依赖
rpm -qa | grep mariadb
mariadb-libs-xxxxxxx
# 删除查找到的文件
rpm -e --nodeps mariadb-libs-xxxxxxx

#然后按照安装顺序执行
rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm

部署FE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#分发二进制到所有的服务器上
#在需要部署FE的服务器都要创建doris-meta

cd DorisDB-XX/fe

#在需要部署的所有的FE的服务器上都需要创建此目录
mkdir -p doris-meta
bin/start_fe.sh --daemon
#等待一会查看日志
vim log/fe.log
#搜索关键8030,started等
#查看端口是否已经启动

#登录查看
mysql -h 127.0.0.1 -P9030 -uroot

#登录成功查看FE状态
SHOW PROC '/frontends'\G
#说明:Role为FOLLOWER说明这是一个能参与选主的FE;IsMaster为true,说明该FE当前为主节点

高可用部署

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#使用MySQL客户端连接已有的FE,  添加新实例的信息,信息包括角色、ip、port:
#添加可以参与主节点
#添加这个角色一定是奇数
ALTER SYSTEM ADD FOLLOWER "host:9010";

#添加集群负载的节点
ALTER SYSTEM ADD OBSERVER "host:9010";

#首次启动,需要指定已有集群的一个节点为host:port
bin/start_fe.sh --helper host:9010 --daemon

#查看集群的状态
SHOW PROC '/frontends'\G

部署BE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#至少需要3台服务器,分发二进制文件
cd DorisDB-XX/be

#创建存储目录
mkdir -p storage

#通过mysql客户端添加
ALTER SYSTEM ADD BACKEND "host:9050";

#启动be
bin/start_be.sh --daemon\

#其他的节点重复上面的操作

部署Broker

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#配置文件为apache_hdfs_broker/conf/apache_hdfs_broker.conf
#拷贝HDFS的配置文件到conf文件下

#启动程序
apache_hdfs_broker/bin/start_broker.sh --daemon

#添加节点到集群
ALTER SYSTEM ADD BROKER broker1 "doris01:8000";

#查看broker的状态
SHOW PROC "/brokers"\G

基本操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#删除数据库
drop database if exists example_db;

#删除用户
drop user test;

#创建用户
create user 'test' identified by '123456';

#创建数据库
create database example_db;

#查看数据库信息
show databases;

#账户授权
grant all on example_db to test;

#重新登录新用户
exit
mysql -h 127.0.0.1 -P9030 -utest -p123456

#查看FE
SHOW PROC '/frontends'\G

#查看BE
SHOW PROC '/backends'\G

#查看Broker
SHOW PROC "/brokers"\G

FAQ

总结

持续更新中