有奖捉虫:行业应用 & 管理与支持文档专题 HOT
本文将为您介绍如何选择腾讯云数据仓库 TCHouse-D 的实例规格,并会给出资源不足时的调优建议。

资源规格及适配场景

购买 Doris 集群时,需要选择 FE 节点、BE 节点的计算资源规格和存储资源规格,并选择是否开启高可用。

资源规格及建议场景

机型类型
计算节点规格
建议存储类型
建议场景
标准型
4核16G
高性能云硬盘
SSD 云硬盘
增强型 SSD 云硬盘
仅限于 POC 功能测试或个人学习使用,主要用于体验测试产品能力。
8核32G
高性能云硬盘
SSD 云硬盘
增强型 SSD 云硬盘
推荐用于测试环境,可支持中等数据规模、较复杂的数据分析
16核64G
高性能云硬盘
SSD云硬盘
增强型 SSD 云硬盘
推荐用于生产环境,可支持较大规模、较复杂场景的数据分析,及高并发场景
32核128G
高性能云硬盘
SSD 云硬盘
增强型 SSD 云硬盘
生产环境推荐配置,可支持大量高复杂度数据分析,高并发等场景
64核256G
高性能云硬盘
SSD云硬盘
增强型 SSD 云硬盘
适合企业级平台建设,适用于高并发场景,大规模企业核心数据平台推荐选择。
高性能型
16核64G
本地盘
生产场景对数据吞吐有强要求时,可以选择此机型。
说明:此机型选定后不支持升降配。

32核128G
本地盘
64核256G
本地盘

高可用及节点数量建议

场景
建议最小 FE 节点数
建议最小 BE 节点数
POC 功能测试
1个
3个
生产场景
建议开启高可用,最少3个FE节点
最少3个 BE 节点,按需扩容

资源规格选型参考

注意:
以下内容仅供参考,不同业务场景下性能可能会有较大的差异。
1. 场景一:产品功能验证,进行简单数据分析
FE:不开启高可用,单节点4核16G
BE:3节点,每个节点4核16G
2. 场景二:中小规模数据简单查询,如百GB数据量级,1000QPS以下
FE:不开启高可用,单节点8核32G
BE:3节点,每个节点8核32G
3. 场景三:生产场景,TB级数据量,涉及多表关联、GROUP BY 等复杂查询
FE:开启高可用,3节点,每个节点16核64G
BE:3节点,每个节点16核64G
4. 场景四:生产业务,TB级数据量,涉及复杂查询,涉及大量高并发点查
FE:开启高可用,3节点,每个节点16核64G
BE:6节点,每个节点16核64G

资源监控及调优建议

大批量数据导入、数据查询、并发查询、多表关联 join 等操作都会导致 CPU、内存的大量占用,若CPU/内存使用率持续超过85%会导致集群不稳定,建议优化业务或变配。

资源使用监控

可在集群管理 > 集群监控中查看 BE、FE 各节点的 CPU、内存使用情况,如下图所示。
集群监控 > BE 指标 > 其他



集群监控 > FE 指标 > 其他




资源扩容建议

FE 和 BE 的 CPU、内存使用率持续超过85%时,就需要考虑进行资源升配或扩容。
说明:
导致 FE 和 BE 的 CPU、内存大量占用的主要原因如下:
FE CPU 大量占用:多并发查询、大量复杂查询。
FE 内存大量占用:元数据过多(分区不合理等)、频繁进行表删除等。
BE CPU 大量占用:大量数据导入、大量复杂查询(如聚合查询)等。
BE 内存大量占用:大量数据导入、大量复杂查询(如聚合查询)等。
常见场景
资源耗用表现
使用率持续超过85%时调优建议
过多数据持续导入
FE 和 BE 的 CPU、内存都会被大量占用
如果是 FE 瓶颈:建议纵向升配
如果是 BE 瓶颈:建议纵向升配
点查较多/高并发
FE 和 BE 的 CPU 都会被大量占用
如果是 FE 瓶颈:建议纵向升配
如果是 BE 瓶颈:建议纵向升配
元数据频繁变更删除
FE 内存大量占用
建议 FE 纵向升配,增加内存
多表关联/聚合查询较多
BE 的 CPU、内存会大量占用
优先建议 BE 横向扩容,也可纵向升配
数据多并发度写入
BE 的 CPU、内存会大量占用
优先建议 BE 横向扩容,也可纵向升配

集群扩缩容注意事项

操作类型
注意事项
水平扩容
水平扩容过程中,系统读写仍可进行,但是可能出现一些抖动,执行操作大约需要5 - 15分钟,请选择在非业务高峰期进行。
在数据存储量及查询量均相对增长时,优先选择水平扩容。
水平缩容
只能每次选择一类节点进行缩容操作,如仅缩容 FE 或 仅缩容 BE。
FE 缩容:可一次性缩容多个。
BE 缩容:一次性缩容多个 BE 节点有可能导致数据丢失或时间过长,建议逐个缩容。
缩容过程中,系统读写仍可进行,但是可能出现一些抖动。
垂直升配/降配
垂直变配系统不可读、不可写。
计算规格支持升配、降配;存储规格仅支持升配。
变配操作结果对集群所有节点均生效。

业务调优建议

调优类型
调优说明
使用建议
如果经常对某列进行点查,且列的基数较高,建议在此列创建 bloom filter 索引。
如果经常对某表进行模式固定的聚合查询,建议在此表创建物化视图。
建议结合业务场景合理分区分桶,避免分区分桶过多占用FE内存。
普通数据探查的 sql,如果不需要全部数据,建议加上limit返回条数限制,也可加速查询。
导入数据建议用 CSV,避免 Json 数据格式。
尽量避免
避免 select * 查询;
避免全局开profile(会带来较多资源开销,建议针对需要的 SQL 开 profile)
建表时:避免开启 merge_on_write(此功能暂不成熟)
建表时:避免开启 auto bucket(此功能暂不成熟)
建表时:避免开启动态 Schema 表(此功能暂不成熟)
避免多个大表 Join,涉及多个大表关联时:
可转为大表两两 join,并使用 Colocation Join。
或使用预聚合表、索引等进行查询加速。
参数调优
一条 SQL 涉多并发时,建议调大parallel_fragment_exec_instance_num参数,此参数默认值200,可按倍数调大(如400、800),建议控制在2000以内。
建议控制 compaction 速度,若监控指标base_compaction_score超过200且持续上升的话(具体可在“集群监控-BE指标-BE”页查看),可以将 compaction_task_num_per_disk 参数配置调大(系统默认2,可调大至4或更多)。