初见 ByConity
最近也在学习数据处理方面的知识,发现随着数据量越来越大,数据也变得越来越复杂。好多企业都开始用上 OLAP(联机分析处理)引擎来对付大规模数据了,还能立马给出分析结果,挺牛的。之前只了解过 ClickHouse,这次又看到社区众测 ByConity,也就来试试,目前有 4 种主流的开源 OLAP,分别是 ByConity、ClickHouse、Doris 和 Presto 。
ClickHouse 是俄罗斯的搜索引擎公司 Yandex 开发出来的一个数据库管理系统,它是列式的。这个系统主要就是针对大规模数据,能让你快速地进行查询和分析。Doris 是一个分布式的列式存储和分析系统。它厉害的地方在于支持实时查询和分析。ByConity 是字节跳动开源的云原生数据仓库,可以满足用户的多种数据分析场景。它用了存储计算分离的架构,能做到租户资源隔离、弹性扩缩容,还有数据读写的强一致性这些特性呢。它支持主流的 OLAP 引擎优化技术,读写性能那是相当棒。
开始测试
测试环境
测试步骤
由于我用的是 window11,系统也是包含了基于 OpenSSH(一个使用 SSH 协议进行远程登录的连接工具)的内置 SSH 服务器和客户端。我们可以在设置中找到系统,系统里包含了可选功能,如图所示:
开始登陆
在本地电脑桌面按 win+r,然后输入 cmd,弹出终端。然后在终端输入以下命令:
第一次登陆会弹出:我们输入 yes 确认就行
然后输入<提供的登录密码>
并回车。我登录的时候输了好几次,就是登陆不上,粘贴复制和手输都尝试了,死活登录不上😡,如果是复制了密码,回到终端,必须鼠标左单击一次,再右单击一次才能输入密码,最后登陆成功。
如果显示如上图,那就说明已经登陆成功了。
根据测试文档,为避免使用时超时自动断开连接,我们可以运行如下命令:
接着,我们运行如下命令进入客户端 :
如图:
测试 sql78
首先我测试的是 sql78,
测试结果如下:
执行完成后,显示具体内容如下:
数据集规模:数据集中有 100 行数据。
处理时间:处理这些数据花费了 55.520 秒。
处理的数据量:总共处理了 504.21 百万行数据。
数据处理速率:处理速度为每秒 6.05 GB(千兆字节)。换算成每秒处理的行数是 9.08 百万行。每秒处理的数据量为 103.94 MB(兆字节)。
测试 sql64
执行结果:
开始拉取数据
这张图片展示了一组数据处理的统计信息。具体内容如下:
数据集规模:数据集中有 11492 行数据。
处理时间:处理这些数据花费了 83.548 秒。
处理的数据量:总共处理了 536.09 千行数据。
数据处理速率:处理速度为每秒 14.33 MB(兆字节)。换算成每秒处理的行数是 6.42 千行。每秒处理的数据量为 171.49 KB(千字节)。
接着我们添加在 sql64 中添加一下限制,在执行成功的查询中,添加参数限制查询的最大内存使用量,如:
SETTINGS
max_memory_usage=40000000000;
(单位为 B,当前约合 37.25 GB)
SETTINGS max_memory_usage=28000000000;
测试结果:
这张图片展示了一组数据处理的相关统计信息:
数据集中有 11492 行数据。
处理这些数据花费了 5.796 秒。
总共处理了 536.09 千行数据。
处理速度为每秒 14.33 MB(兆字节),换算成每秒处理的行数是 92.49 千行,每秒处理的数据量为 2.48 MB。
SETTINGS max_memory_usage=19600000000;
测试结果:
这张图片展示了一组数据处理的统计信息:
数据集中有 11492 行数据。
处理这些数据花费了 5.741 秒。
总共处理了 536.00 千行数据。
处理速度为每秒 14.33 MB(兆字节),换算成每秒处理的行数是 93.38 千行,每秒处理的数据量为 2.50 MB。
ByConity 和 ClickHouse
我之前用过 ClickHouse,通过这次测试想聊聊优缺点,ByConity 是基于 ClickHouse 内核研发的开源云原生数据仓库,采用存算分离的架构。它们两个写入速度都是非常快的,适用于大量数据的写入,其次查询速度非常快,在海量数据下,查询速度可达 2-30GB/s,另外数据压缩比高,存储成本低,压缩比可达 0.2~0.3。ByConity 具备 ClickHouse 的诸多优点,并且与 ClickHouse 保持着良好的兼容性。同时,ByConity 在读写分离、弹性扩缩容以及数据强一致等方面进行了显著增强。
我觉得 ByConity 是 ClickHouse 的增强版,ClickHouse 缺点也很明显,ClickHouse 扩容非常麻烦,而且扩容后需要从新进行数据分布。另外运维也很麻烦,尤其是高峰期的时候,又不能快速扩容,它一般通过删减其它业务数据才能得到缓冲,所以它查询就会变得很慢。
版权声明: 本文为 InfoQ 作者【法医】的原创文章。
原文链接:【http://xie.infoq.cn/article/1fd92d355422e8792578fc543】。文章转载请联系作者。
评论