Встроенные функции
Общие сведения
Так как Tantor PipelineDB полностью поддерживает нативный синтаксис PostgreSQL 15+, то и все встроенные функции PostgreSQL доступны пользователям Tantor PipelineDB.
Агрегатные функции
Поскольку одной из основных целей Tantor PipelineDB является обеспечение высокопроизводительной непрерывной агрегации данных, агрегатные функции PostgreSQL полностью поддерживаются в непрерывных представлениях (за исключением нескольких редких случаев). Помимо приведенного здесь набора стандартных агрегатных функций, в Tantor PipelineDB также добавлены некоторые собственные непрерывные агрегатные функции, специально разработанные для непрерывной обработки данных временных рядов.
Смотрите раздел Непрерывные агрегатные функции для получения дополнительной информации о некоторых полезных функциях Tantor PipelineDB.
Внутренние типы Tantor PipelineDB
Tantor PipelineDB поддерживает ряд встроенных типов для эффективного использования вероятностных структур данных и алгоритмов на потоках. Скорее всего, вам не придется вручную создавать таблицы с этими типами, но часто их возвращают непрерывные агрегатные функции, поэтому они автоматически создаются непрерывными представлениями. Подробнее об этих встроенных типах смотрите в разделе Вероятностные структуры данных и алгоритмы.
Встроенные функции Tantor PipelineDB
Tantor PipelineDB поставляется с рядом функций, которые полезны для взаимодействия с этими типами:
Функции фильтра Блума
bloom_add ( bloom, expression )
Добавляет данное выражение в фильтр Блума.
bloom_cardinality ( bloom )
Возвращает мощность данного фильтра Блума. Это количество уникальных элементов, которые были добавлены в фильтр Блума, с небольшой погрешностью или ошибкой.
bloom_contains ( bloom, expression )
Возвращает
true
, если фильтр Блума вероятно содержит заданное значение, с небольшой вероятностью ложного результата.
bloom_intersection ( bloom, bloom, … )
Возвращает фильтр Блума, представляющий пересечение заданных фильтров Блума.
bloom_union ( bloom, bloom, … )
Возвращает фильтр Блума, представляющий объединение заданных фильтров Блума.
Смотрите раздел Фильтры Блума для получения информации об агрегатных функциях, которые можно использовать для создания фильтров Блума.
Функции Top-K
topk_increment ( topk, expression )
Увеличивает частоту данного выражения в пределах заданного topk и возвращает полученный результат top-k.
topk_increment ( topk, expression, weight )
Увеличивает частоту данного выражения на указанный вес в пределах заданного topk и возвращает полученный top-k.
topk ( topk )
Возвращает до k кортежей, представляющих заданные значения top-k и соответствующие частоты.
topk_freqs ( topk )
Возвращает до k частот, связанных с заданными наиболее часто встречающимися значениями top-k.
topk_values ( topk )
Возвращает до k значений, представляющих заданные наиболее часто встречающихся значений top-k.
Смотрите раздел Top-K для получения информации об агрегатных функциях, которые можно использовать для создания объектов topk.
Функции частоты
freq_add ( cmsketch, expression, weight )
Увеличивает частоту данного выражения на указанный вес в пределах заданного Count-Min Sketch.
freq ( cmsketch, expression )
Возвращает количество раз, когда значение
expression
было добавлено к данному Count-Min Sketch, с небольшой погрешностью.
freq_norm ( cmsketch, expression )
Возвращает нормализованную частоту
expression
в данном Count-Min Sketch, с небольшой погрешностью.
freq_total ( cmsketch )
Возвращает общее количество элементов, добавленных в указанный Count-Min Sketch.
Смотрите раздел Отслеживание частоты для получения информации об агрегатных функциях, которые можно использовать для создания cmsketches.
Функции HyperLogLog
hll_add ( hyperloglog, expression )
Добавляет данное выражение к HyperLogLog.
hll_cardinality ( hyperloglog )
Возвращает мощность данного HyperLogLog, с погрешностью примерно 0,2%.
hll_union ( hyperloglog, hyperloglog, … )
Возвращает hyperloglog представляющий объединение данного hyperloglog.
Смотрите раздел HyperLogLog для получения информации об агрегатных функциях, которые можно использовать для создания объектов hyperloglog.
Функции распределения
dist_add ( tdigest, expression, weight )
Увеличивает частоту данного выражения на заданный вес в T-Digest.
dist_cdf ( tdigest, expression )
При заданном T-Digest возвращает значение соответствующей кумулятивной функции распределения, вычисленное для значения
expression
, с небольшой погрешностью.
dist_quantile ( tdigest, float )
При заданном tdigest возвращает значение для заданного квантиля,
float
.float
должен быть в диапазоне[0, 1]
.
Смотрите раздел Распределение для получения информации об агрегатных функциях, которые могут быть использованы для создания объектов tdigest.
Различные функции
bucket_cardinality ( bucket_agg, bucket_id )
Возвращает мощность заданного
bucket_id
в заданномbucket_agg
.
bucket_ids ( bucket_agg )
Возвращает массив всех идентификаторов бакетов, содержащихся в заданном
bucket_agg
.
bucket_cardinalities ( bucket_agg )
Возвращает массив мощностей, содержащихся в заданном
bucket_agg
, по одной для каждого идентификатораbucket_id
.
Смотрите раздел Различные агрегатные функции для получения информации об агрегатных функциях, которые могут быть использованы для создания объектов bucket_agg
.
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
.
Операционные функции
pipelinedb.activate ( name )
Активирует заданное непрерывное представление или преобразование.
pipelinedb.deactivate ( name )
Деактивирует заданное непрерывное представление или преобразование.
Смотрите раздел Активация и деактивация для получения дополнительной информации.
pipelinedb.combine_table( continuous view name, table )
Операция combine объединяет строки из данной таблицы
table
в данное непрерывное представление. combine_table использует определение запроса непрерывных представлений для объединения агрегированных значений из обоих отношений без потери информации.combine_table можно использовать для таких целей как заполнение непрерывного представления (возможно, работающего на автономной установке), объединяя заполненные строки в «живое» непрерывное представление только после того, как они были полностью заполнены.
pipelinedb.get_views ( )
Возвращает множество всех непрерывных представлений.
pipelinedb.get_transforms ( )
Возвращает множество всех непрерывных преобразований.
pipelinedb.truncate_continuous_view ( name )
Сокращает все строки из указанного непрерывного представления.
pipelinedb.version ( )
Возвращает строку, содержащую всю информацию о версии вашей установки Tantor PipelineDB.
Системные представления
Tantor 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[] |
Доступны дополнительные системные представления для просмотра статистики процессов Tantor PipelineDB, непрерывных запросов и потоков.