本文将为您介绍如何选择腾讯云数据仓库 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或更多)。 |