数据量是15T,100亿条,有参考样例么,需要多少服务器,硬盘怎么分配?
9台服务器,1主2备份,每台5T,5个1T硬盘,大家帮忙看看这个方案如何?
1、一般是一个硬盘放一个数据节点。你总共有45块硬盘,可以建45个数据节点。每个数据组3个数据节点,所以可以建15个数据组。
2、另外,不建议把数据节点放在系统盘上
3、“数据量是15T”计算3副本的话,就是45T。这45T是裸数据,还是落到sdb的数据呢?如果是裸数据,那么45T数据落到sdb会有膨胀,你目前的磁盘就装不下了。
4、附件有一张我们测试部署的的图(注意catalog、coord并不需要单独占用一块磁盘)。
@Tanzhaobo,多谢回复。
45T是裸数据,落到SDB需要给出多大的冗余空间,有参考的扩容系数么,还是需要实测自行确认。
另外SDB不是提供数据压缩功能么,那么有多大的压缩率?
主要还要看数据类型,如果随机分布比较严重,可能压缩率会比较低。
根据观测来看,2.0版本里面的压缩差不多是原始数据的40%-80%(由于要保存每条记录中的字段信息,如果不压缩可能要2-3倍)。
所以说15TB的原始数据,3副本以后45TB,如果索引不多保险看可能也需要30-40TB的空间,如果索引多的话可能还要多于45TB。
@wangzongnew,谢谢。
我们的数据是有几张表数据量可能到90亿,其他表数据量较小,这对于建索引是否有影响。
这个“影响”是指那方面的呢?是指大小,还是性能,还是其它的?
是指索引的数据量的大小
当前压缩仅压缩数据,索引不压缩。因此索引的大小直接取决于索引值的大小及索引数量。你提到的数据量很大的表,可以根据索引的字段大小和总记录数估算一下索引的总大小。如果太大的话建议可以考虑对表进行拆分等
可以看看你的业务是否适合使用垂直分区(主子表)。这样便有效地对表进行拆分。
@Tanzhaobo,能否给个垂直分区的例子?
附件中有两个例子,一个是手工在sdb shell创建及使用垂直分区(主子表)的例子;另一个是使用js脚本创建的例子。运行js 脚本 的方式为 ./sdb -f xxx.js。