有奖捉虫:行业应用 & 管理与支持文档专题 HOT

如何选择数据模型?

对于本身已完成聚合的数据,选择 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 可以了解如何进行数据实时导入),或者 提交工单 以获得更深入的帮助来解决您的问题。
?


http://www.vxiaotou.com