请问关于OLAP的问题

  • 【TiDB 版本】:正在调研TIDB
  • 【问题描述】: 文档说tidb可以解决80%的OLAP场景,剩下的20%需要tispark来解决。 1、我想问的第一个问题是,这剩下的20%场景,是指哪些场景,是tidb不支持的; 2、如果我用了tispark,那我tableau BI系统,是否需要改动以前写的mysql的sql语句; 3、最近我还看到有个叫clickhouse,请问tidb和clickhouse比,优缺点是什么,我应该选择哪个好。

我们现在是用的是tableau 连接的mysql从库,目前反映很慢。所以正在调研一个支持olap的数据库,并且能保证不改动tableau的sql语句。

谢谢。

20% 是非常大规模的大型查询,比如大表 join,基本上100 G 以上表的大型join (不是数据存量,而是实际上过滤后你要join 的数据量)在 spark下会比tidb更快,但是 spark 运维会比 tidb 复杂。clickhouse 是偏向多维聚合的产品,速度非常快,但是不像 mysql 那样支持良好的高频 update,也不支持通过细粒度索引点查数据,我也不确定 clickhouse 是否能良好支持 tableau。如果你之前用的是 mysql 那么数据量应该不会太大,很大可能用了tispark未必能提速,可以先从 tidb 尝试起。 总结下:

  1. 如果你需要更新,可以尝试 tidb 或者 tidb + tiflash 接入 tableau
  2. 如果你需要大规模的 join 类查询,而且需要更新,那么尝试 tiflash+tispark
  3. 如果你不需要更新,而且 tableau 可以顺利连上 clickhouse,且使用无碍,那这个方案是速度最快的。

TiDB 目前是单机处理 SQL 请求的,所以对于 join 较多的场景,性能会受到单机资源如内存等的限制。由于 TiSpark 是基于 Spark 集群部署,所以拥有分布式计算的能力,计算能力是可横向扩展的。

Spark SQL 和 MySQL 有小部分的不兼容,如果方便的话你可以给我们提供一下样例我们可以看一下是否需要改动。

TiDB 能同时处理 OLTP 和部分 OLAP 的请求,在设计上主要为了 TP 服务,而 Clickhouse 是单机的,设计上就是纯 AP 的,所以将两者比较我觉得不是很合适。相比较而言,TiDB 是兼容 MySQL 协议的,ClickHouse 有小部分不支持。我建议你可以调研一下 TiFlash + TiSpark,看看是否需要修改 tableau 语句。