Doris常用命令

本文介绍了Doris数据库的集群状态检查、节点管理、数据导入方式(routineload、streamload)、物化视图操作(创建、查看和删除)以及索引管理的相关命令,对开发者日常维护和开发有实用价值。
摘要由CSDN通过智能技术生成

Doris使用中,频繁用到的命令

原文地址:https://mp.weixin.qq.com/s/thq5iWadV7UbZ4BMKAfbbw

0. 查看集群的状态

当一个Doris集群部署完成,如果想要知道当前集群的一些运行状态,可以通过如下命令来查看。

0.1 查看master(FE)的运行状态

show frontends\G;

图片

会显示当前集群有多少个FE,以及其角色状态,还有其他相关信息。

0.2查看slaver(be)的运行状态

show backends\G;

图片

0.3 集群增加主节点

ALTER SYSTEM ADD FOLLOWER "follower_host:edit_log_port";

添加follow角色

ALTER SYSTEM ADD OBSERVER "observer_host:edit_log_port";

添加observer角色

运行这个命令后,再配置好并启动FE节点,才能将新的主节点加入到集群中。

0.4 集群增加从节点

ALTER SYSTEM ADD BACKEND "be_host:be_heartbeat_service_port";

同样,运行这个命令后,再配置好并启动BE节点,才能将新的从节点加入到集群中。

0.5 查看集群中每张表的存储占用状态

show data;

图片

可以看到每张表的存储占用空间,以及每张表当前创建了多少分片,可以看到表dns_logs01,虽然是空表,但是在建表的时候因为指定了分桶数量为5,且其默认副本数量为3。

因此即便没有数据,它也占用了15个分片。

同时也可以看出来,当前集群的存储磁盘配额为1024TB(1P),才用了96GB,空间还剩非常多。

0.6 查看单张表在集群的存储分布情况

ADMIN SHOW REPLICA DISTRIBUTION FROM db_name.table_name;

图片

可以知道每张表在每台BE中的数据存储比例,以及是否有存储的倾斜。

1. 导入数据的相关命令

我们知道,Doris提供了多种数据导入方式,而且呢,很多导入方式都是异步进行的,也就是你的导入命令一执行,“啪”,就返回了。

于是对于其导入状态:正在导、导完成了、还是失败了呢,你还得通过导入状态查看命令来查。

1.1 routine load导入方式

这个导入方式很有意思,官方文档说目前就支持kafka一种数据源,其导入命令是这样式的:

图片

官方文档给这个load起名的时候还给带了个库名example_db,其实在真正使用时是不需要的,麻烦,就test1就行。

当然,如果你忘记了当初创建的load叫什么,也可以这么查看:

show routine load\G;

图片

这样一来,就把所有的的通过routine load的历史记录给查询出来了。

如果你记得具体的load任务名,那就最好了,那就用这个命令。

show routine load for test4\G;

如果想暂停导入任务:

pause routine load FOR test4;\G;

想再次启动:

resume routine load FOR test4;\G;

直接停掉,不再导入:

stop routine load FOR test4;\G;

而stop之后,就不能再次恢复。

1.2 stream load导入方式

这种导入方式是同步的,因此就没有提供导入进度的命令查看方式,而且呢,官网给的导入样例主要是通过crul命令行的方式来进行(也可以通过http client方式)。

图片

虽然官方给的例子都是用来导入单个文件的数据,且单个文件不能太大(因为默认10分钟就会超时)。

但是,从上两篇我写的关于Doris的文章内容我们知道,当我们用spark的streaming方式或者flink的steaming方式去写Doris表的时候,其写入的逻辑实现方式本质也是这个stream load。

1.3 其他导入方式

Doris还是提供了其他的一些导入方式,比如broker导入,MySQL load等,暂时没有用过。

2. 物化视图的状态查看

Doris的物化视图其特殊之处在于,它是一种“依附”在基础表之上的,将原本查基础表耗时较久的操作,给提前把结果算出来准备好的一种机制。

因为创建物化视图本质上,是一个数据重新计算与写入的操作,因此对于一个本来就有数据的基础表来说,这个物化视图的创建过程就是耗时的,所以,它被设计成了一个异步操作。

2.1 查看物化视图(或rollup)创建的进度

命令有两种。

可以这么写:

show alter table rollup;

也可以这么写:

show alter table materialized view;

不管你实际创建的是rollup还是materialized view,查询出来的结果都一样,以上命令会把所有历史的、以及正在创建的结果都展现出来。

如果怕查询出来的结果太多,查询条件可以精确到具体的库名以及表名:

show alter table materialized view from example_db where TableName='table_name';

图片

等你确认物化视图(或者rollup)创建成功之后(FINISHED),就可以在你的基础表中看到了(在FINISHED之前是看不到的,也不生效)。

2.2 确认物化视图(或rollup)已经生效

desc dns_logs_from_kafka all;

输出结果:

图片

这些输出的rollup或者物化视图名字,代表已经创建成功(数据计算和写入完毕),可以起到查询加速的作用。

2.3 删除物化视图(以及rollup)

物化视图跟rollup虽然在查看的时候用的命令是一样的,但是删除时候又不一样了(因为创建的时候命令不一样)。

删除rollup:

ALTER TABLE db_name.table_name DROP ROLLUP rollup_name;

删除物化视图:

drop materialized view view_name on table_name;

撤销正在创建的rollup(此时数据还在写入rollup):

CANCEL ALTER TABLE ROLLUP FROM db_name.table_name;

3. 索引创建进度的查看

我们知道,Doris除了原本内置的索引外(指定的排序字段),还可以额外指定几个少数的用户级索引,比如Bitmap索引,以及BloomFilter(2.0版本之后还会支持更多)。

3.1 查看某张表的索引情况(创建成功之后):

show index from table_name;

图片

但是要知道,创建索引是需要时间的(同样需要重新计算和写入数据),而如果索引正在创建中呢。

3.2 查看正在创建的(所有表)索引(或修改的字段):

SHOW ALTER TABLE COLUMN\G;

图片

这个时候,所有跟字段修改有关的操作都会被查询出来,包括用户索引的创建。

3.3 查看具体某张表的索引(或正在修改的字段)创建情况:

SHOW ALTER TABLE COLUMN WHERE TableName = "table_name"

3.4 取消正在创建的索引(或正在修改的字段):

CANCEL ALTER TABLE COLUMN FROM table_name;

以上,算是最近这段时间以来使用Doris过程中,一些比较趁手的辅助开发的命令,觉得有必要记录下来
SHOW ALTER TABLE COLUMN WHERE TableName = “table_name”

3.4 取消正在创建的索引(或正在修改的字段):

CANCEL ALTER TABLE COLUMN FROM table_name;

以上,算是最近这段时间以来使用Doris过程中,一些比较趁手的辅助开发的命令,觉得有必要记录下来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leo⁵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值