doris基本操作,02-创建复合分区表

发布时间:2023年12月24日

创建复合分区表

create table table2 (
	event_day DATE,
	siteid int defautl '10',
	citycode smallint,
	username varchar(32) defautl '',
	pv bigint sum default '0'
)

aggregate key (event_day, siteid, citycode, username)
-- 按照event_day做range分区 --
paritition by range(event_day)
(
	partition p202106 values less than ('2021-07-01'),
	partition p202107 values less than ('2021-08-01'),
	partition p202108 values less than ('2021-09-01')
)
distributed by hash(siteid) buckets 10
properties("replication_num" = "3");

导入数据

数据文件table2_data内容如下,分隔符是竖线(|)
2021-06-03|9|1|jack|3
2021-06-10|10|2|rose|2
2021-07-03|11|1|jim|2
2021-07-05|12|1|grace|2
2021-07-12|13|2|tom|2
2021-08-15|14|3|bush|2
2021-08-12|15|4|helen|3

curl --location-trusted -u root:123456 -H “label:table2_20210707” -H “column_separator: |” -T table2_data http://node01:8030/api/test_db/table2/_stream_load

在这里插入图片描述
在这里插入图片描述

使用场景

  1. 有时间维度或者类似带有有序值的维度,可以已这类维度作为分区列。分区粒度可以根据导入频次,分区数据量等进行评估。
  2. 历史数据删除需求:如有删除历史数据的需求(比如,仅仅保留最近N天的数据)。使用复合分区,可以通过删除历史分区来达到目的。也可以通过在制定分区内发送delete语句进行数据删除。
  3. 解决数据倾斜问题:每个分区可以单独制定分桶数量。如按天分区,当每天的数据量差异很大时,可以通过制定分区的分桶数,合理划分不同分区的数据,分桶列建议选择区别度大的列。
文章来源:https://blog.csdn.net/cin_ie/article/details/135183501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。