tencent cloud

腾讯云数据仓库 TCHouse-D

产品简介
产品概述
基本概念
集群架构
产品优势
应用场景
购买指南
计费概述
续费说明
到期与欠费说明
退费说明
配置变更计费说明
快速入门
通过控制台使用腾讯云数据仓库 TCHouse-D
通过客户端使用腾讯云数据仓库 TCHouse-D
操作指南
集群操作
监控和告警配置
账户权限管理
数据管理
查询管理
配置管理
节点管理
日志分析
SQL 工作区
开启资源隔离
开发指南
数据表设计
数据导入
数据导出
基础功能
查询优化
生态扩展功能
API 文档
History
Introduction
API Category
Making API Requests
Cluster Operation APIs
Database and Table APIs
Cluster Information Viewing APIs
Hot-Cold Data Layering APIs
Database and Operation Audit APIs
User and Permission APIs
Resource Group Management APIs
Data Types
Error Codes
云上生态
为子账号授予 CAM 策略
查询加速腾讯云 DLC
实践教程
基本功能使用
高级特性使用
资源规格选型及调优建议
命名规范及库表限制
表设计与数据导入
查询调优
建议规避的用法
通过 JDBC 方式公网访问 TCHouse-D
性能测试
TPC-H 性能测试
SSB 性能测试
TPC-DS 性能测试
常见问题
常见操作问题
常见报错
联系我们
词汇表
产品协议
服务等级协议
隐私政策
数据处理和安全协议

表设计与数据导入

PDF
聚焦模式
字号
最后更新时间: 2024-07-31 09:17:35

如何选择数据模型?

对于本身已完成聚合的数据,选择 Aggregate/Duplicate 模型均可。
对于清洗已完成的明细数据,若需要聚合后查询统计值,选择 Aggregate 模型。
对于清洗已完成的明细数据,若需要做明细级的查询,选择 Duplicate 模型(没有预聚合,聚合查询效率较低,可以通过物化视图,提升聚合查询效率)。
如果有唯一的 Key,需要按 Key 去重,选择 Unique 模型

如何设置分区?

分区字段的值分布尽量分散,建议选择日期或 ID 等作为分区字段。

如何设置副本?

副本数量可以设为3(也可以设为2,但不建议设为1,原因是后续滚动升级会出现数据不可用状态)。

如何设置分桶?

采用一些 Hash 均匀的 Key 作为分桶 Key,避免数据倾斜。
创建的分桶数不宜过多或者过少,建议每个分桶最好保持在1 - 10G之间,对于小表,一般几个分桶已经足够。
分桶 Key 可以一个或者多个,多个保证数据分布更均衡,单个容易匹配命中(单个分桶一般选择区分度较高的 Key)。

如何选择字段格式?

表的每一个字段优先考虑使用整型的类型,而不是 string 等类型,能够极大地促进查询和版本合并效率。
对于浮点数使用 decimal,而不是 double,float。

数据导入注意事项

实时导入建议采用 Stream load,离线导入建议采用 Broker load,导入的基本原则就是批量导入,减少并发,尽可能一次性导入尽量多的数据,减少合并的成本,也尽量避免影响读的效率。(例如一分钟总导入次数不得超过20次,考虑各种并发在内,高频导入目前不适合)。小文件太多可严重影响查询效率
对于作为 Hash key 的字段在数据导入的时候一定要注意 NULL 值的过滤处理,避免出现数据倾斜。出现数据倾斜将导致扩容机器无法缓解集群压力,另外容易导致集群不稳定
数据导入是要指定要导入的分区,否则大表导入数据容易导致失败。
导入数据建议用 CSV,避免 JSON 数据格式。

Schema Change 注意事项

为了集群稳定性考量和业务的实际需求,我们建议创建表之前做好字段类型的评估,业务修改表的 Schema,只建议 Add Column 操作,我们保障在尽可能短的时间内完成新列的增加。

数据清理注意事项

如果要清空分区的数据,建议优先考虑 truncate 操作(等同于 drop 分区,然后 create 分区的操作)而不是 delete 操作,delete 操作对查询性能有较大影响。

其他

对于不熟悉的操作,优先考虑在命令行键入 help keyword 寻求帮助(例如 help stream load 可以了解如何进行数据实时导入),或者 提交工单 以获得更深入的帮助来解决您的问题。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈