内置函数¶
综述¶
我们努力保证PipelineDB同PostgreSQL的10.1+和11.0+版本保持完全兼容。因此,所有 PostgreSQL内置函数 都可以直接在PipelineDB中使用。
聚合¶
PipelineDB的设计初衷之一就是 提供简便、高性能的流式聚合,PostgreSQL的聚合函数在 流视图 中是完全支持的(还存在少数几个罕见的异常)。除了这一大票标准的聚合,PipelineDB也为时序流数据处理添加了一些特有 流聚合 算子。
查看 流聚合 部分了解更多PipelineDB的实用特性。
PipelineDB特有数据类型¶
PipelineDB提供了一系列原生数据类型来有力支持 概率数据结构和算法。您不会在数据表中手动创建这些类型,它们会被 流视图 显式地创建并作为 流聚合 的结果存储下来:
- bloom
- Bloom Filter
- cmsketch
- Count-Min Sketch
- topk
- Top-K
- hyperloglog
- HyperLogLog
- tdigest
- T-Digest
PipelineDB特有函数¶
使用PipelineDB的特有函数可以很好地与它自己的数据类型进行交互,如下所示:
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的并集。
Bloom Filter Aggregates 中的聚合函数可用于生成Bloom filter数据。
Top-K 函数¶
topk_increment ( topk, expression )
增加给定 topk 中给定表达式的频数,结果返回 Top-K。
topk_increment ( topk, expression, weight )
给 topk 中给定表达式增加指定权重的频数,结果返回 Top-K。
topk ( topk )
返回给定 Top-K 及其相关频数的k个元组。
topk_freqs ( topk )
返回给定 Top-K 相关的最大k个频数。
topk_values ( topk )
返回给定 Top-K 相关的最大k个频率项。
Top-K Aggregates 可用于聚合并产生 topk 数据。
Frequency函数¶
freq_add ( cmsketch, expression, weight )
在给定的 Count-Min Sketch 上根据指定权重增加 表达式 的频数。
freq ( cmsketch, expression )
返回 表达式 在给定 Count-Min Sketch 上的频数,存在很小的误差。
freq_norm ( cmsketch, expression )
Returns the normalized frequency of expression in the given Count-Min Sketch, with a small margin of error.
返回 表达式 在给定 Count-Min Sketch 上的归一化频率,存在很小的误差
freq_total ( cmsketch )
返回给定 Count-Min Sketch 中的对象总数。
查看 Frequency Tracking Aggregates 章节了解 cmsketches 的相关聚合操作。
HyperLogLog函数¶
hll_add ( hyperloglog, expression )
将给定 表达 的结果添加给 HyperLogLog。
hll_cardinality ( hyperloglog )
返会给定 HyperLogLog 的基数,大约有0.2%的误差。
hll_union ( hyperloglog, hyperloglog, … )
返回多个 hyperloglog 的并集。
查看 HyperLogLog Aggregates 部分了解如何对 hyperloglog 进行聚合。
Distribution函数¶
dist_add ( tdigest, expression, weight )
通过给定 t-digest 中的权重增加给定 表达式 的频率。
dist_cdf ( tdigest, expression )
给定一个 T-Digest,返回其基于 表达式 评估的分布函数,有很小的误差。
dist_quantile ( tdigest, float )
给定一个 tdigest,返回 float 对应的分位数,float 区间为[0, 1]
。
查看 Distribution Aggregates 学习 tdigest 聚合函数。
Miscellaneous函数¶
bucket_cardinality ( bucket_agg, bucket_id )
返回 bucket_id 在 bucket_agg 中的基数。
bucket_ids ( bucket_agg )
以数组形式返回包含给定 bucket_agg 的所有 bucket id。
bucket_cardinalities ( bucket_agg )
以数组形式返回给定 bucket_agg 中的基数,每个桶都会被计算到。
查看 Miscellaneous Aggregates 了解更多 Miscellaneous Aggregates 的聚合函数。
date_round ( timestamp, resolution )
对 resolution (或者桶)以一定的间隙 “向下取整”,您可以通郭一下操作将每10分钟的数据都归到一个桶中:
CREATE VIEW v AS SELECT
date_round(arrival_timestamp, '10 minutes') AS bucket_10m, COUNT(*) FROM stream
GROUP BY bucket_10m;
year ( timestamp )
截取给定时间戳对应的年。
month ( timestamp )
截取给定时间戳对应的月。
day ( timestamp )
截取给定时间戳对应的天。
hour ( timestamp )
截取给定时间戳对应的小时。
minute ( timestamp )
截取给定时间戳对应的分钟。
second ( timestamp )
截取给定时间戳对应的秒。
set_cardinality ( array )
返回给定集合数组的基数,集合可用通过 set_agg 构造。
Operational Functions¶
pipelinedb.activate ( name )
激活给定的流视图或流转换,详情见 激活和中止
pipelinedb.deactivate ( name )
中止给定的流视图或流转换,详情见 激活和中止
pipelinedb.combine_table( continuous view name, table )
将数据从 数据表 组合 到流视图中。 组合表 使用给定的流视图同数据表进行组合和聚合并产生结果
组合表 在回填流视图(可能是运行在一起完全隔离的环境中)时,组合形成的数据会在完全形成后回填到“实时的”的流视图中。
pipelinedb.get_views ( )
pipelinedb.get_transforms ( )
pipelinedb.truncate_continuous_view ( name )
将流视图中的所有数据都清除。
pipelinedb.version ( )
返回包含所有与PipelineDB版本相关的安装信息。
系统视图¶
PipelineDB包含一些用于查看流视图和流转换信息的视图。
pipelinedb.views
查看 流视图 相关信息。
View "pipelinedb.views"
Column | Type |
-------+---------+
id | oid |
schema | text |
name | text |
active | boolean |
query | text |
pipelinedb.transforms
查看 流转换 相关信息。
View "pipelinedb.transforms"
Column | Type |
-------+---------+
id | oid |
schema | text |
name | text |
active | boolean |
tgfunc | text |
tgargs | text[] |
query | text |
pipelinedb.stream_readers
显示基于某个流产生的所有流视图。
View "pipelinedb.transforms"
Column | Type |
-------------------+-----------+
stream | text |
continuous_queries | text[] |
更多的系统视图可以通过 内置统计视图 查看,其中包含PipelineDB进程,流查询和流的相关信息。