本文将为您介绍如何选择腾讯云数据仓库 TCHouse-D 的实例规格,并会给出资源不足时的调优建议。
注意:
多种不同类型的业务建议配置资源隔离策略或拆分集群,如:实时报表业务一个集群、实时风控业务一个集群。
一个业务同时支持多个 ToB 租户时,建议视情况进行资源隔离或集群拆分,减轻互相影响,如:同时为200个租户提供 SaaS 服务,拆分成4个集群,每个集群支持50个租户。
资源规格及适配场景
购买腾讯云数据仓库 TCHouse-D 集群时,需要选择 FE 节点、BE 节点的计算资源规格和存储资源规格,并选择是否开启高可用。
资源规格及建议场景
计算节点规格 | 建议存储类型 | 建议场景 |
4核16G | 高性能云硬盘 SSD 云硬盘 增强型 SSD 云硬盘 | 仅限于 POC 功能测试或个人学习使用,主要用于体验测试产品能力。 |
8核32G | 高性能云硬盘 SSD 云硬盘 增强型 SSD 云硬盘 | 推荐用于测试环境,可支持中等数据规模、较复杂的数据分析 |
16核64G | 高性能云硬盘 SSD云硬盘 增强型 SSD 云硬盘 | 可用于生产环境,可支持较大规模、较复杂场景的数据分析,及高并发场景 |
32核及以上 | 高性能云硬盘 SSD 云硬盘 增强型 SSD 云硬盘 | 生产环境推荐配置,可支持大量高复杂度数据分析,高并发等场景 |
高可用及节点数量建议
场景 | 高可用选择 | 建议最小 FE 节点数 | 建议最小 BE 节点数 |
POC及测试环境 | 非高可用 | 1个 | 3个 |
生产场景(查询高可用) | 读高可用 | 最少3个FE节点 | 最少3个 BE 节点,按需扩缩容 |
生产场景(查询/写入高可用) | 读写高可用 | 最少5个FE节点 | 最少3个 BE 节点,按需扩缩容 |
跨AZ高可用场景 | 读写高可用 + 3AZ部署 | 最少5个FE节点 | 最少3个 BE 节点,以3为阶梯扩缩容 |
资源规格选型举例
注意:
以下内容仅供参考,不同业务场景下性能可能会有较大的差异。
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:开启读写高可用,5节点,每个节点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或更多)。 |