HLL数据类型

    HLL与其他算法的比较请参见。

    表 1 HLL与其他算法比较

    HLL在计算速度和所占存储空间上都占优势。在时间复杂度上,Sort算法需要排序至少O(nlogn)的时间,虽说Hash算法和HLL一样扫描一次全表O(n)的时间就可以得出结果,但是存储空间上,Sort算法和Hash算法都需要先把原始数据存起来再进行统计,会导致存储空间消耗巨大,而对HLL来说不需要存原始数据,只需要维护HLL数据结构,故占用空间有很大的压缩,默认规格下HLL数据结构的最大空间约为16KB。

    HLL中主要的数据结构,请参见。

    表 2 HyperLogLog中主要数据结构

    数据类型

    hll

    hll头部为27字节长度字段,默认规格下数据段长度0~16KB,可直接计算得到distinct值。

    创建HLL数据类型时,可以支持0~4个参数入参,具体的参数含义与参数规格同函数hll_empty一致。第一个参数为log2m,表示分桶数的对数值,取值范围10~16;第二个参数为log2explicit,表示Explicit模式的阈值大小,取值范围0~12;第三个参数为log2sparse,表示Sparse模式的阈值大小,取值范围0~14;第四个参数为duplicatecheck,表示是否启用duplicatecheck,取值范围为0~1。当入参输入值为-1时,会采用默认值设定HLL的参数。可以通过\d或\d+查看HLL类型的参数。

    HLL的应用场景。

    • 场景1:“Hello World”

      通过下面的示例说明如何使用hll数据类型:

    • 场景3:“插入数据不满足hll数据结构要求”