• 大数据分析&数据仓库关于数据库选型方面的感触


    clickhouse使用感受,优点&缺点

    传统的MPP数据库由于所有的节点都要参与运算,所以一个集群的并发能力与一个节点的并发能力相差无几。如果一定要提高并发量,可以考虑增加副本数的方式,但同时也增加了RPC的交互,对性能和物理成本的影响巨大。

    • 单表很快,官方建议用宽表;比mysql快30倍是可信的;
    • 多表关联很不好,复杂的sql往往造成oom;
    • 更新操作不擅长,使用alter table ,且是异步执行;
    • 物化视图只在第一个表有新增的时候聚合数据,源表数据变动不会同步到物化视图
    • 普通视图仅仅是sql语句的缓存,并不能提升性能;
    • sql使用上还是有一些小区别的,很多的小区别,有一定的学习成本;
    • 并发低,官方数据100qps,即使一个查询,也会用服务器一半的CPU去查询;
    • 存储空间小

    StarRocks(DorisDB) 网上资料暂时没有实际使用

    一个东西,StarRocks是因为版权问题修改后的名字

    一般与clickhouse比较的较多;

    • 单表查询性能基本相同(略略好于ck);
    • 多表关联更好;
    • 更新操作支持更好,且实时;
    • 并发更高,可以支撑数千用户同时进行分析查询,在部分场景下,高并发能力能够达到万级;
    • 提供了多种模型适配了更新操作,明细召回操作,聚合操作等业务需求。更新模型可以按照主键进行UPDATE/DELETE操作,通过存储和索引的优化可以在并发更新的同时高效的查询。在某些电商场景中,订单的状态需要频繁的更新,每天更新的订单量可能上亿。

    两者有着很多的相似之处,对于分析类查询都提供了极致的性能,都不依赖于Hadoop生态圈。
    StarRocks相较于ClickHouse有更好的表现。一般来说,ClickHouse适合于维度变化较少的拼宽表的场景,StarRocks不仅在单表的测试中有着更出色的表现,在多表关联的场景具有更大的优势。

    elasticsearch 使用感受,优点&缺点

    • 我使用dsl进行查询,还是需要一定的学习成本
    • 网上说查询性能弱于ck3-5倍,不过在我的实际使用中50亿数据量,机器性能够用的话,速度并不慢;(我们的集群是16个节点,每节点8Tssd,内存每台256G(要保留一半左右的缓存区),cpu也是顶级)
    • 针对上面这一条得出:es是比其他两个更耗费资源(但是大家并不能定论它存储更耗空间,es进行字段索引的话确实占用空间大,但是如果只是存储基本数据,空间还是可控的;)

    下图实测了一张对比图

    mysql & clickhouse & startRocks 的空间存储,查询耗时;
    都采用单机部署;
    startRocks:1FE 1BE(硬盘为HDD)
    clickhouse: 单机部署 (公司服务器应为ssd)
    mysql:(公司服务器应为ssd)

    在这里插入图片描述

    • 这里进行单表扫描188万行,SUM聚合(无索引)&分组(均有索引);10次耗时如图;(次数间隔时间为我手动记录一次耗时所需要的时间)
    • 三个db存储空间在标头栏;
    • 这里可以看到单表 ck 和 start差不多(start使用HDD,可能会慢一些);多表关联耗时后期补充
  • 相关阅读:
    优化数据中心机架和设备的 5 个理由
    二叉搜索树解决硬木问题
    一种基于最大似然的语音信号混响时间(reverberation time)估计方法的MATLAB实现
    使用Leaflet对WMS做空间几何范围查询
    vue中部分知识比较
    Spring MVC 4.2.4 RELEASE 中文文档,力荐
    多项式算法6:分治 FFT
    js判断变量数据类型的几种常用方法
    【MATLAB】 02 结构化程序与自定义函数
    计算机组成原理--存储系统
  • 原文地址:https://blog.csdn.net/JGMa_TiMo/article/details/126351057