一、资源规格及适配场景
购买腾讯云数据仓库 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、内存大量占用的主要原因如下:
| 常见场景 | 资源耗用表现 | 使用率持续超过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或更多)。 |