1

那里有很多 Hyperloglog 实现,但是您如何验证/测试 Hyperloglog 实现?要检查它的“准确性”,它是“错误”绑定行为吗?只是扔一些静态测试用例看起来很无效。

更具体地说,有人改变了随机数例程,我怎么知道这不是一个灾难性的选择,并通过一些自动化的、可重复的测试来展示?

谁能指出我在 github 或其他地方的任何已知的良好测试,并且可能是一些解释?

4

1 回答 1

1

好问题。首先,请注意,虽然 HyperLogLog 的理论基础提供了一些准确性指示,但测试您正在使用的实现至关重要。

测试应该使用随机数据集(也可以使用其他静态数据集),并且应该应用于不同的集合基数。如果您有任何测试自动化框架,那将是确保避免回归的自然场所,正如您上面建议的那样。但是,请注意,要测量大基数的准确性,测试运行时可能会令人望而却步。

您可以使用下面的实现作为参考。它包括抽取大量随机数的单元测试,并以固定的时间间隔检查准确性。

https://github.com/Microsoft/CardinalityEstimation

于 2016-03-15T16:59:29.987 回答