感谢原文:https://mp.weixin.qq.com/s/tGbdkF62WU6qbAH0mqtXuA
第一部分:字符集规范
【强制】数据库字符集指定utf-8,并且只支持utf-8。
命令规范
- 【建议】库名统一使用小写方式,中间用下划线(_)分割,长度62字节内
- 【建议】表名称大小写敏感,统一使用小写方式,中间用下划线(_)分割,长度64字节内
第二部分:建表规范
-
【强制】确保每个tablet大小为1-3G之间。举例:假设表内单分区数据量在100G,按天分区,bucket数量100个。
-
【强烈建议】不要使用Auto Bucket ,按照自己的数据量来进行分区分桶,这样你的导入及查询性能都会得到很好的效果,Auto Bucket 会造成 tablet 数量过多,造成大量小文件的问题。
-
【强制】 5 亿以上的数据必须设置分区分桶策略
a、没有办法分区的,数据又缓慢增长的:单个tablet数据量保持在1-3G;比如5亿数据大小在20G,bucket数量给20个
b、没有办法分区的,数据又较快增长的,没办法按照时间动态分区,可以适当放大一下你的bucket数量,按照你的数据保存周期(180天)数据总量,来估算你的bucket数量应该是多少,建议还是单个bucket大小在1-3G。
c、一个是对分桶字段进行加盐处理,业务上查询的时候也是要同样的加盐策略,这样能利用到分桶数据剪裁能力
d、另外一个是数据随机分桶,这种缺点是没办法利用数据分桶剪裁能力,数据分布会很均匀
e、避免数据倾斜的问题
100M以内:1 buckets
100M-1G :3-5 个 Buckets
大于1G-3G :5-7个 buckets
3-5G :7-10 个 bucketsf、维度表:缓慢增长的,可以使用单分区,在分桶策略上使用常用查询条件(这个字段数据分步相对均

最低0.47元/天 解锁文章
7415

被折叠的 条评论
为什么被折叠?



