Apache Doris 常用命令大全|运维+开发一键速查(收藏够用)

20次阅读
没有评论

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;

七、常用操作小技巧

  1. 命令兼容:Doris 语法高度兼容 MySQL,绝大多数MySQL查询、DDL命令可直接复用;
  2. 生产规范:所有删除、变更操作建议加 IF EXISTS,避免报错中断任务;
  3. 运维原则:表结构变更、节点下线优先查看 SHOW ALTER TABLESHOW BACKENDS 确认状态;
  4. 问题排查:慢SQL优先用 SHOW PROCESSLIST 定位,卡死任务直接 KILL 终止。

总结

本文覆盖了 Apache Doris 90% 以上的日常开发、运维场景,从基础连接、集群管控、库表操作,到数据导入、权限管理、问题排查,所有命令简洁实用、开箱即用。后续会持续更新 Doris 高阶命令、调优命令、故障排查指令,助力大家高效搞定数仓开发与运维。

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码