• GBase 8c V3.0.0数据类型——HLL函数和操作符(日志函数)


    hll主要存在三种模式Explicit、Sparse、Full。当数据规模比较小的时候会使用Explicit模式,这种模式下distinct值的计算是没有误差的;随着distinct值越来越多,hll会先后转换为Sparse模式和Full模式,这两种模式在计算结果上没有任何区别,只影响hll函数的计算效率和hll对象的存储空间。下面的函数可以用于查看hll的一些参数。

    1. hll_print(hll)

    描述:打印hll的一些debug参数信息。

    示例:

     gbase=# select hll_print(hll_empty());

                                       hll_print

    -------------------------------------------------------------------------------

     type=1(HLL_EMPTY), log2m=14, log2explicit=10, log2sparse=12, duplicatecheck=0

    (1 row)

    1. hll_type(hll)

    描述:查看当前hll的类型。返回值具体含义如下:返回值0,表示HLL_UNINIT,未初始化的hll对象;返回值1,表示HLL_EMPTY,hll空对象;返回值2,表示HLL_EXPLICIT,Explicit模式的hll对象;返回值3,表示HLL_SPARSE,Sparse模式的hll对象;返回值4,表示HLL_FULL,Full模式的hll对象;返回值5,表示HLL_UNDEFINED,不合法的hll对象。

    示例:

     gbase=# select hll_type(hll_empty());

     hll_type

    ----------

            1

    (1 row)

    1. hll_log2m(hll)

    描述:查看当前hll数据结构中的log2m数值,log2m是分桶数的对数值,此值会影响最后hll计算distinct误差率,误差率计算公式为±1.04/√(2 ^ log2m)。当显式指定log2m的取值为10-16之间时,hll会设置分桶数为2log2m。当显示指定log2explicit为-1时,会采用内置默认值。

    示例:

     gbase=# select hll_log2m(hll_empty());

     hll_log2m

    -----------

            14

    (1 row)

    gbase=# select hll_log2m(hll_empty(10));

     hll_log2m

    -----------

            10

    (1 row)

    gbase=# select hll_log2m(hll_empty(-1));

     hll_log2m

    -----------

            14

    (1 row)

    1. hll_log2explicit(hll)

    描述:查看当前hll数据结构中的log2explicit数值。hll通常会由Explicit模式到Sparse模式再到Full模式,这个过程称为promotion hierarchy策略。可以通过调整log2explicit值的大小改变策略,比如log2explicit为0的时候就会跳过Explicit模式而直接进入Sparse模式。当显式指定log2explicit的取值为1-12之间时,hll会在数据段长度超过2log2explicit时转为Sparse模式。当显示指定log2explicit为-1时,会采用内置默认值。

    示例:

     gbase=# select hll_log2explicit(hll_empty());

     hll_log2explicit

    ------------------

                   10

    (1 row)

    gbase=# select hll_log2explicit(hll_empty(12, 8));

     hll_log2explicit

    ------------------

                    8

    (1 row)

        

    gbase=# select hll_log2explicit(hll_empty(12, -1));

     hll_log2explicit

    ------------------

                   10

    (1 row)

    1. hll_log2sparse(hll)

    描述:查看当前hll数据结构中的log2sparse数值。hll通常会由Explicit模式到Sparse模式再到Full模式,这个过程称为promotion hierarchy策略。可以通过调整log2sparse值的大小改变策略,比如log2sparse为0的时候就会跳过Sparse模式而直接进入Full模式。当显式指定Sparse的取值为1-14之间时,hll会在数据段长度超过2log2sparse时转为Full模式。当显示指定log2sparse为-1时,会采用内置默认值。

    示例:

     gbase=# select hll_log2sparse(hll_empty());

     hll_log2sparse

    ----------------

                 12

    (1 row)

    gbase=# select hll_log2sparse(hll_empty(12, 8, 10));

     hll_log2sparse

    ----------------

                 10

    (1 row)

    gbase=# select hll_log2sparse(hll_empty(12, 8, -1));

     hll_log2sparse

    ----------------

                 12

    (1 row)

    1. hll_duplicatecheck(hll)

    描述:是否启用duplicatecheck,0是关闭,1是开启。默认关闭,对于有较多重复值出现的情况,可以开启以提高效率。当显示指定duplicatecheck为-1时,会采用内置默认值。

    示例:

     gbase=# select hll_duplicatecheck(hll_empty());

     hll_duplicatecheck

    --------------------

                      0

    (1 row)

    gbase=# select hll_duplicatecheck(hll_empty(12, 8, 10, 1));

     hll_duplicatecheck

    --------------------

                      1

    (1 row)

    gbase=# select hll_duplicatecheck(hll_empty(12, 8, 10, -1));

     hll_duplicatecheck

    --------------------

                      0

    (1 row)

  • 相关阅读:
    故障管理:谈谈我对故障的理解
    物流快递信息查询管理系统网站(JSP+HTML+MySQL)
    Flutter 实现九宫格抽奖动画效果
    【数据结构】数组和字符串(四):特殊矩阵的压缩存储:稀疏矩阵——三元组表
    二叉树的先序、中序、后序、层序遍历(递归&非递归)
    java驾校管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    MNE系列教程1——MNE的安装与基本绘图
    BUUCTF [GXYCTF2019]佛系青年 1
    13.华为秋招一二面
    Nature Climate Change | 全球土壤微生物群落调控微生物呼吸对变暖的敏感性(Q10)
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125439436