请教个Hologres问题,建表时报错:执行失败,失败原因:ERROR: commit ddl phase1 failed: too many shards in this instance, the threshold is 16, now 20 used
Hint: a resharding procedure is required, otherwise use SET hg_experimental_enable_shard_count_cap=off to change this limit for the current session; or ALTER DATABASE … SET hg_experimental_enable_shard_count_cap=off to change this limit on the database level.
there is no event_time_column or segment_key property specified for table bs_third_req_record, using column gmt_create as the default one
这是什么原因呀?
以下为热心网友提供的参考意见
这个错误是由于Hologres实例中的分片数量超过了阈值(16个),需要进行重新分片操作。同时,表bs_third_req_record中没有指定event_time_column或segment_key属性,因此使用了默认的gmt_create列作为分片键。
解决方法:
- 使用SET hg_experimental_enable_shard_count_cap=off命令在当前会话中更改分片数量限制。
- 或者,使用ALTER DATABASE … SET hg_experimental_enable_shard_count_cap=off命令在数据库级别更改分片数量限制。
- 为表bs_third_req_record添加event_time_column或segment_key属性,以便正确进行分片。
以下为热心网友提供的参考意见
实例推测是个8Core的实例 最多支持16个shard shard超出core数 对性能有损伤
,此回答整理自钉群“实时数仓Hologres交流群”
以下为热心网友提供的参考意见
关于Hologres的建表错误,原因是在当前实例中分片数量超过了限制(阈值为16,但现在使用了20个)。提示需要进行resharding操作,或者关闭hg_experimental_enable_shard_count_cap的限制。同时,还提示在bs_third_req_record表中没有指定event_time_column或segment_key属性,因此将使用gmt_create作为默认的事件时间列。