问题
由于新的superset看板查询时每个chart涉及到的底表数据量增加以及并发较多导致clickhouse因为OOM挂掉而返回错误,并且影响到别的看板的使用以及整个系统的稳定性。但是单独查询某个chart是并没有问题,因此需要控制看板查询时的并发度。
解决
通过调研以及社区的帮助,可通过代理的方式控制并发度,并且可使用的代理有[ProxySQL](https://proxysql.com/)
以及专门为clickhouse开发的第三方CHproxy。考虑到CHproxy对clickhouse的很多原生配置特性支持的比较好,比如set
属性相关的(可以控制每个查询所使用的最大内存等)以及负载均衡,并发控制等等很多特性,故选择了CHproxy。
安装部署
CHproxy因为是go语言写的,因此安装部署也很简单,也可以通过docker进行部署,具体可以参考文档。启动命令如下:
1 | ./chproxy -config=/path/to/config.yml |
下面是配置文件,仅供参考:
config.yml
1 | server: |