分区表中的自动分桶貌似没用

Viewed 62
CREATE TABLE `log_action_bak_10` (
  `createTime` datetime(3) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建日期',
  `id` varchar(50) NOT NULL COMMENT '主键',
  `timestamp` datetime(3) NOT NULL COMMENT '发生日期',
  `topic` varchar(1000) NULL,
  `version` varchar(1000) NULL COMMENT '版本号',
  `locationIp` varchar(1000) NULL COMMENT '地址IP',
  `userSession` varchar(1000) NULL COMMENT '用户相关',
  `userAuthSourceCode` varchar(1000) NULL COMMENT '用户:鉴权编码',
  `userCode` varchar(1000) NULL COMMENT '用户:工号',
  `userName` varchar(1000) NULL COMMENT '用户:姓名',
  `userLoginTime` datetime(3) NULL COMMENT '用户:登录时间戳',
  `wayApplicationCode` varchar(1000) NULL COMMENT '应用编码'
) ENGINE=OLAP
DUPLICATE KEY(`createTime`)
COMMENT '行为日志'
PARTITION BY RANGE(`createTime`)()
DISTRIBUTED BY HASH(`createTime`) BUCKETS AUTO
PROPERTIES (
	"replication_allocation" = "tag.location.default: 3",
	"min_load_replica_num" = "-1",
	"is_being_synced" = "false",
	"dynamic_partition.enable" = "true",
	"dynamic_partition.time_unit" = "DAY",
	"dynamic_partition.time_zone" = "Asia/Shanghai",
	"dynamic_partition.start" = "-180",
	"dynamic_partition.end" = "3",
	"dynamic_partition.prefix" = "p",
	"dynamic_partition.replication_allocation" = "tag.location.default: 3",
	"dynamic_partition.create_history_partition" = "true",
	"dynamic_partition.history_partition_num" = "-1",
	"dynamic_partition.hot_partition_num" = "0",
	"dynamic_partition.reserved_history_periods" = "NULL",
	"dynamic_partition.storage_policy" = "",
	"storage_medium" = "hdd",
	"storage_format" = "V2",
	"inverted_index_storage_format" = "V1",
	"compression" = "LZ4",
	"estimate_partition_size" = "9G",
	"light_schema_change" = "true",
	"disable_auto_compaction" = "false",
	"enable_single_replica_compaction" = "false",
	"group_commit_interval_ms" = "10000",
	"group_commit_data_bytes" = "134217728"
);
注意, 表中没有指定"dynamic_partition.buckets" = "2"

表建成功后。查看DDL
image.png
默认生成了dynamic_partition.buckets" = "2"。
而且这个dynamic_partition.buckets 这优先级很高。

导致自动分桶进行了分桶预测,但被 dynamic_partition.buckets" = "2" 这个参数覆盖了。 如下图:
image.png

1 Answers

这个行为是符合预期的,因为是动态分区表,所以分桶数是依靠"dynamic_partition.buckets" = "2" 来确定的,由于刚开始没有历史数据所以分桶数都是2,后面会根据自动分桶来确定分桶数。