内置函数
Vastbase G100流计算支持的内置函数除SQL引擎自带聚合函数(sum、avg、count、max、min等)外,还支持流引擎时序流数据处理特有的内置函数。
(1)Bloom Filter函数
Bloom Filter Aggregates中的聚合函数可用于生成Bloom filter数据。
内置函数 | 说明 |
BLOOM_ADD(BLOOM,EXPRESSION) | 将给定的表达式增加到Bloom Filter上 |
BLOOM_CARDINALITY(BLOOM) | 返回Bloom Filter的基数,即集合中元素去重后的个数,误差非常小 |
BLOOM_CONTAINS(BLOOM,EXPRESSION) | 当Bloom filter可能包含给定的值时,会返回true |
BLOOM_INTERSECTION(BLOOM,BLOOM,…) | 回给定的多个Bloom filter的交集。 |
BLOOM_UNION(BLOOM,BLOOM,…) | 返回给定的多个Bloom filter的并集。 |
(2)Top-K函数
Top-K Aggregates可用于聚合并产生topk数据。
内置函数 | 说明 |
OPK_INCREMENT(TOPK,EXPRESSION) | 增加给定topk中给定表达式的频数,结果返回Top-K |
TOPK_INCREMENT(TOPK,EXPRESSION,WEIGHT) | 给topk中给定表达式增加指定权重的频数,结果返回Top-K |
TOPK(TOPK) | 返回给定Top-K及其相关频数的k个元组 |
OPK_FREQS(TOPK) | 返回给定Top-K相关的最大k个频数 |
TOPK_VALUES(TOPK) | 返回给定Top-K相关的最大k个频率项 |
(4)Frequency函数
内置函数 | 说明 |
FREQ_ADD(CMSKETCH,EXPRESSION,WEIGHT) | 在给定的Count-Min Sketch上根据指定权重增加表达式的频数 |
FREQ(CMSKETCH,EXPRESSION) | 返回表达式在给定Count-Min Sketch上的频数 |
FREQ_NORM(CMSKETCH,EXPRESSION) | 返回表达式在给定Count-Min Sketch上的归一化频率,存在很小的误差 |
FREQ_TOTAL(CMSKETCH) | 返回给定Count-Min Sketch中的对象总数 |
内置函数 | 说明 |
HLL_ADD(HYPERLOGLOG,EXPRESSION) | 将给定表达的结果添加给HyperLogLog |
HLL_CARDINALITY(HYPERLOGLOG) | 返会给定HyperLogLog的基数,大约有0.2%的误差 |
HLL_UNION(HYPERLOGLOG,HYPERLOGLOG,…) | 返回多个hyperloglog的并集 |
(6)Distribution函数
内置函数 | 说明 |
DIST_ADD(TDIGEST,EXPRESSION,WEIGHT) | 通过给定t-digest中的权重增加给定表达式的频率 |
DIST_CDF(TDIGEST,EXPRESSION) | 给定一个T-Digest,返回其基于表达式评估的分布函数,有很小的误差 |
DIST_QUANTILE(TDIGEST,FLOAT) | 给定一个tdigest,返回float对应的分位数,float区间为[0,1] |
(7)Miscellaneous函数
内置函数 | 说明 |
BUCKET_CARDINALITY(BUCKET_AGG,BUCKET_ID) | 返回bucket_id在bucket_agg中的基数 |
BUCKET_IDS(BUCKET_AGG) | 以数组形式返回包含给定bucket_agg的所有bucketid |
BUCKET_CARDINALITIES(BUCKET_AGG) | 以数组形式返回给定bucket_agg中的基数 |
DATE_ROUND(TIMESTAMP,RESOLUTION) | 对给定的时间"向下取整" |
YEAR(TIMESTAMP) | 截取给定时间戳对应的年 |
MONTH(TIMESTAMP) | 截取给定时间戳对应的月 |
DAY(TIMESTAMP) | 截取给定时间戳对应的天 |
HOUR(TIMESTAMP) | 截取给定时间戳对应的小时 |
MINUTE(TIMESTAMP) | 截取给定时间戳对应的分钟 |
SECOND(TIMESTAMP) | 截取给定时间戳对应的秒 |
SET_CARDINALITY(ARRAY) | 返回给定集合数组的基数,集合可用通过set_agg构造 |