Apache Doris 系列:基础篇-创建动态分区表

动态分区的重要参数

dynamic_partition.enable 是否启用动态分区 true|false, 默认为true, 即启用动态分区
dynamic_partition.time_unit 动态分区的时间单位, HOUR|DAY|WEEK|MONTH, 可根据配置的时间单位创建或者删除时间分区
dynamic_partition.replication_num 动态分区的副本数,默认为表的副本数,注意:如果只有一个be节点,该值应设置为1
dynamic_partition.start 一个负的偏移量,通过该偏移量计算出数据过期的时间清理历史数据
dynamic_partition.end 一个正的偏移量,通过该偏移量计算出需要预先创建的时间分区
dynamic_partition.prefix 动态分区的名称前缀
dynamic_partition.buckets 动态分区的分桶数量

使用案例

当前只有一个BE节点,有以下建表要求

  • 以日期为分区的表
  • 7天前的数据需清理
  • 提前创建三天后的分区
CREATE TABLE user_goods_click
(
    click_date DATE,
    user_id int,
    click_count int
)
ENGINE=olap  
DUPLICATE KEY(`click_date`, `user_id`)  
PARTITION BY RANGE(click_date) ()
DISTRIBUTED BY HASH(user_id)
PROPERTIES
(
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.replication_num" = "1",
    "dynamic_partition.start" = "-7",
    "dynamic_partition.end" = "3",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "32",
    "replication_num" = "1"
);
查看分区
mysql> show partitions from user_goods_click;


+-------------+---------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------+-----------------------+---------+----------------+---------------+---------------------+--------------------------+----------+------------+-------------------------+
| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime  | State  | PartitionKey | Range                                                                      | DistributionKey       | Buckets | ReplicationNum | StorageMedium | CooldownTime        | LastConsistencyCheckTime | DataSize | IsInMemory | ReplicaAllocation       |
+-------------+---------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------+-----------------------+---------+----------------+---------------+---------------------+--------------------------+----------+------------+-------------------------+
| 63292       | p20221114     | 1              | 2022-11-14 06:50:08 | NORMAL | click_date   | [types: [DATE]; keys: [2022-11-14]; ..types: [DATE]; keys: [2022-11-15]; ) | click_date, user_name | 32      | 1              | HDD           | 9999-12-31 15:59:59 | NULL                     | 0.000    | false      | tag.location.default: 1 |
| 63357       | p20221115     | 1              | 2022-11-14 06:50:08 | NORMAL | click_date   | [types: [DATE]; keys: [2022-11-15]; ..types: [DATE]; keys: [2022-11-16]; ) | click_date, user_name | 32      | 1              | HDD           | 9999-12-31 15:59:59 | NULL                     | 0.000    | false      | tag.location.default: 1 |
| 63422       | p20221116     | 1              | 2022-11-14 06:50:08 | NORMAL | click_date   | [types: [DATE]; keys: [2022-11-16]; ..types: [DATE]; keys: [2022-11-17]; ) | click_date, user_name | 32      | 1              | HDD           | 9999-12-31 15:59:59 | NULL                     | 0.000    | false      | tag.location.default: 1 |
| 63487       | p20221117     | 1              | 2022-11-14 06:50:08 | NORMAL | click_date   | [types: [DATE]; keys: [2022-11-17]; ..types: [DATE]; keys: [2022-11-18]; ) | click_date, user_name | 32      | 1              | HDD           | 9999-12-31 15:59:59 | NULL                     | 0.000    | false      | tag.location.default: 1 |
+-------------+---------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------+-----------------------+---------+----------------+---------------+---------------------+--------------------------+----------+------------+-------------------------+
4 rows in set (0.00 sec)


可以看到当前有4个分区,p20221114是当天的分区, p20221115/p20221116/p20221117 是预先创建的分区。

插入和查看数据
mysql> insert into user_goods_click values('2022-11-14',10001,20)
    -> ;
Query OK, 1 row affected (0.07 sec)
{'label':'insert_4124088bb17f4a5c-b0872d2dd3b63022', 'status':'VISIBLE', 'txnId':'3038'}

mysql> select * from user_goods_click
    -> ;
+------------+---------+-------------+
| click_date | user_id | click_count |
+------------+---------+-------------+
| 2022-11-14 |   10001 |          20 |
+------------+---------+-------------+
1 row in set (0.07 sec)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修破立生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值