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)

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

  1. 开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...

    2019独角兽企业重金招聘Python工程师标准>>> 开源纯C日志函数库iLOG3快速入门(八.如果你喜欢简单日志函数甚于日志函数库) 很多网友来信坚持表达了在项目中应使用简单日志 ...

  2. ibm ilog mysql_开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...

    开源纯C日志函数库iLOG3快速入门(八.如果你喜欢简单日志函数甚于日志函数库) 很多网友来信坚持表达了在项目中应使用简单日志函数,而不喜欢日志函数库,我与之反复争论无果,不过话说回来,我也喜欢短小轻 ...

  3. GBase 8c V3.0.0数据类型——HLL数据类型

    ​​​​​HLL数据类型 HLL(Hyper Loglog)是一种用于统计数据集中唯一值个数的高效近似算法,具有计算速度快.节省空间的特点,不需要直接存储集合本身,而是存储HLL数据结构.每当有新数据 ...

  4. GBase 8c V3.0.0数据类型——数字操作函数

    l abs(x) 描述:绝对值. 返回值类型:和输入相同. 示例: gbase=# SELECT abs(-17.4); abs ------ 17.4 (1 row) l acos(x) 描述:反余 ...

  5. GBase 8c V3.0.0数据类型——data_part

    date_part函数基于传统Ingres函数,等效于SQL标准函数extract. l date_part('field', source) 这里的field参数必须是一个字符串,而不是一个名称.有 ...

  6. GBase 8c V3.0.0版本关键字介绍

    SQL里有保留字和非保留字之分.根据标准,保留字决不能用做其他标识符.非保留字只是在特定的环境里有特殊的含义,而在其他环境里是可以用做标识符的. 标识符的命名需要遵守如下规范: 标识符需要为字母.下划 ...

  7. php 日志函数,php 写入日志函数

    本篇文章介绍的内容是关于php 写入日志函数,现在分享给大家,有需要的朋友可以参考一下public static function log($var, $file = ''){ $file = LOG ...

  8. GBase 8c V3.0.0数据类型——HLL函数和操作符(聚合函数)

    hll_add_agg(hll_hashval) 描述:把哈希后的数据按照分组放到hll中. 返回值类型:hll 示例: --准备数据 gbase=# create table t_id(id int ...

  9. GBase 8c V3.0.0数据类型——HLL函数和操作符(功能函数)

    hll_empty() 描述:创建一个空的hll. 返回值类型:hll 示例: gbase=# select hll_empty(); hll_empty ---------------------- ...

最新文章

  1. 对ViewPager的理解
  2. 嵌入式系统启动流程和启动代码的作用 !
  3. c语言随机产生arp报文,c语言构造arp报文
  4. 上的网页显示拒绝访问_DLink家庭路由器上发现6个漏洞
  5. 在vue单页应用中使用jquery
  6. 现代软件工程 教学计划 中国科学技术大学-微软亚洲研究院联合培养班
  7. 15 WM配置-主数据-定义存储区标识符(Storage Section Indicators)
  8. 大工19春《计算机组成原理》,大工19春《计算机组成原理》在线作业3.doc
  9. 页面进入和退出的特效
  10. 日程表|第8届高等学校计算机程序设计课程论坛
  11. Git - 推送当前分支快捷方式
  12. js压缩图片到指定大小
  13. java win7 管理员权限_win7系统一键取得管理员权限的操作方法
  14. PV值、UV值和IP值
  15. Hash算法总结(转载)
  16. 秋招选择题(二)图形推理题
  17. Python 并行编程教程 | Lynda教程 中文字幕
  18. STM32一个定时器同时捕获4路PWM波
  19. Homework 1: COVID-19 Cases Prediction (Regression)
  20. 灵魂有香气的女子李筱懿:充实自己,学会把自己变成奢侈品

热门文章

  1. 康拓展开和逆康拓展开
  2. 再见,区块链 Rio会议和以太坊Sao Paolo活动。 你好,闪光时刻
  3. 上传文档自动赚钱项目,简单操作,新手小白可直接上手!
  4. 解决idea打开新项目Artifacts没有自动生成war
  5. 三步建立自己的电影网站 2 (使用Cpolar发布电影网站)
  6. java 通讯机_java 上位机与单片机通过串口485通讯
  7. BindingResult类的作用
  8. 基于PHP+MySQL二手书交易系统
  9. 简约唯美大学毕业论文答辩PPT模板
  10. 喜报!智汇云舟签约优质项目 视频孪生加速赋能千行百业数智化转型