分布式数据库(DorisDB、Clickhouse、TiDB)调研

2022-07-28 00:00:00 查询 数据 支持 节点 不支持

1. 性能功能特点

B站视频:DorisDB VS ClickHouse OLAP PK

1.1 DorisDB

场量:线上数据应用

访问官方网站
DorisDB企业版文档

DorisDB是鼎石科技由Apache Doris核心研发团队打造的新一代企业级MPP数据库。它继承了Apache Doris项目十多年研发成果,累积了线上数千台服务器稳定运行经验,并在此基础上,对传统MPP数据库进行了开创性的革新。DorisDB重新定义了MPP分布式架构,集群可扩展至数百节点,支持PB级数据规模,是当前可以在大数据规模下进行在线弹性扩展的企业级分析型数据库。DorisDB还打造了全新的向量化执行引擎,单节点每秒可处理多达100亿行数据,查询速度比其他产品快10100倍!
  • 单表/多表查询,DorisDB总体时间短
  • 单表查询:DorisDB快次数多,ClickHouse次之
  • 多表查询:DorisDB所有执行均快
  • DorisDB多表关联效率好
  • 支持各种主流分布式Join,不仅支持大宽表模型,还支持星型模型和雪花模型
  • 数据按列存储,列单独存放,查询时,只访问查询涉及的列,降低I/O
  • Mysql协议兼容,支持标准的SQL语言,可直接对接主流的BI系统
  • 与 R 语言可以实现无缝对接,用 R 语言可直接操作 Doris 数据库,进行数据分析、数据挖掘等工作
  • 分片方式保存数据,小查询只需要用到部分机器资源,能极大提高并发查询量
  • 可以实现多层聚合,能执行复杂的SQL查询,大表Join,高基数聚合查询
  • 能有效利用多机资源保证查询性能,总体持有成本低,集群资源利用率高
  • 数据导入有事务保证,可以很容易地实现不丢不重
  • 支持实时数据的增量聚合计算
  • 扩容时只需迁移部分数据分片,可线性扩展,副本自动均衡,系统自动完成,不影响线上服务
  • 开箱即用,自适应,无须额外优化
  • 高可用:无单点瓶颈(类Paxos一致性算法)
  • 高度自治:无外部依赖,副本自修复,数据自均衡,一键扩容、缩容
  • 极简运维:无外部依赖,整个系统只有两种进程,自动故障恢复(可视化运维管理平台需要企业版)
  • 可视化管理 工具,生态完善,使用 Prometheus、Grafana 将监控项指标列出
  • 支持云化部署
  • 支持在线更改表模式(加减列,创建 Rollup),不影响当前服务,不阻塞读、写操作,异步执行不需要用户一直盯着
  • 稳定可靠:完成SSB等测试集功能完备,每天千万条随机SQL验证,引入SQLite/Spark等外部DB 200万标准测试集通过
  • 内部支持订阅 Kafka 数据流,实现直接对接 Kafka(可自动感知 Kafka 中 partition 变化,合理调度并发导入),支持对 Kafka 原始数据做二次处理(如转换,过滤等)
  • 三层微批驱动(MPP+调度)
    • DWD 明细层: 明细事实、维度表、明细宽表
    • DWS 汇总层:公共汇总、通用视图、聚合宽度
    • ADS 应用层:业务指标、汇总结果、物化视图
  • 美团 VIPKID 等大厂用作数据分析平台,可服务高并发固定报表,OLAP 高维分析和 Adhoc 即席查询(可通过 Mysql Binlog -> Kafka -> DorisDB 同步数据)
  • 极速向量化引擎

【主要缺点】

  • DorisDB 主要解决 PB 级别的数据量(如果高于 10 PB 级别,不推荐使用,可以考虑用 Hive 等工具)
  • 不适合做大规模的批处理,当前版本由于是全内存计算,所以面对大规模数据的复杂ETL容易内存不足(短期内可能不能得到解决,官方称这是之后研发的一个方向)
  • 目前不支持insert overwrite,可以用truncate+insert into代替
  • 周边生态比较不完善
  • 部分SQL语法不支持

【商业特性】

  • 暂未开源,承诺可以免费使用
  • 社区核心研发人员都是中国人,国内有商业化支持,服务更加本地化,支术支持无障碍
  • 百度将 Doris 贡献给 Apache 社区之后,许多外部用户也成为了 Doris 的使用者,例如新浪微博,美团,小米等企业
  • Apache Doris开源版可直接下载使用,DorisDB分标准版和企业版,需要申请使用

【部署环境】

  • 准备3台物理机: Linux(Centos 7+)、Java 1.8+
  • CPU需要支持AVX2指令集cat /proc/cpuinfo |grep avx2有结果输出表明CPU支持,如果不支持建议找合适的机器进行部署测试,DorisDB使用向量化技术需要一定的指令集支持才能发挥效果。
  • 将DorisDB的二进制产品包分发到目标主机的部署路径并解压,可以考虑使用新建的DorisDB用户来管理。
  • BE推荐16核64GB以上(DorisDB的元数据都在内存中保存),FE推荐8核16GB以上
  • 磁盘可以使用HDD或者SSD
  • 网络需要万兆网卡和万兆交换机
  • FE节点之间的时钟相差不能超过5s,使用NTP协议校准时间。一台机器上只可以部署单个FE节点。所有FE节点的http_port需要相同。
  • 一般至少部署3个BE实例,每个实例的添加步骤相同

【基本概念】

  • FE:FrontEnd DorisDB的前端节点,负责管理元数据,管理客户端连接,进行查询规划,查询调度等工作。
  • BE:BackEnd DorisDB的后端节点,负责数据存储,计算执行,以及compaction,副本管理等工作。
  • Broker:DorisDB中和外部HDFS/对象存储等外部数据对接的中转服务,辅助提供导入导出功能。
  • DorisManager:DorisDB 管理工具,提供DorisDB集群管理、在线查询、故障查询、监控报警的可视化工具。
  • Tablet:DorisDB 表的逻辑分片,也是DorisDB中副本管理的基本单位,每个表根据分区和分桶机制被划分成多个Tablet存储在不同BE节点上。

【资源下载】

  1. 相关文章