文档首页/ MapReduce服务 MRS/ 最佳实践/ 数据分析/ 实时OLAP数据分析/ 基于Unique表的单表检索查询和聚合查询
更新时间:2025-08-09 GMT+08:00
分享

基于Unique表的单表检索查询和聚合查询

应用场景

本场景通过基于Unique模型表查询符合条件的数据,基于Unique模型表聚合查询,支持MIN,MAX,SUM,REPLACE四种聚合算法。

方案架构

Doris支持海量数据的亚秒级查询,支持单表数据的聚合查询和多表关联查询。

Doris不同的表引擎,适合不同的业务场景,可以根据业务特点选择不同的表格式。

图1 实时OLAP数据查询
  • 表模型选择:
    • Aggregate模型可以通过预聚合,极大地降低聚合查询时所需扫描的数据量和查询的计算量,适合有固定模式的报表类查询场景,但是该模型不适用于count(*)查询。同时因为固定了Value列上的聚合方式,在进行其他类型的聚合查询时,需要考虑语意正确性。
    • Unique模型针对需要唯一主键约束的场景,可以保证主键唯一性约束。但是无法利用ROLLUP等预聚合带来的查询优势。适合数据有大量更新的场景。对于聚合查询有较高性能需求的用户,推荐使用写时合并实现。
    • Duplicate适合任意维度的Ad-hoc查询。虽然无法利用预聚合的特性,但是不受聚合模型的约束,可以发挥列存模型的优势。适合不要求数据更新的通用查询场景。
  • 查询模式:
    • 单表检索查询,按索引进行单表检索查询,可进行高并发,低延迟的数据查询访问。
    • 单表聚合查询,不同维度进行聚合查询,可提供低延迟的数据聚合查询能力。
    • 多表关联查询,通常用于事实表和维度表的多表关联查询场景。

步骤1:通过StreamLoad将本地CSV文件导入Doris

参考通过StreamLoad将本地CSV文件导入Doris章节,将数据实时同步到Doris的unique模型表。

步骤2:基于Unique表的单表查询

  1. 登录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”参数值获取。

  2. 执行以下命令对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;

      例如,执行结果如下,表示查询成功:

相关文档