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 
您好!要在Spring Boot集成Doris,您可以按照以下步骤进行操作: 1. 添加Doris的依赖:在您的`pom.xml`文件中,添加Doris的依赖。可以使用以下Maven坐标: ```xml <dependency> <groupId>org.apache.doris</groupId> <artifactId>doris-client</artifactId> <version>0.14.0</version> </dependency> ``` 2. 创建Doris连接配置:在`application.properties`或`application.yml`中添加Doris连接配置。例如: ```properties doris.url=jdbc:doris://localhost:8030/default doris.username=root doris.password=your_password ``` 3. 创建Doris数据源:在Spring Boot中,可以通过配置类来创建Doris数据源。创建一个类,并使用`@Configuration`注解标记该类为配置类。然后,使用`@Bean`注解创建一个`DataSource` bean,并设置Doris的连接信息。例如: ```java import org.apache.doris.jdbc.Driver; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DorisDataSourceConfig { @Bean public DataSource dorisDataSource() { return DataSourceBuilder.create() .driverClassName(Driver.class.getName()) .url("jdbc:doris://localhost:8030/default") .username("root") .password("your_password") .build(); } } ``` 4. 使用Doris数据源:在需要使用Doris数据源的地方,可以使用`@Autowired`注解将`DataSource`注入到您的类中。例如: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; @Component public class DorisExample { private final JdbcTemplate jdbcTemplate; @Autowired public DorisExample(DataSource dorisDataSource) { this.jdbcTemplate = new JdbcTemplate(dorisDataSource); } // 使用jdbcTemplate执行Doris操作 } ``` 现在,您可以使用`jdbcTemplate`对象执行Doris的操作了。根据您的需求,可以使用Spring Data JPA或其他相关技术来简化数据访问。 请注意,以上步骤是一个基本的示例,您可能需要根据您的具体情况进行调整。希望对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值