两张大表join实际是在中大规模企业中无法回避的问题,因此需要在数据库层面支持大表join,大概的思路是设法在已有的execution engine设计下实现distributed hash join。然而,在当前的execution engine设计下,实现distributed hash join并不容易,核心难点是:clickhouse从SQL->AST->QueryPlanStep->QueryPlan->QueryPlanExecutor都是单机模型的设计,分布表的支持通过在Storage层通过Proxy实现SQL改写、远程执行、本地merge实现。因此,对于分布式表的join/in算子这里存在比较大的坑,参考
https://zhuanlan.zhihu.com/p/464986313