我需要将数据从传统的EDW迁移到Hive。在迁移数据之后,我必须验证数据是否成功迁移,即在迁移的表上运行计数查询,最小值,最大值等。理想情况下,这需要在EDW和Hive上的整个数据集上运行以进行比较。但是,有几个因素可能会限制此问题,并且数据验证查询只能在数据子集上运行。这意味着需要采样来选择代表性子集。哪些表必须是代表子集的一部分是一个而另一个因素是样本大小本身。现在,在确定样本大小时,关键方面是查询的SLA。那么鉴于SLA,查询的数量,是否可以达到样本量?我在link提到了excel表,并得出了以下公式;这绝对只是一个近似值,但这有意义吗?
S =((X * R)/ Q)* F
S - 样本大小(GB)
X - SLA,分钟* 60
R - 磁盘扫描速率 以GB /秒为单位的群集
Q - 查询数量
F - 调整因子 占中间数据读数(MR),计算范围内 hive查询等。
假设查询不是CPU密集型的。
示例:10分钟SLA,28 GB /秒扫描速率,4个查询,F = 0.65
S =((600 * 28)/ 4)* 0.65 = 2730 GB