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