Apache Doris 作为极速、轻量的实时分析数据库,广泛应用于实时数仓、多维分析、数据大屏等场景。日常开发和运维中,高频命令零散难记,本文整理最全、最实用的 Doris 常用命令,涵盖环境连接、集群运维、库表管理、数据导入、权限管控、查询运维六大核心场景,所有命令均可直接复制复用,适配 Doris 2.x/3.x 全版本。
适合人群:大数据开发、数仓运维、Doris 入门学习者,建议收藏备用!
一、基础连接命令(入门必备)
Doris 兼容 MySQL 客户端协议,可直接使用 mysql 客户端连接 FE 节点,默认端口 9030。
1. 客户端连接 Doris
# 基础连接命令(默认root用户,本地连接)
mysql -h 127.0.0.1 -P 9030 -u root -p
# 远程连接指定节点
mysql -h Doris_FE_IP -P 9030 -u 用户名 -p
参数说明: -h:指定 FE 节点IP;-P:指定 Doris 连接端口(大写P);-u:用户名;-p:密码(回车后输入更安全)
2. 基础辅助命令
# 查看版本
SELECT VERSION();
# 查看当前登录用户
SELECT CURRENT_USER();
# 退出客户端
exit;
# 查看命令帮助(万能查询)
HELP 关键字;
# 示例:查看建表、导入语法
HELP CREATE TABLE;
HELP LOAD;
二、集群运维命令(运维核心)
涵盖 FE/BE 启停、节点管理、集群状态监控、系统配置查询,是日常集群维护高频操作。
1. 服务启停(服务器终端执行)
# 启动FE(前台+守护进程)
./bin/start_fe.sh --daemon
# 停止FE
./bin/stop_fe.sh
# 启动BE
./bin/start_be.sh --daemon
# 停止BE
./bin/stop_be.sh
2. 集群节点查询与管理
# 查看FE节点状态
SHOW FRONTENDS;
# 查看BE节点状态(在线、容量、状态核心信息)
SHOW BACKENDS;
# 查看Broker节点(文件导入必备)
SHOW BROKERS;
# 添加BE节点
ALTER SYSTEM ADD BACKEND "BE_IP:BE_HEARTBEAT_PORT";
# 下线BE节点(安全下线)
ALTER SYSTEM DROP BACKEND "BE_IP:BE_HEARTBEAT_PORT";
# 添加Broker节点
ALTER SYSTEM ADD BROKER broker_name "BROKER_IP:PORT";
3. 系统配置查看与修改
# 查看所有系统变量
SHOW VARIABLES;
# 模糊查询指定配置
SHOW VARIABLES LIKE '%profile%';
# 全局开启SQL执行日志分析
SET GLOBAL enable_profile = TRUE;
# 会话级配置(当前连接生效)
SET enable_profile = TRUE;
三、数据库与数据表管理(开发常用)
涵盖库创建删除、表创建、修改、分区、索引、查询等日常DDL操作,适配Doris unique/aggregate/duplicate三大模型。
1. 数据库操作
# 创建数据库
CREATE DATABASE IF NOT EXISTS dw_doris;
# 查看所有数据库
SHOW DATABASES;
# 切换数据库
USE dw_doris;
# 查看数据库创建语句
SHOW CREATE DATABASE dw_doris;
# 删除数据库
DROP DATABASE IF EXISTS dw_doris;
2. 数据表基础操作
# 查看当前库所有表
SHOW TABLES;
# 查看表结构
DESC table_name;
# 查看表创建语句
SHOW CREATE TABLE table_name;
# 重命名表
ALTER TABLE old_table RENAME new_table;
# 删除表
DROP TABLE IF EXISTS table_name;
3. 表结构与索引维护
# 新增字段
ALTER TABLE table_name ADD COLUMN new_col INT COMMENT '新增字段';
# 修改字段类型
ALTER TABLE table_name MODIFY COLUMN col VARCHAR(50);
# 删除字段
ALTER TABLE table_name DROP COLUMN col_name;
# 查看表索引
SHOW INDEX FROM table_name;
# 查看正在执行的索引创建、字段修改任务
SHOW ALTER TABLE;
# 取消正在执行的表结构变更任务
CANCEL ALTER TABLE COLUMN FROM table_name;
4. 分区管理(Doris核心特性)
# 查看表分区
SHOW PARTITIONS FROM table_name;
# 新增分区
ALTER TABLE table_name ADD PARTITION p202606 VALUES LESS THAN ('2026-07-01');
# 删除分区
ALTER TABLE table_name DROP PARTITION p202606;
三、补充:Apache Doris 完整建表教程(核心重点)
建表是Doris数仓开发的核心基础,Doris 区别于传统MySQL,拥有Duplicate、Aggregate、Unique三大数据模型,支持分区、分桶、副本配置。本节详解生产通用建表语法、各模型适用场景、完整可复用建表语句,适配2.x/3.x所有版本。
1. 建表核心基础规则
1、字段分类:分为Key列(维度列)和Value列(指标列),Key列用于排序、分区、分桶,Value列用于聚合计算; 2、数据模型:决定数据更新、聚合逻辑,是建表首要选择; 3、分区+分桶:Partition(分区)按时间等大维度切分,Bucket(分桶)按哈希均匀打散数据; 4、副本数:生产环境默认3副本,测试环境可设置1副本提升效率。
2. 三大数据模型&适用场景
- Duplicate Key(明细模型):无聚合逻辑,保留全量明细数据,适用于日志、行为明细、无需聚合的原始数据;
- Aggregate Key(聚合模型):预定义聚合函数(sum/count/max/min),写入自动聚合,适用于统计汇总、指标看板数据;
- Unique Key(唯一主键模型):保证主键唯一,支持更新、删除,适用于用户画像、维度表、业务更新类数据。
3. 通用建表语法模板
CREATE TABLE IF NOT EXISTS 库名.表名 (
字段1 数据类型 KEY/VALUE COMMENT '字段注释',
字段2 数据类型 KEY/VALUE COMMENT '字段注释',
指标字段 数据类型 聚合函数 COMMENT '指标注释'
)
# 数据模型
[DUPLICATE KEY / AGGREGATE KEY / UNIQUE KEY] (key字段列表)
# 分区规则
PARTITION BY RANGE(分区字段)()
# 分桶规则
DISTRIBUTED BY HASH(分桶字段) BUCKETS 桶数
# 表属性配置
PROPERTIES (
"replication_allocation" = "tag.location.default: 副本数",
"enable_unique_key_merge_on_write" = "true", -- Unique模型专属
"storage_format" = "V2"
);
4. 实战可直接复用建表示例
示例1:Duplicate明细模型(日志明细表)
适用于存储用户行为日志、访问明细,保留全量原始数据,不做预聚合。
CREATE TABLE IF NOT EXISTS dw_doris.user_behavior_log (
dt DATE COMMENT '数据日期',
user_id VARCHAR(32) COMMENT '用户ID',
device_id VARCHAR(64) COMMENT '设备ID',
action_type TINYINT COMMENT '行为类型:1浏览 2点击 3下单',
page_url VARCHAR(255) COMMENT '访问页面',
create_time DATETIME COMMENT '行为时间'
)
DUPLICATE KEY(dt, user_id)
PARTITION BY RANGE(dt) (
PARTITION p20260601 VALUES LESS THAN ('2026-06-01'),
PARTITION p20260630 VALUES LESS THAN ('2026-07-01')
)
DISTRIBUTED BY HASH(user_id) BUCKETS 8
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"storage_format" = "V2"
);
示例2:Aggregate聚合模型(指标统计表)
适用于日活、访问量、订单量等统计指标,写入数据自动聚合,查询性能极高。
CREATE TABLE IF NOT EXISTS dw_doris.user_day_stats (
dt DATE COMMENT '统计日期',
channel VARCHAR(32) COMMENT '渠道',
user_count BIGINT SUM DEFAULT '0' COMMENT '用户数',
visit_count BIGINT SUM DEFAULT '0' COMMENT '访问次数',
max_online_time INT MAX DEFAULT '0' COMMENT '最大在线时长'
)
AGGREGATE KEY(dt, channel)
PARTITION BY RANGE(dt) (
PARTITION p20260601 VALUES LESS THAN ('2026-06-01'),
PARTITION p20260630 VALUES LESS THAN ('2026-07-01')
)
DISTRIBUTED BY HASH(channel) BUCKETS 8
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"storage_format" = "V2"
);
示例3:Unique唯一模型(用户维度表,支持更新)
适用于需要更新数据的场景,如用户信息、商品信息,主键唯一,支持幂等写入。
CREATE TABLE IF NOT EXISTS dw_doris.user_info (
user_id VARCHAR(32) COMMENT '用户唯一ID',
user_name VARCHAR(64) COMMENT '用户名',
phone VARCHAR(11) COMMENT '手机号',
register_time DATETIME COMMENT '注册时间',
user_level TINYINT COMMENT '用户等级',
update_time DATETIME COMMENT '更新时间'
)
UNIQUE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 8
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"enable_unique_key_merge_on_write" = "true",
"storage_format" = "V2"
);
5. 建表生产核心注意事项
1、分区选择:优先使用时间字段分区(dt/date),方便按天清理、回溯数据,避免超大分区; 2、分桶字段:选择离散度高、查询高频过滤的字段(user_id/order_id),避免数据倾斜; 3、副本配置:测试环境1副本,生产环境必须3副本,保障数据高可用; 4、模型选择:明细数据用Duplicate、统计指标用Aggregate、更新数据用Unique; 5、字段类型:按需选择类型,避免超大字段(如VARCHAR(255)够用不设5000),节省存储、提升查询速度。
四、数据导入与写入(核心业务)
四、数据导入与写入(核心业务)
Doris 支持多种导入方式,这里整理高频的Broker导入、本地导入、批量写入命令。
1. 批量数据导入(Broker导入HDFS文件)
# 从HDFS导入parquet/csv文件
LOAD LABEL dw_doris.label_20260630
(
DATA INFILE("hdfs://hadoop_ip:9000/data/test.parquet")
INTO TABLE test_table
FORMAT AS PARQUET
)
WITH BROKER "hdfs_broker"
PROPERTIES (
"timeout" = "3600"
);
2. 基础写入与查询
# 单条插入
INSERT INTO table_name (col1,col2) VALUES (1,'test');
# 批量插入
INSERT INTO table_name VALUES (1,'a'),(2,'b');
# 基础查询
SELECT * FROM test_table WHERE dt='2026-06-30' LIMIT 100;
3. 查看导入任务
# 查看所有导入任务
SHOW LOAD;
# 查看指定标签导入任务
SHOW LOAD WHERE LABEL = 'label_20260630';
# 取消导入任务
CANCEL LOAD WHERE LABEL = 'label_20260630';
五、用户与权限管理(安全管控)
Doris 支持精细化用户权限管控,可创建普通用户、超级用户,配置密码策略与权限分配。
1. 用户管理
# 创建普通用户
CREATE USER 'test_user' IDENTIFIED BY '123456';
# 创建超级用户
CREATE USER 'admin' SUPERUSER IDENTIFIED BY 'Admin@123';
# 修改用户密码
ALTER USER 'test_user' IDENTIFIED BY 'new_password';
# 删除用户
DROP USER IF EXISTS 'test_user';
2. 权限授予与回收
# 授予用户某库所有权限
GRANT ALL ON dw_doris.* TO 'test_user';
# 授予用户查询权限
GRANT SELECT ON dw_doris.test_table TO 'test_user';
# 回收权限
REVOKE SELECT ON dw_doris.test_table FROM 'test_user';
# 查看用户权限
SHOW GRANTS FOR 'test_user';
六、查询与任务运维(问题排查)
日常排查慢SQL、阻塞任务、长期运行作业的核心命令,高效定位问题。
# 查看当前正在执行的所有SQL
SHOW PROCESSLIST;
# 终止指定查询线程
KILL QUERY 线程ID;
# 查看表数据量、大小等统计信息
SHOW DATA FROM table_name;
# 查看集群任务状态
SHOW TASKS;
# 查看副本状态(排查数据同步异常)
SHOW REPLICAS FROM table_name;
七、常用操作小技巧
- 命令兼容:Doris 语法高度兼容 MySQL,绝大多数MySQL查询、DDL命令可直接复用;
- 生产规范:所有删除、变更操作建议加
IF EXISTS,避免报错中断任务; - 运维原则:表结构变更、节点下线优先查看
SHOW ALTER TABLE、SHOW BACKENDS确认状态; - 问题排查:慢SQL优先用
SHOW PROCESSLIST定位,卡死任务直接KILL终止。
总结
本文覆盖了 Apache Doris 90% 以上的日常开发、运维场景,从基础连接、集群管控、库表操作,到数据导入、权限管理、问题排查,所有命令简洁实用、开箱即用。后续会持续更新 Doris 高阶命令、调优命令、故障排查指令,助力大家高效搞定数仓开发与运维。