分区表,tiflash 结合使用

【 TiDB 使用环境】测试
【 TiDB 版本】V6.5.0
【遇到的问题:问题现象及影响】可以指定分区表的某个分区创建tiflash副本嘛?有个场景:分区表A需要同placement rule 进行冷热数据分存储。分区表A牵扯到复杂的查询包含join,in各类分析场景,希望使用tiflash进行加速,但是只针对热数据进行分析。

好像不支持分区单独指定tiflash replica,不过你全表指定,扫描指定分区的时候不会扫描到冷数据的tiflash副本吧

道理是这个道理,就是感觉数据冗余的厉害

或者通过placement rules指定对应分区添加指定副本试试?
https://docs.pingcap.com/zh/tidb/v6.5/configure-placement-rules#场景三为某张表添加-2-个-tiflash-learner-副本

还是不行耶,只能定位到整表的数据,不能定位到分区数据。或者有没有分区平移从A表平移到A_history 这样操作嘛,这样其实也可以

那肯定有啊,
ALTER TABLE partitioned_table EXCHANGE PARTITION p1 WITH TABLE non_partitioned_table

这个也不行啊,有了tiflash 就不能执行echange 了 :rofl:

1 个赞

需要全表做。

两个分区大表可以随意join?性能高么

https://github.com/pingcap/tidb/issues/17918

有tiflash的情况下不能使用EXCHANGE PARTITION是个bug。
对应的issue已经close了。
当然原来的issue说的是两个表都有tiflash replica还不能使用EXCHANGE PARTITION。

你现在的情况,可能是一个表有tiflash replica,另一个表没有。我觉得你可以考虑做一段最小复现sql,在提交一个issue试试看。

Alter table exchange partition does not work if table has tiflash replica · Issue #46077 · pingcap/tidb (github.com)
已提交。

1 个赞

https://github.com/pingcap/tidb/issues/44848

给你点信心,我也提交过。当时一周左右解决的,开源社区行不行,自己体验一下胜过前言万语。 :fist:

btw, github issue 也是支持markdown的,建议修改一下格式,可以给issue提速哦~

真大佬还是很注重细节的。

1 个赞

哈哈哈哈,确实 :+1:

non_partitioned_table 也需要创建TiFlash 副本 :sweat_smile:

毕竟是两回事,exchange出去就变成单表了,楼主的需求是想只给某个分区建TiFlash副本,还保留分区表的组织形式。

是的,目前可能不存在好的解决方案。 :sweat_smile:只能退而求其次,例如删除分区,或者使用更多的资源支持2个表的TiFlash副本

btw, 这个feature你会用得上,tiflash支持分区表动态裁剪

https://docs.pingcap.com/zh/tidb/stable/partitioned-table#分区裁剪