云服务器内容精选
-
内置函数 HLL(HyperLogLog)有一系列内置函数用于内部对数据进行处理,一般情况下用户不需要熟知这些函数的使用。详情见表1。 表1 内置函数 函数名称 功能描述 hll_in 以string格式接收hll数据。 hll_out 以string格式发送hll数据。 hll_recv 以bytea格式接收hll数据。 hll_send 以bytea格式发送hll数据。 hll_trans_in 以string格式接收hll_trans_type数据。 hll_trans_out 以string格式发送hll_trans_type数据。 hll_trans_recv 以bytea形式接收hll_trans_type数据。 hll_trans_send 以bytea形式发送hll_trans_type数据。 hll_typmod_in 接收typmod类型数据。 hll_typmod_out 发送typmod类型数据。 hll_hashval_in 接收hll_hashval类型数据。 hll_hashval_out 发送hll_hashval类型数据。 hll_add_trans0 类似于hll_add所提供的功能,初始化时无指定入参,通常在聚合运算的第一阶段DN上使用。 hll_add_trans1 类似于hll_add所提供的功能,初始化时指定一个入参,通常在聚合运算的第一阶段DN上使用。 hll_add_trans2 类似于hll_add所提供的功能,初始化时指定两个入参,通常在聚合运算的第一阶段DN上使用。 hll_add_trans3 类似于hll_add所提供的功能,初始化时指定三个入参,通常在聚合运算的第一阶段DN上使用。 hll_add_trans4 类似于hll_add所提供的功能,初始化时指定四个入参,通常在聚合运算的第一阶段DN上使用。 hll_union_trans 类似hll_union所提供的功能,在聚合运算的第一阶段DN上使用。 hll_union_collect 类似于hll_union所提供的功能,在聚合运算第二阶段DN上使用,汇总各个DN上的结果。 hll_pack 在聚合运算第三阶段DN上使用,把自定义hll_trans_type类型最后转换成hll类型。 hll 用于hll类型转换成hll类型,根据输入参数会设定指定参数。 hll_hashval 用于bigint类型转换成hll_hashval类型。 hll_hashval_int4 用于int4类型转换成hll_hashval类型。
-
聚合函数 hll_add_agg(hll_hashval) 描述:把哈希后的数据按照分组放到hll中。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 --准备数据 gaussdb=# CREATE TABLE t_id(id int); gaussdb=# INSERT INTO t_id VALUES(generate_series(1,500)); gaussdb=# CREATE TABLE t_data(a int, c text); gaussdb=# INSERT INTO t_data SELECT mod(id,2), id FROM t_id; --创建表并指定列为hll gaussdb=# CREATE TABLE t_a_c_hll(a int, c hll); --根据a列GROUP BY对数据分组,把各组数据加到hll中 gaussdb=# INSERT INTO t_a_c_hll SELECT a, hll_add_agg(hll_hash_text(c)) FROM t_data GROUP BY a; --得到每组数据中hll的Distinct值 gaussdb=# SELECT a, #c AS cardinality FROM t_a_c_hll ORDER BY a; a | cardinality ---+------------------ 0 | 247.862354346299 1 | 250.908710610377 (2 rows) hll_add_agg(hll_hashval, int32 log2m) 描述:把哈希后的数据按照分组放到hll中, 并指定参数log2m,取值范围是10到16。若输入-1或者NULL,则采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), 12)) FROM t_data; hll_cardinality ------------------ 497.965240179228 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit) 描述:把哈希后的数据按照分组放到hll中,依次指定参数log2m、log2explicit。 log2explicit取值范围是0到12,0表示直接跳过Explicit模式。该参数可以用来设置Explicit模式的阈值大小,在数据段长度达到2log2explicit后切换为Sparse模式或者Full模式。若输入-1或者NULL,则log2explicit采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 1)) FROM t_data; hll_cardinality ------------------ 498.496062953313 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit, int64 log2sparse) 描述:把哈希后的数据按照分组放到hll中, 依次指定参数log2m、log2explicit、log2sparse。log2sparse取值范围是0到14,0表示直接跳过Sparse模式。该参数可以用来设置Sparse模式的阈值大小,在数据段长度达到2log2sparse后切换为Full模式。若输入-1或者NULL,则log2sparse采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 6, 10)) FROM t_data; hll_cardinality ------------------ 498.496062953313 (1 row) hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit, int64 log2sparse, int32 duplicatecheck) 描述:把哈希后的数据按照分组放到hll中, 依次指定参数log2m、log2explicit、log2sparse、duplicatecheck,duplicatecheck取值范围是0或者1,表示是否开启该模式,默认情况下该模式会关闭。若输入-1或者NULL,则duplicatecheck采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 6, 10, -1)) FROM t_data; hll_cardinality ------------------ 498.496062953313 (1 row) hll_union_agg(hll) 描述:将多个hll类型数据union成一个hll。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 --将各组中的hll数据union成一个hll,并计算distinct值。 gaussdb=# SELECT #hll_union_agg(c) AS cardinality FROM t_a_c_hll; cardinality ------------------ 498.496062953313 (1 row) --删除表 gaussdb=# DROP TABLE t_id; gaussdb=# DROP TABLE t_data; gaussdb=# DROP TABLE t_a_c_hll; 注意:当两个或者多个hll数据结构做union的时候,必须要保证其中每一个hll里面的精度参数一样,否则将不可以进行union。同样的约束也适用于函数hll_union(hll,hll)。
-
废弃函数 由于版本升级,HLL(HyperLogLog)有一些旧的函数废弃,用户可以用类似的函数进行替代。 hll_schema_version(hll) 描述:查看当前hll中的schema version。旧版本schema version是常值1,用来进行hll字段的头部校验,重构后的hll在头部增加字段“HLL”进行校验,schema version不再使用。 hll_regwidth(hll) 描述:查看hll数据结构中桶的位数大小。旧版本桶的位数regwidth取值1~5,会存在较大的误差,也限制了基数估计上限。 重构后regwidth为固定值6,不再使用regwidth变量。 hll_expthresh(hll) 描述:得到当前hll中expthresh大小。采用hll_log2explicit(hll)替代类似功能。 hll_sparseon(hll) 描述:是否启用Sparse模式。采用hll_log2sparse(hll)替代类似功能,0表示关闭Sparse模式。
-
功能函数 hll_empty() 描述:创建一个空的hll。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_empty(); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m) 描述:创建空的hll并指定参数log2m,取值范围是10到16。若输入-1,则采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(-1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit) 描述:创建空的hll并依次指定参数log2m、log2explicit。log2explicit取值范围是0到12,0表示直接跳过Explicit模式。该参数可以用来设置Explicit模式的阈值大小,在数据段长度达到2log2explicit后切换为Sparse模式或者Full模式。若输入-1,则log2explicit采用内置默认值。 返回值类型: hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse。log2sparse取值范围是0到14,0表示直接跳过Sparse模式。该参数可以用来设置Sparse模式的阈值大小,在数据段长度达到2log2sparse后切换为Full模式。若输入-1,则log2sparse采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse, int32 duplicatecheck) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse、duplicatecheck。duplicatecheck取0或者1,表示是否开启该模式,默认情况下该模式会关闭。若输入-1,则duplicatecheck采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8, 0); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, 8, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) hll_add(hll, hll_hashval) 描述:把hll_hashval加入到hll中。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add(hll_empty(), hll_hash_integer(1)); hll_add ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_add_rev(hll_hashval, hll) 描述:把hll_hashval加入到hll中,和hll_add功能一样,只是参数位置进行了交换。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add_rev(hll_hash_integer(1), hll_empty()); hll_add_rev ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_eq(hll, hll) 描述:比较两个hll是否相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_eq(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_eq -------- f (1 row) hll_ne(hll, hll) 描述:比较两个hll是否不相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_ne(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_ne -------- t (1 row) hll_cardinality(hll) 描述:计算hll的distinct值。 返回值类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_empty() || hll_hash_integer(1)); hll_cardinality ----------------- 1 (1 row) hll_union(hll, hll) 描述:把两个hll数据结构union成一个。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_union(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_union -------------------------------------------------------------------------------------------- \x484c4c10002000002b090000000000000000400000000000000000b3ccc49320cca1ae3e2921ff133fbaed00 (1 row)
-
日志函数 hll主要存在三种模式Explicit、Sparse、Full。当数据规模比较小的时候会使用Explicit模式,这种模式下distinct值的计算是没有误差的;随着distinct值越来越多,hll会先后转换为Sparse模式和Full模式,这两种模式在计算结果上没有任何区别,只影响hll函数的计算效率和hll对象的存储空间。下面的函数可以用于查看hll的一些参数。 hll_print(hll) 描述:打印hll的一些debug参数信息。 示例: 1 2 3 4 5 gaussdb=# SELECT hll_print(hll_empty()); hll_print ------------------------------------------------------------------------------- type=1(HLL_EMPTY), log2m=14, log2explicit=10, log2sparse=12, duplicatecheck=0 (1 row) 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对象。 示例: 1 2 3 4 5 gaussdb=# SELECT hll_type(hll_empty()); hll_type ---------- 1 (1 row) hll_log2m(hll) 描述:查看当前hll数据结构中的log2m数值,log2m是分桶数的对数值,此值会影响最后hll计算distinct误差率,误差率计算公式为±1.04/√(2 ^ log2m)。当显式指定log2m的取值为10-16之间时,hll会设置分桶数为2log2m。当显示指定log2explicit为-1时,会采用内置默认值。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT hll_log2m(hll_empty()); hll_log2m ----------- 14 (1 row) gaussdb=# SELECT hll_log2m(hll_empty(10)); hll_log2m ----------- 10 (1 row) gaussdb=# SELECT hll_log2m(hll_empty(-1)); hll_log2m ----------- 14 (1 row) hll_log2explicit(hll) 描述:查看当前hll数据结构中的log2explicit数值。hll通常会由Explicit模式到Sparse模式再到Full模式,这个过程称为promotion hierarchy策略。可以通过调整log2explicit值的大小改变策略,比如log2explicit为0的时候就会跳过Explicit模式而直接进入Sparse模式。当显式指定log2explicit的取值为1-12之间时,hll会在数据段长度超过2log2explicit时转为Sparse模式。当显示指定log2explicit为-1时,会采用内置默认值。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT hll_log2explicit(hll_empty()); hll_log2explicit ------------------ 10 (1 row) gaussdb=# SELECT hll_log2explicit(hll_empty(12, 8)); hll_log2explicit ------------------ 8 (1 row) gaussdb=# SELECT hll_log2explicit(hll_empty(12, -1)); hll_log2explicit ------------------ 10 (1 row) hll_log2sparse(hll) 描述:查看当前hll数据结构中的log2sparse数值。hll通常会由Explicit模式到Sparse模式再到Full模式,这个过程称为promotion hierarchy策略。可以通过调整log2sparse值的大小改变策略,比如log2sparse为0的时候就会跳过Sparse模式而直接进入Full模式。当显式指定Sparse的取值为1-14之间时,hll会在数据段长度超过2log2sparse时转为Full模式。当显示指定log2sparse为-1时,会采用内置默认值。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT hll_log2sparse(hll_empty()); hll_log2sparse ---------------- 12 (1 row) gaussdb=# SELECT hll_log2sparse(hll_empty(12, 8, 10)); hll_log2sparse ---------------- 10 (1 row) gaussdb=# SELECT hll_log2sparse(hll_empty(12, 8, -1)); hll_log2sparse ---------------- 12 (1 row) hll_duplicatecheck(hll) 描述:是否启用duplicatecheck,0是关闭,1是开启。默认关闭,对于有较多重复值出现的情况,可以开启以提高效率。当显示指定duplicatecheck为-1时,会采用内置默认值。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT hll_duplicatecheck(hll_empty()); hll_duplicatecheck -------------------- 0 (1 row) gaussdb=# SELECT hll_duplicatecheck(hll_empty(12, 8, 10, 1)); hll_duplicatecheck -------------------- 1 (1 row) gaussdb=# SELECT hll_duplicatecheck(hll_empty(12, 8, 10, -1)); hll_duplicatecheck -------------------- 0 (1 row)
-
聚合函数 hll_add_agg(hll_hashval) 描述:把哈希后的数据按照分组放到hll中。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 --准备数据 gaussdb=# CREATE TABLE t_id(id int); gaussdb=# INSERT INTO t_id VALUES(generate_series(1,500)); gaussdb=# CREATE TABLE t_data(a int, c text); gaussdb=# INSERT INTO t_data SELECT mod(id,2), id FROM t_id; --创建表并指定列为hll gaussdb=# CREATE TABLE t_a_c_hll(a int, c hll); --根据a列GROUP BY对数据分组,把各组数据加到hll中 gaussdb=# INSERT INTO t_a_c_hll SELECT a, hll_add_agg(hll_hash_text(c)) FROM t_data GROUP BY a; --得到每组数据中hll的Distinct值 gaussdb=# SELECT a, #c AS cardinality FROM t_a_c_hll ORDER BY a; a | cardinality ---+------------------ 0 | 247.862354346299 1 | 250.908710610377 (2 rows)
-
操作符 = 描述:比较hll或hll_hashval的值是否相等。 返回值类型:bool 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 --hll gaussdb=# SELECT (hll_empty() || hll_hash_integer(1)) = (hll_empty() || hll_hash_integer(1)); column ---------- t (1 row) --hll_hashval gaussdb=# SELECT hll_hash_integer(1) = hll_hash_integer(1); ?column? ---------- t (1 row)
-
废弃函数 由于版本升级,HLL(HyperLogLog)有一些旧的函数废弃,用户可以用类似的函数进行替代。 hll_schema_version(hll) 描述:查看当前hll中的schema version。旧版本schema version是常值1,用来进行hll字段的头部校验,重构后的hll在头部增加字段“HLL”进行校验,schema version不再使用。 hll_regwidth(hll) 描述:查看hll数据结构中桶的位数大小。旧版本桶的位数regwidth取值1~5,会存在较大的误差,也限制了基数估计上限。 重构后regwidth为固定值6,不再使用regwidth变量。 hll_expthresh(hll) 描述:得到当前hll中expthresh大小。采用hll_log2explicit(hll)替代类似功能。 hll_sparseon(hll) 描述:是否启用Sparse模式。采用hll_log2sparse(hll)替代类似功能,0表示关闭Sparse模式。
-
功能函数 hll_empty() 描述:创建一个空的hll。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_empty(); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m) 描述:创建空的hll并指定参数log2m,取值范围是10到16。若输入-1,则采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(-1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit) 描述:创建空的hll并依次指定参数log2m、log2explicit。log2explicit取值范围是0到12,0表示直接跳过Explicit模式。该参数可以用来设置Explicit模式的阈值大小,在数据段长度达到2log2explicit后切换为Sparse模式或者Full模式。若输入-1,则log2explicit采用内置默认值。 返回值类型: hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse。log2sparse取值范围是0到14,0表示直接跳过Sparse模式。该参数可以用来设置Sparse模式的阈值大小,在数据段长度达到2log2sparse后切换为Full模式。若输入-1,则log2sparse采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse, int32 duplicatecheck) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse、duplicatecheck。duplicatecheck取0或者1,表示是否开启该模式,默认情况下该模式会关闭。若输入-1,则duplicatecheck采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8, 0); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, 8, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) hll_add(hll, hll_hashval) 描述:把hll_hashval加入到hll中。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add(hll_empty(), hll_hash_integer(1)); hll_add ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_add_rev(hll_hashval, hll) 描述:把hll_hashval加入到hll中,和hll_add功能一样,只是参数位置进行了交换。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add_rev(hll_hash_integer(1), hll_empty()); hll_add_rev ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_eq(hll, hll) 描述:比较两个hll是否相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_eq(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_eq -------- f (1 row) hll_ne(hll, hll) 描述:比较两个hll是否不相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_ne(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_ne -------- t (1 row) hll_cardinality(hll) 描述:计算hll的distinct值。 返回值类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_empty() || hll_hash_integer(1)); hll_cardinality ----------------- 1 (1 row) hll_union(hll, hll) 描述:把两个hll数据结构union成一个。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_union(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_union -------------------------------------------------------------------------------------------- \x484c4c10002000002b090000000000000000400000000000000000b3ccc49320cca1ae3e2921ff133fbaed00 (1 row)
-
日志函数 hll主要存在三种模式Explicit、Sparse、Full。当数据规模比较小的时候会使用Explicit模式,这种模式下distinct值的计算是没有误差的;随着distinct值越来越多,hll会先后转换为Sparse模式和Full模式,这两种模式在计算结果上没有任何区别,只影响hll函数的计算效率和hll对象的存储空间。下面的函数可以用于查看hll的一些参数。 hll_print(hll) 描述:打印hll的一些debug参数信息。 示例: 1 2 3 4 5 gaussdb=# SELECT hll_print(hll_empty()); hll_print ------------------------------------------------------------------------------- type=1(HLL_EMPTY), log2m=14, log2explicit=10, log2sparse=12, duplicatecheck=0 (1 row)
-
test_tsc_info(time float8, loops int) 描述:测试当前节点通过TSC(TimeStamp-Counter)换算时间的准确性。该函数仅8.2.1及以上集群版本支持。 输入参数含义如下: time:测试的时间差(单位s),测试时长需要小于或者等于60s loops:测试次数,范围值[1,10] 返回值类型:record 返回值字段: id:循环次数。 real_time_diff:通过gettimeofday获取的时间差(单位us)。 est_time_scalar:通过TSC换算信息转换得到的时间差(单位us)。 est_time_frequency:通过TSC频率转换得到的时间差(单位us)。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT * FROM test_tsc_info(0.01,10); id | real_time_diff | est_time_scalar | est_time_frequency ----+----------------+-----------------+-------------------- 1 | 10057 | | 10056.9 2 | 10057 | | 10057.4816666667 3 | 10056 | | 10055.2841666667 4 | 10054 | | 10054.4908333333 5 | 10055 | | 10054.2875 6 | 10055 | | 10054.7483333333 7 | 10055 | | 10054.4725 8 | 10054 | | 10054.0766666667 9 | 10058 | | 10058.1016666667 10 | 10057 | | 10056.3733333333 (10 rows)
-
get_tsc_info() 描述:重新获取当前数据库节点的TSC(TimeStamp-Counter)信息。该函数仅8.2.1及以上集群版本支持。 返回值类型:record 表5 返回值字段 名称 类型 描述 node_name text 节点名称。 tsc_mult bigint TSC换算乘数。 tsc_shift bigint TSC换算位移数。 tsc_frequency float8 TSC频率。 tsc_use_freqency boolean 是否使用TSC频率进行时间换算。 tsc_ready boolean 是否可以使用TSC频率进行时间换算。 tsc_scalar_error_info text 获取TSC换算信息的错误信息。 tsc_freq_error_info text 获取TSC频率的错误信息。
-
get_col_file_vacuum_info(schema_name text, table_name text, force_get_rewritten_file_num bool) 描述:查询某张列存表的文件vacuum相关信息,每个分区单独统计。该函数仅8.2.0.100及以上集群版本支持。 参数:模式名(必选),表名(必选),是否强制获取准确的可清理文件数(必选,默认为false) 返回值类型:record 返回值字段: node_name:DN节点名。 part_name:分区名,普通表此列为空。 total_file_num:总CU文件数。 rewritable_file_num:可重写,但还未重写的文件数。 rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。 empty_file_num:已清理文件数。 示例: 1 2 3 4 5 6 7 8 9 10 SELECT * FROM get_col_file_vacuum_info('public','pa',false); node_name | part_name | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num -----------+-----------+----------------+---------------------+--------------------+---------------- datanode1 | pa1 | 1 | 0 | 0 | 0 datanode1 | pa2 | 1 | 0 | 0 | 0 datanode2 | pa1 | 1 | 0 | 0 | 0 datanode2 | pa2 | 1 | 0 | 0 | 0 datanode3 | pa1 | 1 | 0 | 0 | 0 datanode3 | pa2 | 1 | 0 | 0 | 0 (6 rows)
-
get_all_col_file_vacuum_info(force_get_rewritten_file_num bool) 描述:查询全库所有列存表的文件vacuum相关信息。该函数仅8.2.0.100及以上集群版本支持。 参数:是否强制获取准确的可清理文件数(必选,true或false) 返回值类型:record 返回值字段: node_name:DN节点名。 schema_name:模式名。 table_name:表名。 total_file_num:总CU文件数。 rewritable_file_num:可重写,但还未重写的文件数。 rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。 empty_file_num:已清理文件数。 示例: 1 2 3 4 5 6 7 8 9 SELECT * FROM get_all_col_file_vacuum_info(false); node_name | schema_name | table_name | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num -----------+-------------+----------------------+----------------+---------------------+--------------------+---------------- datanode1 | public | udi_57373 | 2 | 0 | 0 | 1 datanode1 | public | udi_57374 | 2 | 0 | 0 | 1 datanode2 | public | udi_57373 | 2 | 0 | 0 | 1 datanode2 | public | udi_57374 | 2 | 0 | 0 | 1 datanode3 | public | udi_57373 | 2 | 0 | 0 | 1 datanode3 | public | udi_57374 | 2 | 0 | 0 | 1
-
show_tsc_info() 描述:查询当前数据库节点已获取的TSC(TimeStamp-Counter)信息。该函数仅8.2.1及以上集群版本支持。 返回值类型:record 表4 返回值字段 名称 类型 描述 node_name text 节点名称。 tsc_mult bigint TSC换算乘数。 tsc_shift bigint TSC换算位移数。 tsc_frequency float8 TSC频率。 tsc_use_freqency boolean 是否使用TSC频率进行时间换算。 tsc_ready boolean 是否可以使用TSC频率进行时间换算。 tsc_scalar_error_info text 获取TSC换算信息的错误信息。 tsc_freq_error_info text 获取TSC频率的错误信息。 示例: 1 2 3 4 SELECT * FROM show_tsc_info(); node_name | tsc_mult | tsc_shift | tsc_frequency | tsc_use_frequency | tsc_ready | tsc_scalar_error_info | tsc_freq_error_info --------------+----------+-----------+---------------+-------------------+-----------+-------------------------------+--------------------- coordinator1 | | | 2400 | t | t | TSC scalar is not initialized |
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格