Doris 使用记录(随机更新(ง •_•)ง)

知识点

常见数据分布方式

分布式数据库中常见的数据分布方式。

轮询:Round-Robin,假设分桶数为3,数据按顺序依次写入桶1、桶2、桶3,然后继续循环。

区间:Range,假设分桶数为2,对数据划分范围,在范围1的写入到桶1;在范围2的写入到桶2。

列表:List,直接基于离散的各个取值做数据分布,性别、省份等数据就满足这种离散的特性。每个离散值会映射到一个节点上,多个不同的取值可能也会映射到相同节点上。

哈希:Hash,通过hash函数将数据映射到不同节点上。

在这里插入图片描述

业务中可以根据需要选择性使用一种或多种。

使用

动态分区+Hash分桶

DROP TABLE IF EXISTS demo.test_1;
CREATE TABLE IF NOT EXISTS demo.test_1 (
  id INT NOT NULL,
  insert_time DATE NoT NULL,
  class VARCHAR(255) NOT NULL,
  student VARCHAR(255) NOT NULL,
  score VARCHAR(255) NOT NULL
)
UNIQUE KEY(`id`,`insert_time`) 
PARTITION BY RANGE(`insert_time`) ()
DISTRIBUTED BY HASH(`id`) BUCKETS 1 
PROPERTIES (
	"replication_num" = "3",
	"dynamic_partition.time_unit" = "DAY",
	"dynamic_partition.replication_num" ="3",
	"dynamic_partition.buckets" = "3",
	"dynamic_partition.prefix" = "test",
	"dynamic_partition.end" = "3"
);

建表之后可以看到动态分区已经创建,因为dynamic_partition.end设置的是3,所以会自动创建后三天的分区(执行语句时间为:2023年1月16日)
在这里插入图片描述

PS:

  1. 如果表设置的有分区,则插入数据前需要确认分区是否存在,如果不存在则数据会插入失败
  2. 动态分区无法手动删除,但设置dynamic_partition.start = -3 后会自动删除前N天(周/月/年)分区
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值