基于Unique表的单表检索查询和聚合查询
应用场景
本场景通过基于Unique模型表查询符合条件的数据,基于Unique模型表聚合查询,支持MIN,MAX,SUM,REPLACE四种聚合算法。
方案架构
Doris支持海量数据的亚秒级查询,支持单表数据的聚合查询和多表关联查询。
Doris不同的表引擎,适合不同的业务场景,可以根据业务特点选择不同的表格式。

- 表模型选择:
- Aggregate模型可以通过预聚合,极大地降低聚合查询时所需扫描的数据量和查询的计算量,适合有固定模式的报表类查询场景,但是该模型不适用于count(*)查询。同时因为固定了Value列上的聚合方式,在进行其他类型的聚合查询时,需要考虑语意正确性。
- Unique模型针对需要唯一主键约束的场景,可以保证主键唯一性约束。但是无法利用ROLLUP等预聚合带来的查询优势。适合数据有大量更新的场景。对于聚合查询有较高性能需求的用户,推荐使用写时合并实现。
- Duplicate适合任意维度的Ad-hoc查询。虽然无法利用预聚合的特性,但是不受聚合模型的约束,可以发挥列存模型的优势。适合不要求数据更新的通用查询场景。
- 查询模式:
- 单表检索查询,按索引进行单表检索查询,可进行高并发,低延迟的数据查询访问。
- 单表聚合查询,不同维度进行聚合查询,可提供低延迟的数据聚合查询能力。
- 多表关联查询,通常用于事实表和维度表的多表关联查询场景。
步骤2:基于Unique表的单表查询
- 登录Doris集群中已安装好MySQL客户端的节点,执行如下命令进入Doris数据库。
export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1 //若集群已启用Kerberos认证(安全模式)需执行该命令。
mysql -u数据库登录用户 -p数据库登录用户密码 -P数据库连接端口 -hDoris FE实例IP地址
- 数据库连接端口为Doris FE的查询连接端口,可通过登录MRS Doris集群的Manager界面,选择“集群 > 服务 > Doris > 实例”,查看任一FE实例的业务IP地址获取。
- Doris FE实例IP地址可通过登录MRS Doris集群的Manager界面,选择“集群 > 服务 > Doris > 配置 > 全部配置”,搜索并查看“query_port”参数值获取。
- 执行以下命令对Doris数据表(Unique模型)进行查询。
use 数据库名;
- 单表检索查询:
select LO_REVENUE,LO_SUPPLYCOST,LO_TAX from lineorder_stream_u where LO_ORDERKEY <= 10 and LO_ORDERKEY >= 5 and LO_DISCOUNT BETWEEN 0 AND 9 AND LO_QUANTITY < 10;
例如,执行结果如下,表示查询成功:
- 单表聚合查询:
SELECT LO_CUSTKEY,sum(LO_REVENUE) as LO_REVENUE,max(LO_SUPPLYCOST) as LO_SUPPLYCOST,min(LO_TAX) as LO_TAX FROM lineorder_stream_u GROUP BY LO_CUSTKEY having LO_CUSTKEY<= 10 and LO_CUSTKEY>= 5;
例如,执行结果如下,表示查询成功:
- 单表检索查询: