欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > springboot整合doris(doris创建表)

springboot整合doris(doris创建表)

2025/10/1 12:57:11 来源:https://blog.csdn.net/qq_19891197/article/details/141156933  浏览:    关键词:springboot整合doris(doris创建表)

Doris 的数据模型主要分为 3 类:

  • 明细模型(Duplicate Key Model):允许指定的 Key 列重复;适用于必须保留所有原始数据记录的情况
  • 主键模型(Unique Key Model):每一行的 Key 值唯一;可确保给定的 Key 列不会存在重复行
  • 聚合模型(Aggregate Key Model):可根据 Key 列聚合数据;通常用于需要汇总或聚合信息(如总数或平均值)的情况

Column 可以分为两大类:Key 和 Value。从业务角度看,Key 和 Value 可以分别对应维度列和指标列。Doris 的 Key 列是建表语句中指定的列,建表语句中的关键字 unique key 或 aggregate key 或 duplicate key 后面的列就是 Key 列,除了 Key 列剩下的就是 Value 列

创建三种模式数据表

CREATE TABLE customer_duplicate(user_id            BIGINT       NOT NULL COMMENT "用户 ID",name               VARCHAR(20)           COMMENT "用户姓名",age                INT                   COMMENT "用户年龄"
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10
PROPERTIES ("replication_num" = "1"
);CREATE TABLE customer_aggregate (user_id            BIGINT       NOT NULL COMMENT "用户 ID",name               VARCHAR(20)           COMMENT "用户姓名",age                INT SUM                   COMMENT "用户年龄"
)
AGGREGATE KEY(user_id,name)
DISTRIBUTED BY HASH(user_id) BUCKETS 10
PROPERTIES ("replication_num" = "1"
);CREATE TABLE customer_unique(user_id            BIGINT       NOT NULL COMMENT "用户 ID",name               VARCHAR(20)           COMMENT "用户姓名",age                INT                   COMMENT "用户年龄"
)
UNIQUE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10
PROPERTIES ("replication_num" = "1"
);

查看创表语句(可以复制出来创表)

SHOW CREATE TABLE customer_unique;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| __internal_schema  |
| information_schema |
| test               |
+--------------------+
3 rows in set (0.00 sec)mysql> use test;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_test     |
+--------------------+
| customer_aggregate |
| customer_duplicate |
| customer_unique    |
| test_table         |
+--------------------+
4 rows in set (0.00 sec)mysql> SHOW CREATE TABLE customer_unique;

通过navicat,输入SHOW CREATE TABLE customer_unique;查看到创表语句,然后复制CreateTable的创表语句出来,可以使用

在这里插入图片描述

对于duplicate明细数据模型的增删改查方法注意事项(事务无法回滚,事务控制不了的)

  • 新增可以使用key和value任意匹配,添加成功返回Affected rows: 1
  • 查询可以使用key和value任意匹配
  • 删除可以使用key和value任意匹配,删除成功返回都是Affected rows: 0
  • 不支持更新操作,更新会报Only unique table could be updated

对于aggregate聚合数据模型的增删改查方法注意事项(事务无法回滚,事务控制不了的)

  • 新增可以使用key和value任意匹配,新增的会根据聚合类型进行操作,添加成功返回Affected rows: 1
  • 查询可以使用key和value任意匹配
  • 删除可以使用key和value任意匹配,删除成功返回都是Affected rows: 0
  • 不支持更新操作,更新会报Only unique table could be updated

以下几种聚合方式和 agg_state:
SUM:求和,多行的 Value 进行累加。
REPLACE:替代,下一批数据中的 Value 会替换之前导入过的行中的 Value。
MAX:保留最大值。
MIN:保留最小值。
REPLACE_IF_NOT_NULL:非空值替换。和 REPLACE 的区别在于对于 null 值,不做替换。
HLL_UNION:HLL 类型的列的聚合方式,通过 HyperLogLog 算法聚合。
BITMAP_UNION:BIMTAP 类型的列的聚合方式,进行位图的并集聚合

对于aggregate聚合数据模型创表的高级用法

CREATE TABLE IF NOT EXISTS example_tbl_agg1
(`user_id` LARGEINT NOT NULL COMMENT "用户id",`date` DATE NOT NULL COMMENT "数据灌入日期时间",`city` VARCHAR(20) COMMENT 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词